Game AI Pro: Collected Wisdom of Game AI Professionals
Format: PDF / Kindle (mobi) / ePub
Successful games merge art and technology in truly unique ways. Fused under tight production deadlines and strict performance requirements, shaped by demanding player expectations, games are among the most complex software projects created today. Game AI Pro: Collected Wisdom of Game AI Professionals covers both the art and the technology of game AI. Nothing covered is theory or guesswork. The book brings together the accumulated wisdom, cutting-edge ideas, and clever tricks and techniques of 54 of today’s top game AI professionals. Some chapters present techniques that have been developed and passed down within the community for years while others discuss the most exciting new research and ideas from today’s most innovative games.
The book includes core algorithms that you’ll need to succeed, such as behavior trees, utility theory, spatial representation, path planning, motion control, and tactical reasoning. It also describes tricks and techniques that will truly bring your game to life, including perception systems, social modeling, smart camera systems, player prediction, and even an AI sound designer. Throughout, the book discusses the optimizations and performance enhancements that enable your game to run while maintaining 60 frames per second.
player’s suspension of disbelief. We succeed any time that the user thinks about and responds to the AI as if it were real, even if the underlying algorithm is actually quite simple. We fail any time that some action (or inaction) on the part of the AI reminds the user that the AI is only a machine program, not real. ELIZA—an AI psychologist developed by Joseph Weizenbaum in 1964 [Wikipedia 12-B]—exemplifies both how easy it can be to capture the player’s belief with a simple algorithm, and how
through the Study of Neurology 27 3 Advanced Randomness Techniques for Game AI Gaussian Randomness, Filtered Randomness, and Perlin Noise Steve Rabin, Jay Goldblatt, and Fernando Silva 3.1 Introduction 3.2 Techinique 1: Gaussian Randomness 3.3 Technique 2: Filtered Randomness 3.4 Technique 3: Perlin Noise for Game AI 3.5 Conclusion 3.1 Introduction Game programmers have a special relationship with the rand() function. We depend on it for variation in our games, using it to keep our
Behavior* m_pRoot; public: void tick(); }; 74 Part II. Architecture This is a first-generation BT, and as such, the BehaviorTree class remains simple. It contains a single pointer to the root of the behavior tree, and a tick() function which performs the traversal of the tree. This is the entry point of the BT, and is called anytime an update is needed. It is often not necessary to update the behavior tree every game frame, with many games deciding to update each behavior tree every other
susceptible to this problem because it’s driven directly by design, and changes more rapidly over the course of a project than other systems of similar breadth and complexity. It’s our responsibility as programmers to question the fitness of our solutions in addressing the problems at hand. In terms of decision making, I found myself regularly questioning the fitness of behavior trees while implementing behaviors that didn’t have easily quantifiable static priority, or didn’t intuitively distill
Effects [WsIsTired = false] Using the WsIsTired world state, we can properly describe the reason we need the DoRecovery task. The DoTrunkSlam task now makes the Trunk Thumper tired, and he can’t execute DoWhirlwindTrunkAttack until he gets a chance to recover. Now, when the world state changes, the DoRecovery task won’t be interrupted and yet we save the modularity of DoTrunkSlam and DoRecovery. When implementing priority plan picking, these subtle details can really throw a wrench in your HTN