This third volume of the best-selling GPU Gems series provides a snapshot of today's latest Graphics Processing Unit (GPU) programming techniques. The programmability of modern GPUs allows developers to not only distinguish themselves from one another but also to use this awesome processing power for non-graphics applications, such as physics simulation, financial analysis, and even virus detection—particularly with the CUDA architecture. Graphics remains the leading application for GPUs, and readers will find that the latest algorithms create ultra-realistic characters, better lighting, and post-rendering compositing effects.
Game development is a broad and complex task. An interdisciplinary field covering subjects as diverse as Artificial Intelligence, character animation, digital painting, and sound editing. All those areas of knowledge can materialize as the production of hundreds (or thousands!) of multimedia and data assets. A special software application—the game engine—is required to consolidate all of those assets into a single product.
Game engines are specialized pieces of software, which used to belong to an esoteric domain. They were expensive, inflexible, and extremely complicated to use. They were for big studios or hardcore programmers only. Then along came Unity.
Unity represents true democratization of game development. An engine and multimedia editing environment that is user-friendly and versatile. It has free and indie versions and a Pro version that includes even more features. As we write this preface, Unity offers modules capable of publishing games to Windows, Mac, Linux, iOS, Android, XBox 360, Wii U, and PS3; as well as web-based games using the Unity plugins.
Today, Unity is used by a diverse community of developers all around the world. Some are students and hobbyists, but many are commercial organizations ranging from garage developers to international studios, using Unity to make a huge number of games—some you might have already played in one platform or another.
This book provides over 100 Unity game development recipes. Some recipes demonstrate Unity application techniques for multimedia features, including working with animations and using preinstalled package systems. Other recipes develop game components with C# scripts, ranging from working with data structures and data file manipulation, to artificial intelligence algorithms for computer controlled characters.
If you want to develop quality games in an organized and straightforward way, and want to learn how to create useful game components and solve common problems, then both Unity and this book are for you.