GAI (CS7632) - An OMSCS Review
In the Fall of 2023, my journey through OMSCS led me to explore Game AI (CS7632), along with HCI, a course that promised excitement and a bit of a departure from my usual focus. Having a blast in AI for Robotics (AI4R), I thought, “Why not try something new?” Enter C# (never touched it), Unity Engine (never installed it), Game development (complete newbie), and, of course, AI (my comfort zone).
Let me be straight - this course isn’t a cakewalk. The lectures, though packed with info, can be a bit on the long and monotonous side. Brace yourself with caffeine and start early to make the most of it. But hey, the assignments are where the magic happens. Unity Engine is your playground for all of them. And for the Mac folks with the Apple Silicone chip, fear not. Unity played nice with my setup.
Grading is all about the assignments (70%) and exams (15% + 15%). Eight assignments, sometimes seven, but usually eight. Grades are split equally. Seven of them involve coding on the Engine, implementing concepts from the coursework, while the last one shifts focus to terrain creation using the Engine - no code involved. These assignments are no joke. Only two submissions per assignment on Gradescope, and your grade is the average of the two. Yeah, that can be a bummer. So, a lot of time goes to ensure that your code works against all test cases and even more that you write yourself (or get from Ed Discussions that others write). Precision matters, as even a tiny slip-up could cost you a grade point.
Now, exams. Not a walk in the park. It’s an open-book MCQ exam, but don’t get too comfy. These questions are more about applying what you’ve learned than finding quick answers. No CTRL+F magic here. To ace it, you gotta understand the material, take good notes, and revise before the exam. The silver lining? Grades are curved, so if you’re above average, you might see a bump up in your grades by the end.
All in all, Game AI was quite the ride. I got to peek behind the scenes of game development, dive into NPC programming, and grasp the complexity of the whole process. And guess what? I even ended up creating some mini games along the way!