Utilize proven solutions to solve common problems in game development
About This Book
- Untangle your game development workflow, make cleaner code, and create structurally solid games
- Implement key programming patterns that will enable you to make efficient AI and remove duplication
- Optimize your game using memory management techniques
Who This Book Is For
If you are a game developer who wants to solve commonly-encountered issues or have some way to communicate to other developers in a standardized format, then this book is for you. Knowledge of basic game programming principles and C++ programming is assumed.
What You Will Learn
- Learn what design patterns are and why you would want to use them
- Reduce the maintenance burden with well-tested, cleaner code
- Employ the singleton pattern effectively to reduce your compiler workload
- Use the factory pattern to help you create different objects with the same creation logic and reduce coding time
- Improve game performance with Object Pools
- Allow game play to interact with physics or graphics in an abstract way
- Refractor your code to remove common code smells
You've learned how to program, and you've probably created some simple games at some point, but now you want to build larger projects and find out how to resolve your problems. So instead of a coder, you might now want to think like a game developer or software engineer. To organize your code well, you need certain tools to do so, and that's what this book is all about.
You will learn techniques to code quickly and correctly, while ensuring your code is modular and easily understandable.
To begin, we will start with the core game programming patterns, but not the usual way. We will take the use case strategy with this book. We will take an AAA standard game and show you the hurdles at multiple stages of development. Similarly, various use cases are used to showcase other patterns such as the adapter pattern, prototype pattern, flyweight pattern, and observer pattern. Lastly, we'll go over some tips and tricks on how to refactor your code to remove common code smells and make it easier for others to work with you. By the end of the book you will be proficient in using the most popular and frequently used patterns with the best practices.
Style and approach
This book takes a step-by-step real-life case studies approach. Every pattern is first explained using a bottleneck. We will show you a problem in your everyday workflow, and then introduce you to the pattern, and show you how the pattern will resolve the situation.
Table of Contents
Chapter 1. Introduction To Design Patterns
Chapter 2. One Instance To Rule Them All - Singletons
Chapter 3. Creating Flexibility With The Component Object Model
Chapter 4. Artificial Intelligence Using The State Pattern
Chapter 5. Decoupling Code Via The Factory Method Pattern
Chapter 6. Creating Objects With The Prototype Pattern
Chapter 7. Improving Performance With Object Pools
Chapter 8. Controlling The Ui Via The Command Pattern
Chapter 9. Decoupling Gameplay Via The Observer Pattern
Chapter 10. Sharing Objects With The Flyweight Pattern
Chapter 11. Understanding Graphics And Animation
Chapter 12. Best Practices