CS-6457 - Video Game Design
VGD |
Toggle to Select Spcific Semesters
Reviews
This was my last course; and they say you should leave the best for last, I am glad I listened. It was an awesome semester, the individual projects were time consuming but gave a good background into Unity and C#, and the real fun starts when the team project kicks in. Several groups had a hard time with their game and working together; ours was smoothing sailing from the start and I believe we have one of the best games made this semester. Pick your teammates wisely; the main problems I saw in other groups is they were not on the same page as far as what game they were making or kept leaving parts of the game for the last minute that ended up breaking the code. This course can easily be paired with another medium or easy course, but I recommend you take it alone if you want to focus entirely on developing an amazing game like we did.
The only thing I would change in this course is the name: it should be called Video Game Development. Yes we focused a lot on design but we worked on all aspects of game development, which included planning, -story telling, GUI and character design, lot’s of coding, non playable character AI and sound design to list a few. This course gives you a great overall view of what parts are required to develop a working, fun game. You probably will not be hired as a team leader for the next Fortnite update, but you will have enough to feel confident to work at an entry level position at a game startup. Take the class, I couldn’t recommend it enough.
This ended up being one of my favorite classes in the program so far. I was expecting an easy, but overall interesting course and that’s exactly what I got.
The individual projects are a great introduction to Unity. They’re a bit more open ended than other projects in the program, so a lot of students were fretting that they didn’t do enough or do it correctly, but based on the grade distributions, the professor and TAs were pretty forgiving when it came to “improvising” and as long as you do the minimum of what is asked in each project, you’ll be fine.
The exams were open book and open note and completely fair. You can take it twice and you receive the average between the two grades. They’re also only worth 10% of the total grade, so you could theoretically do badly on both and still get an A.
The group project was a great experience. I had a super solid group where everyone contributed consistently. We started the group under the premise of “let’s get things done early” which worked well the entire semester. We hosted our project on Github and used the PR system for code reviews which worked out great. We also met weekly and distributed tasks based on availability.
Finding a good group is probably the best thing you can do for yourself in this class. There were some horror stories from other groups, but it was smooth sailing for us.
How much you’ll enjoy and get out of this class greatly revolves around what group you’ll get for the semester project.
The class consists of:
-
A bunch of lectures. You can skip these and just reference them as needed. There are certain lectures that correlate to the projects, watch those as you’re doing the projects.
-
2 Exams. They’re open book, watch the lecture and search through the slides while doing this. You can take it twice, you get the average between the two attempts.
-
4 Solo Projects, simple projects to get you started with Unity. Most are done for you as part of the lectures
-
A Semester Project and milestones to go with it. The project, alpha, and reports that go with it make up the majority of the class.
The semester project will revolve around what kind of group you get and you will get out as much as you put in. I had a horrible group so it was really an unenjoyable experience and it was clear everyone had given up after the alpha. We had a guy drop without telling anyone and another member just didn’t commit anything throughout the entire semester. People would implement game-breaking changes at the 11th hour or push code that was obviously not play tested. Lots of coding over each other because people would not push code often or attend group meetings.
I got an A, but honestly, I did not get nearly as much out of this course as I wanted to. It was a pretty miserable experience. I can see now that getting in the class slack channel and teaming up with other people that are also eager to find a group is the way to go, that’s probably the best way to find other individuals that actually want to do work.
This class was my favorite class, up there with AI4R (I have taken AI4R, ML4T, HCI, IIS, DB).
The lectures are fantastic, I wish all OMSCS lectures were of this quality. Also the professor, Jeff, is super active on Piazza which is good to see.
There are 4 milestones, 2 small quizzes, and a group project. 90% of your time will likely be in the group project. The milestones are mostly tutorials, but do a great job at teaching concepts. For example there is a physics milestone, animation, etc.
This course allows for a lot of creativity, as long as your game meets the minimum requirements (3d, has AI, root animation, etc.) you are free to build whatever you (and your group) want.
I could have gotten away with maybe 10 hours a week, but I found myself wanting to spend time on group project (loved my group too). I recommend finding a group early on and being really organized from the start. We used Trello, Slack, and had weekly video conferences.
This class is definitely one that is as good as you put into it. I went in wanting to learn Unity, and left having made a really awesome game and a group of new friends.
I am excited to take Game AI down the road.
It is a fun class but it basically teach you some fundamental of Unity, but far from enough to get a job in this field. In fact, your final project won’t even worth going to your resume
This is my 7th class in OMSCS (CN, IHI, GIOS, CP, AI, KBAI). I write C# for my day job.
This class is a near-guaranteed A with most semesters at a proportion of >85% A grades. You don’t need any C# or Unity experience to succeed in this class. That said, I’ll repeat the words of previous reviews: you get out what you put in. This is especially true in a class that doesn’t provide the external motivation of challenging assignments & exams. If you want to learn the basics of game development, this is a great opportunity to pursue that hobby while still making progress in OMSCS.
I was pleasantly surprised to find that the class is great for learning practical Object-Oriented Programming principles & patterns. I believe these are essential industry skills for building maintainable applications, so this is a rare opportunity in OMSCS.
If you intend to double-up with a hard class, please be considerate of your teammates. Nobody likes that teammate who invests the minimum effort because they’re focused on another class.
Also, if all of your classes have a OMSCentral difficulty rating ≤ 3, you should consider taking harder classes. Please don’t use this class to find the easiest way possible through the program.
Team Project
Your most important assignment in this class is finding a group of 5-6 for the team project. The quality of your group will make or break your experience here, and the project is probably too big for one student to “carry the team”. To find good teammates, I believe the best strategy is form a group as early as possible. Proactive teammates tend to be very responsible teammates. Get on the class Slack and ask around before the semester starts. Also, search the introduction threads for anyone with prior Unity experience, which is a huge advantage for common solutions to common Unity problems. Don’t wait until the class starts talking about that team project.
My biggest complaint with the project requirements is the narrow scope of game mechanics. The game requires 3rd-person character control, so you’re limited to mostly 3D platformer or 3rd-person shooter genres. To be fair, a few ambitious groups did psychological horror and puzzle games as well.
Working with a team in Unity can be a pain because Unity Scenes are a nightmare to resolve merge conflicts. My team mitigated this by using an “exclusive lock” system for Scenes. We also heavily used Prefabs which allowed us to create assets without modifying the Scenes.
The time commitment will likely spike on weekends when the team needs to cleanup bugs, create builds, write READMEs with code & asset attributions, complete peer assessments, and record videos (trailers or demos). The more you can spread this out, the better. Again, proactive teammates will help avoid a classic “crunch” situation.
This does not require the students to create original art / sound / animations; most of those can be pulled & cited from paid or free sources. The project only requires that all code is fully original and created by the team. If in doubt, ask a TA and they will gladly give a thumbs-up or thumbs-down.
Milestones
The 4 individual assignments are all straightforward implementations following the instructions. I’ve seen more organized instructions in OMSCS, but nothing here is complicated enough to require significant help. The worst case is encountering a strange Unity behavior, but we’re playing in well-documented territory in this class.
The most challenging part is just organizing the submissions. There are very specific instructions on builds, file structure, a README, and excluded files.
None of these assignments should require more than 10 hours each unless you’re determined to overdo them. Even in that case, that effort might be better spent on the team project.
Quizzes
The first quiz was 26 multiple-choice questions, no proctor, open everything. They allowed 2 attempts, but the score is the average and the questions change between attempts. I felt the first quiz was very reasonable with a few tougher questions. With no time pressure, I spent almost 1.5 hours going through the lectures & lecture notes to pick up details.
Second quiz was roughly the same: 27 questions with True/False, multiple-choice, and select-all types. The difficulty was roughly the same.
I don’t recommend stressing over the quizzes; they’re only worth 5% each. As the weight suggests, you should focus your efforts on the group project instead.
Lectures
The lectures have an unusual structure for OMSCS. These were recorded by Dr. Wilson in his office and resemble long-form lectures more than the MOOC-style lectures of most classes. This means the lectures feel substantially longer, even watching on 1.75x or 2x speed. Keeping up with 3+ hours of lectures per week was an unwelcome chore when I just wanted to focus on finishing the team project.
Early lectures contain useful information from both a high-level and specific to Unity: several of the videos are walkthroughs for the individual milestones, and most concepts are required mechanics for the group project. For example, the class includes a short Audacity tutorial for processing audio clips for the game.
The later lectures (Interesting Choices, Interactive Narrative, Future of Games) aren’t bad, but they don’t feel integrated with the class except to pass Quiz 2. Lecture demos are fine, but not nearly as engaging as assigned playthroughs.
I only learned how to use Unity(software) to make some boring things, not very enjoy this course.
Individual Assignments, which are just time-consuming part, but easy to get 100s.
2 quizzes, very difficult and tricky, you have to watch videos very carefully.
Group project, choose someone you know better than some strange and lazy team members, they never showed up when you did the project yourself, and changed everything at the last minute before the due date.
You get what you put in. This class is generally extremely low stress. If you put the bare minimum of work to get an A, this can be the lowest course load out of all your OMSCS classes. But that’s no fun! Video games are never really finished and you can easily put as many hours as you want into your game.
While the milestones (homeworks) were great practice for implementing things we would need in our video game, if there was anything to complain about in this class, I wish there were either more of them, or more rigorous ones. Not so much that we would get bogged down by deliverables which is the case for many other classes (and the stress-free nature of VGD is honestly one of the biggest positives about this class), but just that there is so much to learn in Unity it would be great to have more structured learning.
All in all though, a lot of fun. Here are some practical tips for success.
I really appreciate when a course gets out of your way and lets you learn without bogging you down with quizzes, grading hassles, and minutiae. Video Game Design is such a course; it places minimal stressors on you, allowing you to get out of the course what you desire. I found this course to be greatly enjoyable in nearly all aspects, especially compared to the other OMSCS courses I’ve taken (this was my 7th course).
The curriculum is divided roughly into two parts. For the first ~30% of the course, you’ll be doing individual assignments (4) in Unity to learn the basics in areas like animation and physics. These are the sorts of assignments where the instructions tell you pretty much exactly what to do, and you have little excuse not to make a high grade. I had never used C# or Unity, so I found them instructional. The remaining bulk of the course is taken up by the group project, in which you and four others will make a 3D “Game Feel” game. Now, I usually hate group projects, but I got lucky in this one and had a great group of guys who put in lots of work. Our game turned out better than expected, and I found myself putting in more work into it than in any other OMSCS course, not because it was strictly required for a good grade, but because I enjoyed it. If you get a good group, you will probably have a good time, but if you get a bad group, it will probably be hell. The groups are not randomly chosen, but instead solicited on Piazza, so if you take the course with some friends, you can pre-arrange your group. Or you can just be diligent in choosing teammates from the Piazza posts and hope for the best.
The professor was very active and helpful on Piazza. Whereas other courses felt like the professor was the Lord of All Knowledge deigning to toss some scraps to the peasant students, Professor Wilson seemed more like a helpful mentor who was always willing to point you in the right direction. The course videos were enjoyable to watch (though you should definitely watch them at 1.5x), but unless you have lots of time, I’d say skip the textbooks (they’re not required at all). I can think of almost no downside to the course content or structure… the only thing might be to update some of the Unity lessons to fit with current best practices, but I understand it’s difficult or impossible to keep up with that.
Overall, this has probably been my favorite course in the program thus far. My ranking would go like this: VGD > KBAI > ML4T »> HCI > SDP »> ML > IIS
4 Individual assignments (they can be time-consuming, but easy 100s if you follow the directions)
The lectures were screen recordings of Prof. Wilson going over power points. Despite the lack of Udacity-level production quality, they were still interesting. He really has a passion for interactive media and it shows.
2 quizzes - “open book”, based on the lectures. we get a 3-4 day period to take it. Very easy, though there are a few difficult questions which require you to go back through the lectures to find specific details.
Group project - Where you will spend 95% of your time in this course. My advice is to keep it a simple 3d “game feel” platformer as suggested in the rubric. We sank a lot of time into ambitious features that were eventually scrapped since they were too complex. There are many Unity tutorials on YT that you can follow to get a decent running game.
I would say the course is pretty heavily front-loaded as we the have 4 individual assignments due back to back every week and then the alpha (which should have a majority, if not all, of the game features you have planned) due 3 weeks later, so beware if you are planning to pair it w/ another heavy/front-loaded course. The second half of the course was pretty lax and my group made small changes here and there based on alpha feedback end ended up w/ an A in the course.
This was a surprisingly good class - especially considering that this was the first semester it was taught in OMSCS. However, it is fundamentally different from most classes in the program: it’s really not designed to teach you much academic material but rather gives you time, resources, and guidelines / guardrails to learn how to develop fun 3D video games.
The class structure is very simple:
- Five homework assignments. These are worth 45% of your grade and are pretty much free points. The assignments are structured more like step by step tutorials and the professor even has a couple lectures showing you exactly how to do some of the assignments. While these assignments aren’t difficult, they do go through a lot of the ins and outs of Unity and are quite useful.
- Two quizzes. These are actually pretty tricky even though they’re open note. The only reason to watch the lectures is to do well on the quizzes, but they’re only worth 10% of your grade so you can get an A in the class even if you do poorly on the quizzes.
- The group project pretty much dominates the class. This project is actually very well structured - there are quite a few checkpoints (some graded and some informal) where you can get feedback to make sure you’re on the right track.
It’s important to note that while the course pre-reqs sound a bit scary, you really don’t need to know any complex math, C#, or have any experience with game development or Unity to do well in this class. According to a class poll, >60% of students this semester were completely new to Unity. However, the class does ramp up quickly so if you’re new to game development (like I was) I would highly recommend going through some of the beginner Unity tutorials like the create with code series.
The TAs and professor for this course were great. They were really active on Piazza, pretty decent at getting grades back on time, and gave good feedback on the project.
I think my only complaints with the class were that the group sizes were a bit too big. I would’ve preferred to work either alone (though it would’ve been difficult to get something really good together) or in a smaller group. Working in such large groups made it a bit harder to learn about all of the different aspects of Unity since each member owned smaller portions of the group project.
Overall, if you’re even mildly interested in learning about video game programming but never had the time to learn (or you’re an old hat but want some dedicated time to try out some new stuff) I would highly recommend taking this class.
This is my sixth course in the program and was by far the easiest while at the same time being the one I enjoyed the most. I learned a TON from this class and it was only easy because the professor was excellent and very passionate. I highly recommend pairing this with another class though as the workload was relatively light compared to others. By the end of this class you should be confident in making your own game in Unity. If that’s what you’re looking for, then go for it!
Although the first semester of this course isn’t over yet, I’ve noticed some concerns about this course considering it’s newness, so I want to get a review out there before everyone has registered for their next class.
The grading this semester breaks down as follows: Individual Milestones 44% Warm-up Milestone 1% Team Project Pitch 4% Team Project Alpha 8% Team Project Playtesting 8% Team Project Final Game 25% Quiz 1 5% Quiz 2 5%
Essentially the class is 45% individual assignments 45% a team project, and 10% quizzes.
The individual assignments are mostly focused around what can be done in Unity. They are somewhat structured, but the student has some freedom in the creative implementation
The team project is where most of the time for this class is spent. Teams are formed very early in the class, and deliverables are scattered throughout the semester. This is the most time consuming part of the class, but also the most fun. The project has and number of requirements such as the need to be a 3D game with some AI, but how the students choose to meet those requirements is very open ended. You team has a lot of creative freedom with what they choose to create. This is why I’ve been describing this class to friends and family as more of an art class than a CS class. You are expected to contribute to the code/algorithms your game uses, but you won’t be implementing a neural net from scratch.
With the quizzes, everyone on my team was surprised by the tickyness of the first quiz, so don’t take them too lightly. They are open book with no time limit, but if you take them seriously, and you should be fine.
Don’t avoid this class just because it has a group project. This was my third class in the OMSCS program with a group project, and I’ve had a great experience every time. Although I’m always nervous about group projects due to the large number of unknowns when getting started, in this program you are more likely to work with an ambitious veteran developer than a complete slacker. (It would have been four group projects if the pandemic didn’t scuttle the group project portion of HCI for spring 2020)
My personal recommendation for when to take this course is after you’re at least half-way done with the program. Focus on the core courses of your specialization first. If you need a change of pace, definitely consider this class. It is a fun change from some of the other brain melting courses you may encounter here. So far, it’s been great! (If all goes well, this is my last semester in the program, having already met the requirements for the ML specialization.)
The course focuses in doing development in the Unity framework. Unity uses C#, but you aren’t expected to know anything about it until after starting the program. My experience programming in Unity so far is more about understanding how Unity wants to do things rather than how C# would prefer you do them. I’d never touch C# before this class, and no one on my team had ever used Unity before, but picking it up hasn’t been a problem.
When it comes to the lectures, don’t forget to speed them up. The professor acknowledges that he talks somewhat slow, but in my opinion, if you speed them up, I think they are pretty great! Different style than the Udacity lectures, but well done.
Because this class is more fun than brain breaking, I think it’s a good candidate for pairing with another course. While I never experienced an “easy” course in grad school, if aiming for an easy/hard pairing, this would fit in nicely as the easy course. How much time you spend really depends a lot on how ambitions your group project becomes. On my project, it can feel pretty time consuming at times, but the time is much less stressful than with other classes.