Introduction GAM 376 Robin Burke Winter 2008
Outline Introductions Syllabus
Me Helped create the new GAM degree A long-time fan of computer games from Space Invaders to Katamari Damacy An AI researcher by training But not a game developer by training or experience
AI Artificial Intelligence term defined in the 50s research aimed at the goal of reproducing human mental capacities in computers
AI History Great optimism early successes checkers problem solving math Big disappointments natural language machine translation Rebirth 1980s expert systems neural networks Big disappointments machine learning knowledge engineering Recent successes computer vision Deep Blue voice recognition
What have we learned? Human cognition is very complex and multi- layered the brain is not a computer the brain has a lot of special purpose mechanisms People know a lot general knowledge about the world “common sense” very hard to enumerate People are very flexible capable of creativity and adaptation
Modern AI Machine learning / data mining sophisticated algorithms for pulling patterns out of large data streams Intelligent user interfaces representing users needs and preferences so that computer systems work better Semantic web representing computer systems capabilities to enable delegation and negotiation between them
Game AI Game AI is not a subset of AI Game AI often covers techniques that are not considered “AI-like” AI uses techniques impractical in a game context AI Game AI
What is Game AI? Analogy game AI is to "real" AI as stage design is to architecture The goal of game AI is to give the impression of intelligence to avoid the impression of stupidity to provide a reasonable challenge for the player
What Game AI is not Scriptwriting no AI engine (yet) can generate language but, see Facade Animation no AI engine (yet) can plan 3-D movements in real time but, see Spore
Challenge It is very possible to make the computer too smart think: driving game The task of AI is to support the experience many compromises from “optimal” required
Not dumb It is surprisingly hard to make the computer not dumb “Why are computers so stupid?” especially with limited computational resources Example Humans are good at navigating complex 3-D environments Doing this efficiently is (still) an unsolved problem in AI
But Game AI is the future of games Many designers see AI as a key limitation the inability to model and use emotion the inability of games to adapt to user’s abilities the need for level designers to supply detailed guidance to game characters
Discussion What makes for good game AI?
What we will cover Finite-state machines the most basic technique for implementing game AI fundamental to everything else Steering behaviors basic behaviors for avoiding stupidity while navigating the world Path planning the surprisingly tricky problem of getting from point A to point B Action planning assembling sequences of actions Fuzzy logic reasoning by degrees
How we will do it We will meet regularly in Rm 707 for hands-on lab experience 7 th floor Game Development Lab Tools Buckland's source code VS 2005
What we will do 4 homework assignments one trivial three non-trivial 2 group assignments soccer team death match bot
What I assume That you can write classes in C++ That you can read C++ code and make sense of it That you read the textbook really the best source for understanding the code base
Homework #1 Compile one of the projects in Buckland’s code I do this so that we get all of the technical problems out of the way before real homework kicks in