Computer games have evolved from simple, little programs to major Hollywood-type productions. And today's player expectations have kept pace with this evolution - they expect truly believable gaming environments with complex stories, characters, and action. To achieve this quality, developers need to incorporate the most cutting-edge tools and techniques available. Programming Believable Characters for Computer Games is written to provide such a resource. It takes current research in artificial intelligence and games and presents both the concepts and architectures through practical programming examples. The book focuses on the higher-level AI needed to develop interesting and believable, non-player characters that can learn and express emotions. With an emphasis on pathfinding, decision trees, finite-state machines, rule-based systems, and goal-oriented action planning, it addresses the current topics in game development. Throughout the book, programmers work through the step-by-step creation of a 3D animated autonomous character. Each chapter covers the theory of the topic and then applies it through practical hands-on exercises. The creation process works from design, modeling, and animation to the development of the artificial brain, which includes techniques for learning, socializing, communicating, navigating, and adapting to its environment. This is a comprehensive resource that brings current games research into the hands of programmers.