Discover practical design propositions to resolve game programming challenges in Unity
Get an overview of Unity engine architecture and coding model
Build a complete racing game using software design patterns and understand how to implement them in Unity
Download the source code of the complete prototype demonstrating each of the software patterns used
Unity'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 learn
Structure professional Unity code using industry-standard development patterns
Identify the right patterns for implementing specific game mechanics or features
Develop configurable core game mechanics and ingredients that can be modified without writing a single line of code
Review practical object-oriented programming (OOP) techniques and learn how they're used in the context of a Unity project
Build unique game development systems such as a level editor
Explore ways to adapt traditional design patterns for use with the Unity API
Who this book is for
This 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.
Table of Contents
Before We Begin
The Game Design Document
A Short Primer to Programming in Unity
Implementing a Game Manager with the Singleton
Managing Character States with the State Pattern
Managing Game Events with the Event Bus
Implement a Replay System with the Command Pattern
Optimizing with the Object Pool Pattern
Decoupling Components with the Observer Pattern
Implementing Power-Ups with the Visitor Pattern
Implementing a Drone with the Strategy Pattern
Using the Decorator to Implement a Weapon System
Implementing a Level Editor with Spatial Partition
Adapting Systems with an Adapter
Concealing Complexity with a Facade Pattern
Managing Dependencies with the Service Locator Pattern