Spring 2014 CAP 4053 AI for Game Programming: Syllabus
MW 1:30 - 2:45pm in HEC room 117
Instructor: Dr. Kenneth Stanley
EPlex Research Group: http://eplex.cs.ucf.edu
Office: Harris 332
Office Hours (starting 1/10/12): Mondays 3pm-4pm and Tuesdays 3-4pm
TA Office: TBD
TA Office Hours: TBD
TA's email: TBD
Link to Homework Assignments and Lectures
Programming Game AI by Example by Mat Buckland, Wordware Publishing, Inc. (2004)
AI Techniques for Game Programming by Mat Buckland, Course Technology PTR (2002)
Software and Source CodeDemo code for Programming Game AI by Example is available at http://www.wordware.com/files/ai. The "Buckland" files contain the code.
Any version of NEAT can be used for the class homework assignmentsts. A number of versions are available here: http://www.cs.ucf.edu/~kstanley/#software
The latest clean version written by myself is available here. An earlier version, neatVS.zip, is refitted for easy compiling on some platforms by Jared Johnson.
OverviewThe video game industry is a major consumer of artificial intelligence (AI) technology. It is one of the few areas of computer science wherein regular consumers routinely interact with cutting edge techniques. Video game consumers are demanding AI innovation to make games more interesting and fun. The course introduces a broad range of AI techniques for games, contrasting recent cutting-edge approaches with more traditional ones. Both video games and turn-based games (i.e. board games) are covered from a variety of perspectives. Topics range from standard techniques such as scripting and path-finding to recent innovations like reinforcement learning and real-time neuroevolution. Industry needs and priorities are also addressed. The course focuses on practical application and hands-on experience, culminating in a final project. Thus, students will leave equipped to apply the latest approaches to real games.
1) Student shall be able to compute angles and geometric relationships with vectors.
2) Students shall be able to program simulated sensors that describe the environment to an autonomous agent.
3) Students shall be able to program, execute, and analyze the performance of common AI algorithms: search techniques including depth-first, breadth-first, Dijkstra's algorithm, A*, minimax and alpha-beta pruning, Hebbian learning, perceptron learning, backpropagation, evolutionary computation, and neuroevolution.
4) Students shall appreciate advanced practical design decisions in agent implementation including deictic vs. third-person perspective, opponent-process vs. separate effectors, agent-centric polar vs. discretized Cartesian sensors, sensory aliasing, aiming, sensing in a crowd, sensor resolution, and sensor CPU optimizations.
5) Students shall be able to describe and communicate the implementation of a complex system.
6) Students shall complete significant programming projects in collaboration with at least one partner.
Grading PolicyThree project-based homework assignments (60% of grade)
- Foundations: Create a simple experimental platform with agents and sensors (with partner)
- Algorithms: Implement pathfinding and evolution in platform (individual)
- Final Project: Convert it into a simple game (with partner from first assignment)
Two exams testing comprehensive knowledge (40% of grade)
- Midterm: Foundations and early algorithms
- Final: Comprehensive
Late assignments lose 10% the first day late, 40% the second, and are not accepted after that.
CheatingAll of the work that you turn in or present must be your own. Cheating, plagiarism, and any other form of academic dishonesty will be penalized. The minimum penalty for cheating will include:
- An automatic zero on the assignment -- this grade may not be dropped; and
- reduction of your final grade by one letter grade; and
- notification of the incident to the UCF Office of Student Conduct.
Plagiarism and paraphrasing are forms of cheating. Plagiarism is the presentation of others' ideas and writings as your own. Paraphrasing is taking someone else's sentence, changing a few words, and then presenting it as your own. Both are unacceptable in this class.
Important Students may not turn in code from either of Mat Buckland's book with the exception of Mat Buckland's NEAT, engine code (i.e. code not specifying AI algorithms), or otherwise specified by Dr. Stanley. Turning in book code will be penalized as plagiarism. If you would like to use code from the book in an assignment, please speak to Dr. Stanley first.
ScheduleJanuary 6 Class introduction, AI & the Video Game Industry
January 8 Game Engines for AI
January 13 Mathematical Foundations
January 15 The Perception and Action Loop
January 20 No class: Martin Luther King Jr. Day
January 22 Sensor Computations
January 27 Internal State, Finite State Machines, and Scripting
January 29 Pathfinding and Search
February 3 Advanced Pathfinding, Board Games and Game Tree Search
February 5 Neural Networks and Backpropagation
February 10 Evolutionary Computation
February 12 Evolutionary Computation 2
February 17 Neuroevolution
February 19 Midterm
February 24 NeuroEvolution of Augmenting Topologies (NEAT)
February 26 Real-time Neuroevolution and NeuroEvolving Robotic Operatives (NERO)
March 3 No class: Spring break
March 5 No class: Spring break
March 10 More NERO
March 12 Coevolution and multiagent learning
March 17 Project Discussion and Game Design Issues
March 19 Coordinate Systems, Perspectives, and Control; Mitigating Computational Complexity
March 24 Game proposals 1
March 26 Game proposals 2
March 31 Interactive Evolution and AI for Content Generation, AI in Multiplayer Games and Massive Multiplayer Online Worlds
April 2 Game Industry Perspectives
April 7 Galactic Arms Race : Online Multiplayer Automated Content Evolution from UCF
April 9 Artificial Life
April 14 Final Exam in Class
April 16 Troubleshooting
April 21 Presentations
Final: April 28th
1pm-3:50pm - Presentations Continue Complete Finals Schedule