ICS 462: Artificial Intelligence for Games
Description: Techniques to stimulate intelligence in video games: movement, pathfinding with A* search, decision/behavior trees, state machines, machine learning, tactics. Extend games with your own AI implementations; experience “shootout” contests for the best AI algorithm/implementation.
Objectives: See Learning Outcomes
Course Learning Outcomes
- Students will be able to extend an existing game program by adding AI code
- Students will be able to program goal-oriented movement of non-player characters
- Students will be able to write code to find near-optimal paths using A* search and other techniques
- Students will be able to write decision making code utilizing decision trees, state machines, fuzzy logic, production systems, and/or scripts
- Students will understand and apply machine learning algorithms to games
- Students will experience AI program competitions
- Students will be able to successfully present ideas, code, and techniques both individually and as part of a group (Oral focus)
- Students will be able to write descriptive, comparative, and critiquing papers on game AI (Writing Intensive)
Program Learning Outcomes
- a. Students can apply knowledge of computing and mathematics appropriate to the discipline
- b. Students can analyze a problem, and identify and define the computing requirements appropriate to its solution
- c. Students can design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
- d. Students can function effectively on teams to accomplish a common goal
- f. Students can communicate effectively with a range of audiences
- i. Students can use current techniques, skills, and tools necessary for computing practice
Prerequisites: 212 and (314 or 361) and (PHYS 151 or PHYS 170)
Textbook(s): Artificial Intelligence for Games, Second Edition by Ian Millington and John Funge; Presenting to Win: The Art of Telling Your Story, Updated and Expanded Edition by Jerry Weissman
Grading: 15% on assignments, 5% on quizzes, 10% on the Midterm exam, 20% on the Final exam, 40% on oral presentations
Schedule
- Week 1: Introduction: AI vs. Game AI; Introduction to BZFlag, the target game for this class
- Week 2: Presenting to Win
- Week 3: Movement, Basic 2D & Physics; Movement in BZFlag
- Week 4: Jumping, Coordinated Movement, Motor Control & 3D; Individual Presentation: My Game Feature Proposal
- Week 5: Pathfinding, Basic; Pathfinding in BZFlag
- Week 6: Pathfinding, Advanced; more on Pathfinding in BZFlag
- Week 7: Decision Trees, State Machines & Behavior Trees; Applying Decision Making to BZFlag
- Week 8: Fuzzy Logic, Markov Systems & Goal-Oriented Behavior; Individual Presentation: Code Review
- Week 9: Rule-Based Systems,Blackboard Architectures,Scripting and Action Execution; Review for Midterm
- Week 10: Midterm Exam; Final Project Description
- Week 11: Waypoint Tactics and Tactical Analyses; Tactics in BZFlag
- Week 12: Tactical Pathfinding and Coordinated Action
- Week 13: more on Tactics in BZFlag; Machine Learning
- Week 14: Decision Learning with Naive Bayes Classifiers and ID3; Reinforcement Learning and Artificial Neural Networks
- Week 15: Group Presentation: AI Techniques Used for AI Shootout; Final Project AI Shootout
- Week 16: Review for Final Exam; Group Presentation: Post-Mortem Analysis of AI Shootout