In the preceding five chapters, we covered the basics of 2D and 3D game programming for the iPhone. But we have only scratched the surface and you’ve nearly reached the end of the book. You may be asking yourself, “What is the next step?”
Depending on your interests, there are many possibilities. You could modify the current engine to fit your own needs, or you could create a new one. Every game design poses a unique problem; your game code is the solution. Different types of game engines represent different methods of solving those problems.
A first-person shooter (FPS) type game requires 3D graphics that respond quickly to user input along with accurate rendering and physics detection. A real-time strategy (RTS) game, however, focuses more on being able to render many entities with lower detail, and it requires a user interface that can organize and manage many actions at once.
It follows, then, that a game engine created to handle FPS games is not well suited to RTS games. Learning how to solve the unique problems of your game design with efficient trade-offs is what game programming is all about.
Our example games were very simple in their use of resources. However, more complicated games will have more art and sound assets that can be loaded into the device’s memory at one time.
A good resource manager will always be able to find space in memory for the required resources by unloading resources that are less important. ...