Artificial Intelligence in 3D Virtual Worlds
Lee Spector and Jon Klein
This page documents a course called "CS 263: Artificial Intelligence in 3D Virtual Worlds" that was taught at Hampshire College in the spring semester of 2004. This course covered roughly the same material as is covered in other "agent based" introductory AI courses, with an emphasis on reactive agents, neural networks, and evolutionary computation. Traditional AI topics such as knowledge representation, heuristic search, planning, and logic-based approaches were also covered but in less detail. The primary novelty of the course was that students worked within a 3D simulation environment, creating programs to control agents in an engaging, dynamic, and visually rich virtual world.
This documentation is being provided to assist other instructors in teaching similar courses at their own institutions. It includes the syllabus (with a rough schedule) and links to all of the software that was used for the course. Lecture notes are not included as the lectures were assembled dynamically from multiple sources, not all of which are available for distribution (or we don't have the copyrights, etc.).
These materials are likely to be most useful to instructors who are already planning to teach an AI course using an agent-based text (whether the Nilsson text used here or one of the others). For these instructors the syllabus may provide some ideas and the software may be used (with or without changes) in conjunction with the chosen text and the instructor's own lecture materials.
For most of the semester students wrote code for agents in "WUB World," a virtual world inhabited by monsters (Wildly Unpredictable Biots, or WUBs), agents, obstacles, worm-holes, and energy sources. As the semester progressed students applied a succession of AI concepts (including subsumption architecture, neural networks, and evolutionary computation) to the production of successively more capable agents for successively more complex versions of WUB World. In the last week of the course we switched from WUB World to a simulated Capture the Flag game, for which students designed (and/or trained and/or evolved) teams of players. On the last day of class we conducted a tournament among all of the teams. Students were evaluated on the basis of participation (including weekly demonstrations), a portfolio of code, and a retrospective essay discussing the portfolio and its relation to AI concepts.