About the Book
Learn C++ game programming through real-world demos of AI systems, animation, and rendering to build scalable, high-performance games using patterns you can reuse across any game engine
Key Features
Build real-time 2D and 3D games using C++ with practical, executable examples
Gain proficiency in game programming domains like AI pathfinding, camera systems, animation, and rendering effects
Boost runtime efficiency with practical techniques like object pooling, LOD patterns, and terrain partitioning to create smoother, more responsive gameplay systems
Book DescriptionCreating responsive, intelligent games takes more than just following engine tutorials. It requires solving real development challenges with practical, efficient code. This book bridges theory and practice with proven algorithms and techniques grounded in real-world production needs, emphasizing clean, portable C++ implementations.
Starting with raylib and the custom Knight engine layer, you’ll be introduced to a simple object-oriented scene and game object system. From there, you'll build responsive gameplay systems using essential data structures and algorithms, progressing through 2D rendering, collision detection, effects, and camera control before advancing to 3D graphics environments built using shaders, lighting, quad-tree terrain, and dynamic camera setups.
You’ll animate characters using skeletal rigs, interpolation, and inverse kinematics for fluid movement and then develop game AI using FSMs, behavior trees, A* pathfinding, and steering behaviors. The book also covers neural networks, exploring their underlying theories, training processes, and tools. Throughout, the code is written in legacy-compatible C++ to ensure broad support across platforms and compilers.
By the end, you’ll have gained the skills to build game systems that not only work but also scale, perform, and adapt like professional-grade code.What you will learn
Use C++ data structures and algorithms to build core gameplay features
Implement 2D/3D rendering with shaders, particle effects, and terrain systems
Design camera systems like third-person, top-down, and split-screen views
Optimize performance using object pooling and LOD
Animate characters using skeletal rigging, interpolation, and inverse kinematics
Build game AI with FSMs, behavior trees, pathfinding, and steering
Apply neural network concepts in a turret defense project
Who this book is forThis book is for junior game developers, hobbyists, and computer science students entering game development, as well as C++ programmers looking to strengthen their skills. While some familiarity with C++ is helpful, the examples are explained step by step to remain approachable. Whether you're starting out or reinforcing your skills before diving into game engines down the road, this book offers a clear and practical foundation to make you a more effective developer, regardless of which tools you choose later.
Table of Contents:
Table of Contents
Gearing Up: C++ for Game Development
Data Structures in Action: Building Game Functionality
Algorithms Commonly Utilized in Game Development
2D Rendering and Effects
The Camera and Camera Controls
3D Graphics Rendering
Rendering a 3D Game World
Animating Your Characters
Building AI Opponents
Machine Learning Algorithms for Game AI
Continuing Your Learning Journey
About the Author :
Zhenyu George Li is a passionate video game developer with over 20 years of experience in the field. As a seasoned software engineer, George has contributed significantly to the development of numerous games throughout his career and currently serves as a senior development engineer at Unity.
George's fascination with video games was sparked during his college studies, igniting a passion that would shape his professional journey. During the early stages of his game development endeavors, George immersed himself in technologies such as Visual Basic, C/C++, DirectX, OpenGL, Windows GUI, SQL, and so on. These foundational experiences laid the groundwork for his subsequent success in the industry.
Throughout his career, George has made substantial contributions to various commercial games. Notable titles on his portfolio include Unity demo and starter kit games, Sandbox, Halo Infinite, Magic Arena, Stela, Dead Rising 2, The Bigs 2, and others. His involvement in these projects has allowed him to gain extensive knowledge and practical experience in a wide range of domains, including programming, game engines, gameplay and AI, graphics, animation, multiplayer, game physics, frontend, and multiplatform. In practical applications, George has used Unreal, Unity, and some propriety game engines in the development of real game projects.
In addition to his achievements as a game developer, George has also honed his teaching abilities during his eight years of college-level instruction. He has shared his knowledge and expertise with aspiring developers, serving as a lecturer at the Vancouver Film School, College of Interactive Arts, and Hefei Union University. While teaching at Vancouver Film School, George guided students through the intricacies of Unreal Engine, helping them build a strong foundation in professional game development. Charles Shih-I Yeh pursued his computer science studies at the University of Southern California before embarking on a career in the video game industry in the early 2000s. He has held various pivotal roles in game programming, including building proprietary game engines, crafting Digital Content Creation (DCC) tools to streamline production pipelines, and designing engaging gameplay mechanics alongside robust multiplayer and MMORPG tournament services.
Charles is also passionate and committed to sharing expertise and insights by delivering lectures on game programming at several esteemed universities. He is also the author of two game design books as well as the official translator of several famous game programming books, such as Game Programming Gems 4, into his native language, Mandarin.