This book shows experienced game developers how to apply multi-thread techniques to game programming technology to improve game performance. Using Direct3D and C++, a sample game engine is created step-by-step throughout the course of the book, and numerous examples illustrate the concepts presented.
Hailed as a "must-have textbook" (CHOICE, January 2010), the first edition of Game Engine Architecture provided readers with a complete guide to the theory and practice of game engine software development. Updating the content to match today’s landscape of game engine architecture, this second edition continues to thoroughly cover the major components that make up a typical commercial game engine. 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.
In clear and concise language, this book examines through examples and exercises both the design and implementation of a video game engine. Specifically, it focuses on the core components of a game engine, audio and sound systems, file and resource management, graphics and optimization techniques, scripting and physics, and much more.
"This book should be on every C++ programmer’s desk. It’s clear, concise, and valuable." - Rob Green, Bowling Green State University This bestseller has been updated and revised to cover all the latest changes to C++ 14 and 17! C++ Concurrency in Action, Second Edition teaches you everything you need to write robust and elegant multithreaded applications in C++17. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology You choose C++ when your applications need to run fast. Well-designed concurrency makes them go even faster. C++ 17 delivers strong support for the multithreaded, multiprocessor programming required for fast graphic processing, machine learning, and other performance-sensitive tasks. This exceptional book unpacks the features, patterns, and best practices of production-grade C++ concurrency. About the Book C++ Concurrency in Action, Second Edition is the definitive guide to writing elegant multithreaded applications in C++. Updated for C++ 17, it carefully addresses every aspect of concurrent development, from starting new threads to designing fully functional multithreaded algorithms and data structures. Concurrency master Anthony Williams presents examples and practical tasks in every chapter, including insights that will delight even the most experienced developer. What's inside Full coverage of new C++ 17 features Starting and managing threads Synchronizing concurrent operations Designing concurrent code Debugging multithreaded applications About the Reader Written for intermediate C and C++ developers. No prior experience with concurrency required. About the Author Anthony Williams has been an active member of the BSI C++ Panel since 2001 and is the developer of the just::thread Pro extensions to the C++ 11 thread library. Table of Contents Hello, world of concurrency in C++! Managing threads Sharing data between threads Synchronizing concurrent operations The C++ memory model and operations on atomic types Designing lock-based concurrent data structures Designing lock-free concurrent data structures Designing concurrent code Advanced thread management Parallel algorithms Testing and debugging multithreaded applications
The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exact problem. Based on years of experience in shipped AAA titles, this book collects proven patterns to untangle and optimize your game, organized as independent recipes so you can pick just the patterns you need. 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.
Tackle the Challenges of Parallel Programming in the Visual Effects IndustryIn Multithreading for Visual Effects, developers from DreamWorks Animation, Pixar, Side Effects, Intel, and AMD share their successes and failures in the messy real-world application area of production software. They provide practical advice on multithreading techniques and
Game Engine Gems brings together in a single volume dozens of new articles from leading professionals in the game development industry. Each "gem" presents a previously unpublished technique related to game engines and real-time virtual simulations. Specific topics include rendering techniques, shaders, scene organization, visibility determination, collision detection, audio, user interface, input devices, memory management, artificial intelligence, resource organization, and cross-platform considerations. A CD-ROM containing all the source codes and demos accompanies the book.
The first edition of 3D Game Engine Design was an international bestseller that sold over 17,000 copies and became an industry standard. In the six years since that book was published, graphics hardware has evolved enormously. Hardware can now be directly controlled through techniques such as shader programming, which requires an entirely new thought process of a programmer. In a way that no other book can do, this new edition shows step by step how to make a shader-based graphics engine and how to tame this new technology. Much new material has been added, including more than twice the coverage of the essential techniques of scene graph management, as well as new methods for managing memory usage in the new generation of game consoles and portable game players. There are expanded discussions of collision detection, collision avoidance, and physics—all challenging subjects for developers. The mathematics coverage is now focused towards the end of the book to separate it from the general discussion. As with the first edition, one of the most valuable features of this book is the inclusion of Wild Magic, a commercial quality game engine in source code that illustrates how to build a real-time rendering system from the lowest-level details all the way to a working game. Wild Magic Version 4 consists of over 300,000 lines of code that allows the results of programming experiments to be seen immediately. This new version of the engine is fully shader-based, runs on Windows XP, Mac OS X, and Linux, and is only available with the purchase of the book.