The aim of this book is to explain how computer games are made using C++. In so doing, I shall be introducing important gaming concepts and referring to mathematical ideas as they are relevant. It might seem appropriate to mention DirectX or OpenGL at this stage since they have such a prominent role in the development of games nowadays. DirectX and OpenGL are not languages themselves, not in the same way C++ is a language. DirectX and OpenGL are tools that make game development simpler, and these tools are typically used in conjunction with C++. This book covers C++ and the fundamentals of game programming and also covers various other topics that I feel all game developers should know. It does not, however, cover DirectX or OpenGL in detail as there are already a good many books examining these libraries in great detail. This book covers more fundamental issues a developer is usually expected to know before learning DirectX or OpenGL. I have, however, tended to focus on game development for the Windows platform even though this need not be the only platform for which games are developed. Linux is growing as a game platform but at the time of writing is not sufficiently large enough to warrant any closer examination. For this reason, I have chosen Windows to demonstrate examples since this platform has the larger user base for games.