Course CGP202
Principles of Artificial Intelligence Programming for Computer Game Developers
Principles of Artificial Intelligence Programming for Computer Game Developers
Duration: 5 Days
Intended Audience
This course is aimed at those wishing to embark on an exploration of Artificial Intelligence programming techniques. Artificial Intelligence has gone through many cycles of hype and enthusiasm alternating with disenchantment and humiliation. Nonetheless it has produced some of the most complex and interesting techniques and algorithms known to man. In order to make computer games more interesting the computer entities being played against have to learn from and adapt to their opposing human players. The game engine and environment itself can be made to adapt, "intelligently" to the observed behaviour and characteristics of the player, as well as preferences expresses by the player. In some games players can create characters that exhibit interesting adaptive and purposeful behaviours on their own. This can become even more interesting in large multi-player games - e.g. is the player being played against a human player, or a virtual ( software ) player, or even a hybrid human + software player. The techniques taught on this course apply not only to computer games, but also to modeling of scenarios, strategic planning, decision making and teaching. Hopefully this course will appeal to a wide audience, drawn from
- computer games developers seeking to endow their games with greater challenges
- planners and strategists seeking to develop game theoretic and role playing scenarios
- psychologists and philosophers wishing to use AI techniques to explore the various concepts and models they are working on
- programmers who are simply bored with the mundane chores of IT and business progremming
- storytellers wishing to enter the realm of "adaptive and interactive" story telling
The course assumes a basic knowledge of programming, maths and commonsense physics. Although some of the programming techniques explored are quite advanced the emphasis will not be on a detailed understanding of the underlying data structures and algorithms, but rather on concepts, applicability and potential of the various techniques.
Course Overview
The purpose of this course is to cover the major paradigms of Artificial Intelligence programming with a bias towards the application of these techniques to computer games. It is an advanced foundational course from which individual will be able to discover their own preferences and avenues for further exploration. In addition to covering the key AI programming paradigms the course also discusses
- selection of appropriate programming languages and representational schemes
- persistence , history and rollback to earlier states
- personality, emotion, motivation and psychology as they apply to computer games
During the course attendees will have access to a large library of books, software and research papers that they are encouraged to explore.
Key Skills
- Ability to choose between various approaches and frameworks for adding AI capabilities to computer games
- Insights into the complexity and performance tradeoffs of different AI technologies and techniques
- Techniques for developing games that learn and evolve
Course Contents
Overview of basic physics and behaviours
- movement algorithms, statics and kinematics
- searching and wandering
More complex movement behaviours
- Steering behaviours
- seek and flee
- pursue and evade
- path following
- collision avoidance
- obstacle and wall avoidance
- more complex, combined steering behaviours
- projectiles - aiming, shooting and trajectories
- jumping
- motor control and co-ordinated movement
Pathfinding
- Overview of graphs and graph theory
- basic graphs
- weighted directed and undirected graphs
- Dijkstra's algorithm
- A* algorithm
- hierarchical pathfinding
- interruptible pathfinding
- continuous time pathfinding
- movement planning
Decision making
- Decision trees
- State machines
- Fuzzy logic
- Markovian systems
- Goal seeking behaviour
- Rule based approaches
- Blackboard architectures
Tactics and Strategy
- Waypoints
- Tactical analysis and tactical pathfinding
- Coordination and coordinated action
- Diplomacy, negotiation and betrayal
- Emotions and Personalities - their tactical implications
Learning and Evolution
- Overview of learning algorithms and strategies
- Action predicition
- Decision tree learning
- Reinforcement learning
- Neural Networks
- Genetic Algorithms
Two player games and board games
- Minimaxing
- Indexing and Pattern Matching on Game States
- Iterative deepening and other optimisation approaches
- Turn based strategy games
Interface the AI to the Game World
- Knowing the right thing at the right time
- Searching for information
- Awareness of events
- Communication patterns between entities
- Senses and sensors
- The sensor data fusion problem
- The interaction between AI and content creation tools
