Preface
Game development is a broad and complex task. It is an interdisciplinary field, covering subjects as diverse as artificial intelligence, character animation, digital painting, and sound editing. All these 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 these 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 the true democratization of game development. It is an engine and multimedia editing environment that is user-friendly and versatile. It has free and Pro versions; the latter includes even more features. Unity offers deployment to many platforms, including the following:
- Mobile: Android, iOS and Windows Phone
- Web: WebGL (and WebXR)
- Desktop: PC, Mac, and Linux platforms
- Console: Nintendo Switch, PS5/4/3, Xbox SeriesX/One/360, PlayStation Mobile, PlayStation Vita, and Wii U
- Virtual Reality (VR)/Augmented Reality (AR): Oculus Quest/2/3/Pro and Rift, Samsung Gear VR, HTC Vive Focus, Google Daydream, Microsoft Hololens, and the Apple Vision Pro
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, who use Unity to make a huge number of games—you might have already played some on one platform or another.
This book provides over 150 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 you want to learn how to create useful game components and solve common problems, then both Unity and this book are for you.