190 likes | 201 Views
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.
E N D
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 1950-1970 • 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 • 7th 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