Post

CS 7632: Game AI

Review and Retrospective

CS 7632: Game AI

Instructor: Jeff Wilson
Semester: Fall 2023
Overall Rating: 9/10


✅ Pros

  • The instructor is passionate, approachable, and genuinely invested in student success.
  • Engaging and interesting subject matter.
  • Challenging assignments that significantly improved my programming skills.
  • Applying AI concepts in practical scenarios greatly reinforced learning.
  • The video game setting and visual feedback made assignments very rewarding.

❌ Cons

  • Attending TA office hours often felt necessary to clarify assignment requirements and techniques.
  • The course is fair but definitely challenging (not necessarily a con, but worth mentioning).
  • Students with no Unity or C++ experience may need to invest some additional time.

🕒 Time Commitment

Expect to spend 10 to 20 hours per assignment and 3 hours per week on modules and notes.


✍️ Assignments

Assignments are provided via a Git repo containing a Unity project. Each assignment includes automated tests that you can run locally, passing these generally ensures a good grade but doesn’t guarantee full credit. You’re often expected to identify additional edge cases and expand upon the provided tests.

HW 1 - Grid Lattice

  • Theme: Static‑grid navigation
  • Description: Superimpose a traversable/blocked Boolean grid over any Unity scene; implement CreateGrid and IsTraversable; intro to basic computational‑geometry helpers.
  • Reflection: Solid warm‑up—the, most time goes to collision logic edge cases.

HW 2 - Path Network

  • Theme: Sparse waypoint graphs
  • Description: Connect supplied path nodes while clearing obstacles and agent radius; produce bidirectional, duplicate‑free edge lists.
  • Reflection: Essential to use debugging interface provided and consider edge cases to pass automated checks.

HW 3 - A* Path‑finding

  • Theme: Incremental A*
  • Description: Add cost and heuristics; implement FindPathIncremental to spread search over frames; return closest‑to‑goal paths when blocked.
  • Reflection: I found this assignment informative but also challenging.

HW 4 - NavMesh Generation

  • Theme: Convex polygons + portals
  • Description: Triangulate free space, merge into convex nav‑polygons, drop portal‑midpoint nodes, and fully connect them.
  • Reflection: Assignments 1 - 4 all use the same Unity project and somewhat build on one another.

HW 5 - Ballistic Projectiles

  • Theme: Predictive throws
  • Description: In PredictThrow and ShotSelection, solve closed‑form or iterative ballistic intercepts (static → moving targets) and decide when to throw.
  • Reflection: Technique in the Millington book psuedo code helps a ton here.

HW 6 - Prison Dodgeball FSM

  • Theme: Full game AI
  • Description: Design an FSM that coordinates a team, leverages your ballistic solver, and wins ≥ ⅔ vs. baseline “Glass Joe” and secret bots.
  • Reflection: Great example of a FSM, need to observe the dodgball game many times to determine how to improve technique. Seting up FSM debugging is essential.

HW 7 - Race Track AI

  • Theme: Fuzzy‑logic (and optional ML‑Agents)
  • Description: Create fuzzy sets/rules (or a neural net) to steer an arcade truck on procedurally generated tracks without crashing while maintaining target speeds.
  • Reflection: Tuning memberships is part art, part data logging—straight track is easy, hairpins less so.

HW 8 - Procedural Content Generation

  • Theme: Perlin‑noise terrain
  • Description: Author a PCG node graph that segments one noise source into three biomes; submit the PCGTerrainData.asset plus screenshots.
  • Reflection: A nice break from the more difficult assignments, no code grading just vibes.

📖 Exams

  • Overall: The exams were challenging but fair.
  • Format & Weight: One proctored midterm and one proctored final, each worth 15 % of your grade (30 % total). Both are administered through HonorLock.
  • Scope: The final covers only the second half of the course; neither exam is cumulative.
  • Resources: Open‑book—you may consult any Canvas materials or the textbook, but no collaboration is allowed.
  • Timing: You have up to 4 hours in a single sitting; well‑prepared students typically finish in about an hour.
  • Questions & Grading: All items draw directly from the lectures. Multiple‑answer items may earn partial credit; binary (e.g., true/false) items do not. A curve is applied after each exam.

📚 Course Content

There are 6 modules that relate directly to the homework assignments you’ll often reference back to slides in the lectures for homework hints and techniques, 1.5x+ playback speed is your friend.

Module 0 · Onboarding & Unity Setup
You’ll install Unity 3D and verify the IDE with test scenes.

Module 1 · Game‑AI Fundamentals
Covers the role of AI in games, basic agent movement, and core computational‑geometry tests (line intersections, distances, quadtrees, Voronoi diagrams). These essentials ground later techniques.

Module 2 · Navigation & Path Planning
Builds intelligent movement from the ground up: grid lattices, classical search algorithms (BFS, DFS, Dijkstra, Greedy, A*), path networks, and navigation meshes—construction, refinement, and performance trade‑offs.

Module 3 · Steering, Targeting & Group Motion
Explores delegated and blended steering behaviors, ballistic projectile targeting (static and moving), coordinated movement, and fairness checks, giving agents smooth, believable locomotion and combat skills.

Module 4 · Decision‑Making & Learning
Introduces decision trees, finite‑state machines, behavior trees, fuzzy logic, and goal‑oriented action planning, then adds data‑driven AI—case‑based reasoning, n‑grams, Naive Bayes, exploration vs. exploitation, and Q‑learning—to create adaptive opponents.

Module 5 · Procedural Content Generation
Surveys RNG techniques, terrain synthesis, object placement, grammars, search‑based and constraint‑propagation methods, plus player‑modelling approaches to generate fresh, personalized game worlds.

Module 6 · Camera Control & Advanced Search
Wraps up with cinematic camera techniques and adversarial search algorithms—Minimax and Monte Carlo Tree Search—for strategy, board‑game, and high‑level planning AI.


💬 Class Participation & Interaction

The instructor, Jeff Wilson, is very active and responsive on Ed, and he’s available for office hours by request. TA office hours occur multiple times weekly, usually on a consistent schedule. I found attending these OH essential for success. Typically, about 3 out of 5 TAs provided helpful office hours each week, while the others either didn’t show up or weren’t as helpful with assignments.


💭 Final Thoughts

This was one of my top 3 favorite courses in the entire OMSCS program. Applying ML concepts within a video game setting made these techniques much more tangible for me. Additionally, the assignment formats weren’t overly constrained, and I genuinely grew as a programmer through this course.

This post is licensed under CC BY 4.0 by the author.