In the previous chapter, we explored the evolution of game programming techniques. It is now time to move on and focus on how games are built today. We will begin our journey with a study of games as real-time software applications, and then analyze the internals of a general-purpose game, so the main building blocks of the source code can be identified. These blocks will then be refined in subsequent chapters of the book. Additionally, we will focus on some project management concepts that are specific to game development. We will study the different phases in developing a game, from code planning and scheduling to testing and maintenance. Put together, all these points should help you understand how games are built.