Discover practical design propositions to resolve game programming challenges in UnityKey FeaturesGet an overview of Unity engine architecture and coding modelBuild a complete racing game using software design patterns and understand how to implement them in UnityDownload the source code of the complete prototype demonstrating each of the software patterns usedBook DescriptionUnity's coding model and architecture require knowledge of common software design patterns. To optimally code a game in Unity, in the same way you do in other engines, you'll have to adapt to programming techniques that involve the use of design patterns. In this second edition, you'll get to grips with using design patterns with the help of supplemented code examples based on actual implementations of game mechanics and systems of a playable racing game prototype. You'll be introduced to the core principles of reusable software patterns and how to employ them to build components efficiently. Some notable additions include a game design document (GDD), a Unity programming primer, and the downloadable source code of a complete prototype. You'll start by learning about the overall design of the core game mechanics and systems that you'll be building throughout this Unity book, and discover tried-and-tested software patterns to code essential components of a game in a structured manner. You'll also find out how you can use classic design patterns to utilize Unity's unique API features. Finally, you'll identify the negative impacts of bad architectural decisions and understand how to overcome them with simple but effective practices. By the end of this book, you'll be able to develop Unity games in a structured, scalable, and optimized way.What you will learnStructure professional Unity code using industry-standard development patternsIdentify the right patterns for implementing specific game mechanics or featuresDevelop configurable core game mechanics and ingredients that can be modified without writing a single line of codeReview practical object-oriented programming (OOP) techniques and learn how they're used in the context of a Unity projectBuild unique game development systems such as a level editorExplore ways to adapt traditional design patterns for use with the Unity APIWho this book is forThis book is for Unity game developers who want to learn industry standards for building Unity games. Knowledge of the Unity game engine and programming in the C# language is expected. If you're only just starting your journey to becoming a Unity game developer, this book is not suitable for you.