You will learn how to write a robust game loop, how to organize your entities using components, and take advantage of the CPUs cache to improve your performance. You'll dive deep into how scripting engines encode behavior, how quadtrees and other spatial partitions optimize your engine, and how other classic design patterns can be used in games.
Robert Nystrom has programmed professionally for twenty years, about half of which is in games. During his eight years at Electronic Arts, he worked on behemoths like Madden and smaller titles like Henry Hatsworth in the Puzzling Adventure. He's shipped games on the PC, GameCube, PS2, XBox, X360, and DS, but is most proud of the tools and shared libraries he created for others to build on. He loves seeing usable, beautiful code magnify the creative ability of others.
Robert lives with his wife and two daughters in Seattle where you are most likely to find him cooking for his friends and plying them with good beer.
New to the Second Edition
Information on new topics, including the latest variant of the C++ programming language, C++11, and the architecture of the eighth generation of gaming consoles, the Xbox One and PlayStation 4 New chapter on audio technology covering the fundamentals of the physics, mathematics, and technology that go into creating an AAA game audio engine Updated sections on multicore programming, pipelined CPU architecture and optimization, localization, pseudovectors and Grassman algebra, dual quaternions, SIMD vector math, memory alignment, and anti-aliasing Insight into the making of Naughty Dog’s latest hit, The Last of Us
The book presents the theory underlying various subsystems that comprise a commercial game engine as well as the data structures, algorithms, and software interfaces that are typically used to implement them. It primarily focuses on the engine itself, including a host of low-level foundation systems, the rendering engine, the collision system, the physics simulation, character animation, and audio. An in-depth discussion on the "gameplay foundation layer" delves into the game’s object model, world editor, event system, and scripting system. The text also touches on some aspects of gameplay programming, including player mechanics, cameras, and AI.
An awareness-building tool and a jumping-off point for further learning, Game Engine Architecture, Second Edition gives readers a solid understanding of both the theory and common practices employed within each of the engineering disciplines covered. The book will help readers on their journey through this fascinating and multifaceted field.
The Art of Game Design, Second Edition gives readers useful perspectives on how to make better game designs faster. It provides practical instruction on creating world-class games that will be played again and again.
Sanjay Madhav takes a unique platform- and framework-agnostic approach that will help develop virtually any game, in any genre, with any language or framework. He presents the fundamental techniques for working with 2D and 3D graphics, physics, artificial intelligence, cameras, and much more.
Each concept is illuminated with pseudocode that will be intuitive to any C#, Java, or C++ programmer, and has been refined and proven in Madhav’s game programming courses at the University of Southern California. Review questions after each chapter help solidify the most important concepts before moving on.
Madhav concludes with a detailed analysis of two complete games: a 2D iOS side-scroller (written in Objective-Cusing cocos2d) and a 3D PC/Mac/Linux tower defense game (written in C# using XNA/ MonoGame). These games illustrate many of the algorithms and techniques covered in the earlier chapters, and the full source code is available at gamealgorithms.net.
Coverage includesGame time management, speed control, and ensuring consistency on diverse hardware Essential 2D graphics techniques for modern mobile gaming Vectors, matrices, and linear algebra for 3D games 3D graphics including coordinate spaces, lighting and shading, z-buffering, and quaternions Handling today’s wide array of digital and analog inputs Sound systems including sound events, 3D audio, and digital signal processing Fundamentals of game physics, including collision detection and numeric integration Cameras: first-person, follow, spline, and more Artificial intelligence: pathfinding, state-based behaviors, and strategy/planning User interfaces including menu systems and heads-up displays Scripting and text-based data files: when, how, and where to use them Basics of networked games including protocols and network topology
Why do some games become boring quickly, while others remain fun for years? How do games serve as fundamental and powerful learning tools? Whether you’re a game developer, dedicated gamer, or curious observer, this illustrated, fully updated edition helps you understand what drives this major cultural force, and inspires you to take it further.
You’ll discover that:Games play into our innate ability to seek patterns and solve puzzlesMost successful games are built upon the same elementsSlightly more females than males now play gamesMany games still teach primitive survival skillsFictional dressing for modern games is more developed than the conceptual elementsTruly creative designers seldom use other games for inspirationGames are beginning to evolve beyond their prehistoric origins