CS-7632 - Game AI

Search for a Course:

    GAI
    Toggle to Select Spcific Semesters

    Reviews


    Semester:

    Mostly leaving this review to praise the enormous amount of support one could receive from the professor and TA’s. I don’t believe it is possible to fail in this class if you start early and ask for help when stuck. Prior to this course I didn’t had exposure to C#, but luckily I’m good with java and C# is basically Microsoft’s version of it. Assignments are good and keep you entertained, I think on average I spent 10 hrs on average doing them. I definitely spent at least 20 hrs working on FSM and 15 hrs on self-driving vehicle, but also there were at least several of assignments where I spent like 5 hrs in total. Midterm exam was tough but fair, there was a little curve to make sure that those who performed poorly would get better a grade. Final exam was pretty straightforward, curved grade is not available yet, but I wouldn’t expect any curve since most of the students performed much better this time around. So to sum up my experience: If you like video games and want to know more about how they work - I would strongly suggest you take this class. Lots of fun is guaranteed.


    Semester:

    A nice course with active Profs and TAs. I like this course.


    Semester:

    Overall, the class has some really strong virtues:

    • Projects are released a bit early, so you can work ahead.
    • The professor is concerned with student learning and is actively involved on Piazza. (In fact, he responded to nearly all student questions on Piazza)
    • The projects involve interactive designs that are fun to work on, especially the later projects.
    • The bar for project completion is set pretty low, but there is lots of room to improve your design.
    • You get a second chance to fix errors on projects and earn back points you missed.
    • There are also extra credit points available on some projects, including an optional dodge ball tournament.

    There are some drawbacks,:

    • The lectures are kind of boring and there are a lot of them to watch. I don’t blame the professor. It’s just the nature of the amount of material in this class.
    • The exams have LOTS of questions on many topics at a depth that is somewhat beyond anything that was presented.
    • You may hear (or create?) some whining / reminders about not knowing C# (which is structured very much like C++ or Java, and pretty easy to learn, especially using the VS editor).

    Then there is the gray area:

    • The professor will help you if you start late and/or don’t understand what to do. I am on the fence here, because I feel a graduate student should have skills to do more on his or her own, but I commend the professor for his concern for student achievement. In my honest assessment, though, many students clearly either don’t watch the lectures, don’t know how to troubleshoot their errors, or just look to be spoon-fed the answers on projects.
    • There is down time between projects and lectures.

    I would recommend this class. I found the projects to be kind of addictive – like playing a video game. That was pretty fun. If you don’t put time into testing, though, you can still get a lot of help from the professor, who won’t let you fall through the cracks. In all my classes, no professor has been as actively involved in the class on a day-to-day basis as Dr. Wilson. That alone makes the class worth taking. As with any class, you get more out of it when you put more in.


    Semester:

    I really enjoyed this course. It was fun to see a more “practical” and fun side of AI. After taking AI (CS-6601) this course was pretty easy but it was really fun to learn Unity and apply what you learned previously to a fun assignments. FYI I got an A.

    Pros

    1. Professor is really active on the Piazza and answers all questions quickly.
    2. Assignments are fun and you get plenty of time to do them

    Cons

    1. Not all the material on the exams are covered by the assignments, so you need to really pay attention to the lectures and keep up with them. I do kinda wish all topics covered had assignments but its just not possible
    2. getting grades was kinda slow but I get it , it takes awhile to run on those Unity applications.


    Semester:

    This was my 9th class in OMSCS and I would say this was among the best I’ve taken so far.

    The instructor (Dr.Wilson) is extremely helpful and literally tries to answer every single question on piazza. TAs were very good too. I liked the fact that this class uses a game engine (unity) that’s widely adopted in the game industry. This definitely gives us hands on experience in a relevant technology and insights into what it’s like to be a game dev. Exams were open book and open internet, but were challenging. Projects were fair without consuming too much time (all took < 15 hours, mostly less than 10 hours for me and I didn’t know any C# beforehand) and I liked the fact that we get an opportunity to resubmit an improved solution once grades were out, which allowed to get back 50% of the lost points. One downside is that projects can be all-or-nothing just like in AI4R, but the regrade opportunity alleviated the issue to a reasonable extent.

    Overall I would highly recommend this as a low stress, fun and practical class where you’ll learn quite a lot too.


    Semester:

    Why and when did I take it ?

    I am planning to graduate in Machine Learning and had already taken AI, ML4T, RL. This subject was not a requirement but I was always interested in games and how they are created. I paired this course with Computer Vision.

    What can you expect to learn ?

    I learned some basics about Unity game engine in the course. I know some other students in the course who learned about Unreal engine after taking this course and found having learned Unity before was helpful. In terms of learning the unity engine this course just scratches the surface and doesn’t offer a lot in terms of learning the tool itself. If you want to learn the tool itself I think Video Game Design might be better candidate.

    In terms of AI aspect of the course, it teaches a lot of algorithms and design strategies which are used in gaming industry to design a good game agent. So, you can expect to write a lot of scripts and algorithms and integrate the same in the unity engine. Some topics that I loved learning were designing a game agents, computational geometry, finite state machines to design game flows, using fuzzy logic in games, procedural content generation.

    How difficult was it ?

    I found this course to be of medium difficulty and I think it is good candidate to be paired with some other course. The first half part of the course teaches some core algorithms like path planning, computational geometry, A* and you won’t get a lot of action with Unity engine and mostly work with C# scripts. In most of these assignments, you’ll have to complete some functions with predefined signature and sometimes pseudocode is also given which makes it even easier to implement.

    The second half of the course is a little step up and slightly more difficult but also more fun and enjoyable. The assignments are more open ended and you’ll have to implement most of the things from scratch in a C# file provided. The last assignment is really interesting where you’ll get the most action with Unity engine. There is no autograder so, you can’t see you grade immediately and resubmit and improve it but professor Wilson mentioned about adding it pretty soon. But you still have a regrade opportunity of getting half of your lost score after first grade.

    First four assignment requires a maximum effort of 10 hours considering you’ve watched the video lectures already. The next assignments require more efforts and I was able to complete them in 3-4 days with a sitting of 2-3 hours per day. There were two open book exams which can impact your grade, not too difficult but they require you to have watched all the lectures. You can easily get an A if you put a little bit effort.

    Course content and Support from teaching staff ?

    Course lectures are really good but they are slow paced, I watched them in 2X speed ( as suggested by someone in previous review ) and it really helped. In terms of support, Prof Wilson is really-really helpful, he was answering a lot of questions himself and within a day and sometimes within hours.

    Overall, it is really well structured course with a lot of things to learn. I absolutely loved it and would recommend.


    Semester:

    Awesome class, one of my favorites in the program! I would rate the difficulty overall as medium - some assignments were straightforward but others were very challenging. The workload per week highly varies (6-25 hours), with the latter half of the class ramping up in difficulty. I learned a lot of interesting concepts in this class, and the professor Jeff Wilson was extremely helpful and is probably the best instructor I’ve experienced in the program as I’m finally graduating.

    To do well in this class, I recommend keeping eyes on Piazza and joining the OMSCS study slack, and starting early on the Finite State Machine and Fuzzy Logic assignments; some weeks there were no direct deliverables, which I used to slack off, and I definitely don’t recommend that (as it ended up hurting me) and suggest you use that time wisely!


    Semester:

    Game AI was another quite enjoyable class, not quite as fun as Video Game Design, but still a good mix of useful concepts and entertaining assignments. This was my 9th course in the program, and after taking ML4T, ML, and AI4R, as well as VGD, I had been exposed to a large number of the things in this course, which made it much easier. Even if you haven’t taken these courses, you’ll probably be able to pick them up quickly.

    The course structure was much like VGD in that you have a bunch of course lecture videos to watch every week. They’re of decent quality, and if you like games, you might even find them more than strictly educational. I do recommend watching on 1.75x, though, since they can be a bit lengthy. In addition to this, there are a number (7 in my semester) assignments, all individual, covering AI-related things from the lectures. The standout was the dodgeball assignment, which there was a class tournament for for extra credit. The fuzzy logic racetrack was also pretty cool. None of the assignments were very difficult since the instructions were very clear and the grading was lenient. There was no group project, thank God.

    There was a midterm and final exam that were a little tricky, open notes. You still have to use Honorlock, unfortunately. They also got a curve, which seemed unnecessary to me. And like VGD, Dr. Wilson is very active and helpful on Piazza. Really this is another exemplar class in terms of how it’s run, low-stress, but you might want to avoid it if you’ve already taken a bunch of other similar courses. I’d rate my courses in terms of overall enjoyability: VGD > KBAI > GAI > ML4T »> HCI > SDP »> ML > IIS


    Semester:

    Overall, I would say this is one of the best classes I’ve taken in the program. I will say I DID take AI prior to this, but I would say, in retrospect, I’m not sure it made this class any easier.

    Conceptually, AI goes into more depth on topics that this class touches on later, but this class does not have you writing any code at a level that would have been made easier.

    I do want to explicitly call out that the lecture videos and supporting material in this class are exceptional. Dr. Wilson has an outstanding A/V setup and the slides are very professionally done. This was the first class I’ve ever made sure to watch every minute of lecture material.

    The projects are all fun and engaging, but they vary in difficulty dramatically. Most are easy enough to knock out in an evening if you’ve watched all the relevant lectures. The only one that truly took a large amount of time was dodgeball, but it was by far the most fun.

    Exams were a bit… weird? They were difficult to study for, but they were curved in a way that most people will do well at the end.

    As another reviewer mentioned, Dr. Wilson and Joyner should be in charge of producing and running every class in this program.


    Semester:

    This is definitely not a “very easy” class by any means. For comparison, SDP is 100% very easy. Game AI, however, involves quite a bit of computational geometry especially in the earlier assignments. Some of the initial assignments, particularly surrounding building and traversing a grid and navmesh polygons, were entirely new concepts (for me) that required watching the lectures multiple times in order to fully understand what was being asked on the assignment.

    The upside is that – like many others have commented – Professor Wilson is a baller when it comes to giving students the information they need to learn. David Joyner needs to sync up with him and figure out how to make all classes feel this supportive!! :) He will share starter code or example code when requested, provide a generous amount of time and help in private posts AND to top it off, his TAs have the same attitude and knowledge during office hours. They don’t give answers like “it’s mentioned in the lectures already” or “go read Chapter # again.” They are genuinely willing to share knowledge and help everyone, even if that means explaining the same concept multiple times across different Piazza posts if someone isn’t “getting it.” On top of being helpful, Professor Wilson also extended due dates, especially for Assignment 5, which a lot struggled with (that single ball scenario!!!).

    Overall, this is not an easy class if you are not familiar with computational geometry. You will need to digest some new concepts fairly quickly for Assignment 1 and be ready to apply them to the next few assignments. That said, while the class is hard, the assignments are rewarding and fun and I learned A LOT!


    Semester:

    I’ve taken AI4R, SDP, VGD, modeling, simulation and military gaming, and KBAI. I would rate this as hard or slightly harder than KBAI. It is recommended for OMSCS students that you have completed AI prior to taking this course, which likely would have made it easier.

    The first half of the course is computational geometry and path searching algorithms. The second half is really cool, involving finite state machines, ballistic targeting algorithms, fuzzy logic, and procedural content generation.

    I took this class because I’m interested in the CS behind video games and it satisfies the Interactive Intelligence specialization requirement. With it being newer, I think there were some hard-chargers that reviewed this as being much easier than it actually is. This is not a trivial class.

    At the end of the course, you will have some seriously cool projects to showcase that are self-rewarding. You implement a dodgeball game strategy (including the targeting and throwing), and a self-driving race car on a procedurally generated track. I feel like I learned a lot, really enjoyed the course textbook, kind of enjoyed the lectures (watch in 1.5x or 2x), and thoroughly enjoyed the course interaction with TAs/ Prof Wilson. Prof Wilson is an absolute unit and directly helps students all the time on piazza. The TAs are good as well.

    I was offered a TA position in this class, have received a 100 on assignments 1-6, and a 70 on the mid-term uncurved (80 with the curve). As of the time of this review, still waiting on assignment 7 grade and planning on taking the final in a couple days.


    Semester:

    Overview

    Awesome class. I find myself looking at options to rework my class plan to take prof. wilson’s other course in game design.

    • fun if you enjoy thinking about game dev internals
    • straightforward
    • light workload
    • good lecture content

    AI4R, ML4T, AI make the cs portions of this class a cake walk.

    Context

    I am a SWE with 15+ years experience. I worked in unity before for a personal project. Ive taking the following courses in order of subjective difficulty:

    ML4T < HCI < AI4R < DVA < AI ~ CP

    Lectures

    • The pdf slide notes are pretty sparse. I heard some ppl used TTS to extract voiceover, these would be better and more searchable for exams. I didnt find it necessary.
    • slow voiceover, even at 2x
    • Content was relevant and well structured. Topics were layered effectively.

    Due to the low information density (From slow talking) and the effective lesson structuring, i found i absorbed the content reliably.

    There are quite a few lectures. I would watch these while doing errands or working out, taking time to pause and rewatch when hearing something interesting. Topics were not exceedingly complex, and the explanations were thorough and slow paced.

    Assignments

    There were 7 assignments for summer quarter. Syllabus indicates 6-8. All assignments are available on public github, but they are tweaked and officially published as the quarter progresses.

    In general, a lot of scaffolding in these assignments is provided. Think more along the lines of AI4R vs AI/ML. like chedcode. If you can view the github repo you can see what i mean, but in general the assignments are “runnable” out of the box with obvious flaws and gaps that you can fill in piecemeal with the contents of lectures.

    It is spoon feedy.

    Personally it was a welcome change from “heres a set of papers, go replicate the results and deploy a working program and oh also write a paper” (comp photo, AI).

    I enjoyed getting direct, actionable responses to my questions vs “go re-read these 4 papers and think about why you are not getting a good result”. In other classes I have unresolved mental trauma from spending 20 hours writing and rewriting 3 way astar search because i misordered 2 lines in my heapq wrapper. i hardly consider that a learning experience.

    One thing that i disliked was the lack of auto grader. In assignment 1 i was mixing one boundary condition check, and even though my algorithm (due to defensive coding) managed to find the proper path reliably, i was dinged 30% credit because the unit test failed. There is no repeatable gradescope type thing, so this was my grade for that first submission.

    You get a regrade opp for 50% credit, and luckly for me for assignment 1 you get regrade for full credit. But because of this grading infrastructure, there is very little room for error.

    On the flip side, the assignments are very clear, the documentation is very good, and if you fail these assignments after the regrade, you truly earned that F. the unit test outputs make it easy to reverse engineer the unit test criteria, and then they are useful for finding your bugs.

    The latter assignments are really fun.

    Its easy to get “good enough” ai to get full marks, but i put in 20+ extra hours on each assignment just for fun to see if i can make my dodgeball minions coordinate better, or make my car faster.

    I found the assignments rewarding because there is immediate visual feedback for when your algorithm starts clicking and working. When my minions starting pegging the enemy reliably for dodgeball, or when my car would stay on course, it felt like you accomplished something, even if it was just incremental to the assignment at hand.

    Exams

    I crammed for these by watching all the videos over the week prior. Its open book. Open notes. 3 hour time limit. I finished both in ~40 minutes and got 88 on midterm and 82 on final. There is enough time that if you really wanted to, you could probably get a 100% by rewatching the videos while the exam is going. But my assignments were high enough that i was set for an A anyways.

    The wording on the questions can be confusing, but it doesnt feel “malicious”. The wording is confusing because a lot of the questions rely on setting up preconditions which are difficult to verbalize without “seeing” a game in action. They are not confusing because they are trying to be clever and trap you into the wrong answer. Regardless, i still had some wtf i knew that moments when reviewing my exam scores. but given how easy it is to ace the assignments i think it balances out overall.

    There was talk of a curve if results were poor, but i dont believe summer was curved.


    Semester:

    I really liked this class, although it was a much higher workload than advertised on OMSCentral. This is typical for summer though, so I was not surprised.

    The best part about the class are the assignments which are really interesting and really fun to implement! For example, the Fuzzy Race Car and the Prisoner Dodgeball assignments were really fun. Another thing that is really great is the professor and the TAs. I’ve had some of the best response times in OMSCS in this class as well as some of the most useful responses. These people are passionate about Games!

    On the other hand, some of the lectures could definitely be a bit dry at times and long. There are also a lot of them, so expect to be spending most of your time actually watching lectures. I prefer the format of having small, more digestible chunks like in other classes rather than 1hr+ segments. This was one place where I felt Udacity was set up a little better, and could give the sense that you were making progress. (Like books with shorter chapters) The lectures are good though, and I recommend taking notes for the exams.

    Speaking of which…at this point, I’ve only taken the midterm; the final is next week. The exam was actually pretty difficult, and despite being open notes, these are really “apply what you’ve learned” types exams. I did not do well despite getting 100% on the assignments, and it actually makes we worry that I won’t get an A in the end.

    Nevertheless, this is a good class IF you are interested in games & AI and IF you’ve had some background in things like search and graph before. More important, be familiar with a typed language like C#. If not, I recommend you get up to speed on these things. I also recommend getting ahead in the first week, especially in terms of lectures. This class definitely felt front-loaded and I could see where the previous comment’s reviewer felt overwhelmed. It gets better and its really not that bad!

    Overall, take this class if the subject matter interests you. Its not terribly hard, its fun, and you will probably learn a lot!


    Semester:

    If you have taken AI (CS6601) and perhaps AI4R (CS7638) previously then you will have the necessary pre-requisites to understand the concepts needed to complete the assignments, otherwise be prepared to spend a lot of time to familiarize yourself on those topics. Due to the compressed nature of the summer session, the weekly lectures are quite long (5 to 6 hours a week on average) and there is an assignment due every week. Also if you are not familiar with Unity and C#, expect some ramp up to do. The class is quite well organized. Dr. Wilson and the TAs are very helpful. However, I found it to be a bad fit for a summer session. I ended up dropping the class due to that reason and lacking the necessary background from the AI (CS6601) class.


    Semester:

    This class was extremely well run. Dr. Wilson was active in the class, as well as the TAs. The content is very interesting. I personally took it to learn more about game AI techniques as they might apply to simulation, and I found that it filled some holes that other OMCS courses don’t address. The lectures ranged from boring to very interesting depending on the content, but overall I think the lectures were good and delivered what the class promised.

    Being a non-CS undergrad, it was my 8th class and the first one where I picked up a new language (C#) pretty quickly. The assignments were relatively easy and I think could be more rigorous to compare with the other high quality courses in this program (AI, Deep Learning, AI4R, GIOS). There are some navmesh and search assignments early on that utilize some comp geometry algorithms that I thought I would have learned more about by having to code them myself. The finite state machine/dynamic targeting assignment (dodgeball game) was great. The fuzzy logic assignment (race car), which may include a neural net in future semesters, was interesting and fun as well. The last assignment was on procedurally generated content, which was also fascinating, but didn’t involve coding. I would have liked to have coded up some of the algorithms that were discussed in detail in lectures, like poisson disk packing, dithering, or even perlin noise.

    Dr. Wilson has plans to build on the assignments and I’m confident in future semesters this course match the other courses I’ve taken in the program. Overall it’s a fun, interesting course if you are looking to take an easier semester without taking a semester off.


    Semester:

    For being the first semester it was offered the course ran pretty well: Professor Wilson was extremely active on Piazza, assignments had clear requirements and were graded within a reasonable amount of time, and overall there were very few hiccups. You can safely ignore the recommendation to take CS6601: Artificial Intelligence first, there’s very little overlap, and what does overlap is much lighter in this course than in 6601 (but take 6601 anyway if you’re interested, it’s a great course!)

    The course videos aren’t as flashy and well produced as many of the older courses; they’re just recordings of Professor Wilson talking to slides, with the occasional clip from a GDC presentation or Youtube video to enhance the content. They can be dry at times but they get the job done. Lectures were typically released in large batches of several topics worth of videos per week. It’s unknown if this will continue in future semesters or if everything will be available right from the start. I found the topics covered in the second half of the class to be much more interesting than in the first half.

    There were seven homework assignments. We had one week each to complete the first few and two weeks each for the rest. For the most part these were very easy, with the assignment documentation and code templates walking through how to do most of the work. The last few assignments had some open-ended components: one involved coding logic to control a Prison Dodgeball Team, another used fuzzy logic to pilot a racecar around a randomly generated track, and the last involved procedurally generating terrain. Meeting the minimum requirements for these wasn’t too time consuming, but there’s a lot of potential for playing around with and customizing your solution as much as you want. Note that Professor Wilson is still working on these and there will likely be changes in future semesters.

    The exams were multiple choice, open note, open book, open internet. We were given 3 hours to complete them but I found that to be overkill; I spent a little over 1 hour on the first, and about 45 minutes on the second. Personally I found that taking good notes during the lectures and having the slides open was enough to do well without much extra preparation.

    Overall I found this class to have a low workload and minimal stress, with some of the projects actually being fun. It’s a great candidate to take in the summer, pair with another course, or to just take a light semester.