JavaScript EditorFree JavaScript Editor     Ajax Editor 

Main Page
  Previous Section Next Section

Chapter 35. Designing Learning AI

Key Topics

Learning systems are extremely appealing for computer game developers, because they can speed up development and increase the levels of intelligence in nonplayer characters (NPCs). However, the task of creating a learning system is complex; beyond just knowing about artificial intelligence (AI) technology, it's a matter of system design to create functioning behaviors and capabilities.

Right at the beginning of the book, Chapter 2, "The Design of Intelligence," provided a very quick introductory overview of learning. Having covered much more ground on the subject, we can look into the learning in more depth. Using examples, we'll investigate learning AI from different viewpoints (for instance, behaviors, technology, and components). We'll discuss advantages and disadvantages, giving guidelines for future implementations.

This chapter covers the following topics:

  • An overview of learning from a high-level point of view, trying to understand what this technology can achieve

  • The different approaches to learning, both in terms of the game development (online and offline) and the technical point of view (incremental and batch)

  • A description of AI components, showing how they deal with the data to learn facts or behaviors (that is, using examples or feedback)

  • The creation of behaviors using learning, and different methodologies that can be used to get animats to behave correctly

This in-depth review will provide the information necessary to make design decisions about what learning AI to use. This high-level approach is undoubtedly the best way to get the learning to work (that is, a preventive measure for any potential problems). Chapter 48, "Dealing with Adaptive Behaviors," discusses practical tips and tricks for getting any adaptive AI to "work"—however inappropriate the design!

      Previous Section Next Section

    JavaScript EditorAjax Editor     JavaScript Editor