Introduction
In computer programming in general, some types of features and requirements occur commonly. For computer game programming, there are often features for new games that have things in common with existing games. Software Design Patterns are reusable, computer-language-independent templates for how to solve common problems.
Not all design patterns are needed for all languages (for example, some computer languages may have features that already provide an easy way to solve a common problem). In this chapter, we'll explore several common design patterns in the context of Unity game programming in the C# programming language.
The big picture
There is no need to reinvent the wheel, and there are many advantages for game programmers to adopt tried-and-tested approaches to solving common features for game projects. Design patterns have been designed by experience, and refined to encourage good programming practice and well-designed architectural software solutions. A common theme in design...