Info about CS 4730

Hi everyone! I’m posting some preliminary info about CS 4730: Computer Game Design for the first summer session in case there are questions. I am currently on sabbatical this semester, so I’m a bit slower on email responses. And there’s a really good chance I’ll just direct you here if you email anyway :-). I’m going to do my best to keep this page fully updated with everything I know going forward.

Thanks for your interest in my class! Maybe I’ll see you soon!


Course Info

Instructor: Prof. Mark Sherriff
Lectures: MTWRF 10:30 AM-12:45 PM

  • Game Design Workshop: A Playcentric Approach to Creating Innovative Games by Tracy Fullerton - Available online as a PDF through UVA Library for free
  • Reality Is Broken: Why Games Make Us Better and How They Can Change the World by Jane McGonigal - Amazon

Prereqs: Old Curriculum - CS 2150 / New Curriculum - CS 3140


This course will introduce students to the concepts and tools used in the development of modern 2-D and 3-D real-time interactive computer video games. Topics covered in this include graphics, parallel processing, human-computer interaction, networking, artificial intelligence, and software engineering. -UVa Course Description

Our course is an introductory course in video game design and production. We will focus on both the design and technical aspects of creating a game, from concept inception and prototyping through coding and playtesting.

Upon successful completion of this course, students will:

  • Understand the social and ethical context in which video games are developed, marketed, and played;
  • Understand the technologies and platforms upon which modern interactive video games are developed;
  • Understand the software engineering concepts necessary to develop video games (and other large systems) in a large development group;
  • Comprehend the computational theory used in video games design, as well as, to a lesser extent, related fields (artificial intelligence, computer graphics, networks, etc.);
  • Understand the theoretical topic of game theory, and how that applies to multi-player games (and, to a lesser extent, artificial intelligence).

Major Topics

  • What exactly are games?
  • Game design documents and storyboarding
  • Game engines
  • Game physics
  • Collision detection
  • Game mechanics
  • AI
  • Pathfinding
  • Graphics / Lighting
  • Statistics / Probability / Game Theory
  • Game balancing


Q: How do I get off the waitlist?

A: A lot depends on what sort of TA support I can get. For now, just hang out on the list and I hope to make decisions as soon as I can, but that likely won’t be until late April (I’m guessing).

Q: What if I don’t meet the prereqs?

A: Sorry, but you’ll have to take the class another semester. Our data shows that prereq performance really does matter for future success in courses.

Q: Have you ever taught this before?

A: Yes! I have taught this course five times total - twice during the summer and three times during the normal academic year. The last time I taught it was in 2017.

Q: Are you going to do the same things as Prof. Floryan?

A: There are a lot of different ways to teach game design and they are all completely valid! Floryan focuses a lot more on “how game engines work” and the technology. I focus primarily on “what makes a game fun and how do you know you are actually building a fun game.” So I will spend way more time on what exactly is a game, how do you test games, interface design, etc. as opposed to exactly how the engine works.

Q: Is there going to be a project like CS 3240?

A: Yes - the end result of this class is building a game. Is it exactly like what we did in 3240? No, but there are similarities (I’m still a software engineering guy, of course). Such as using GitHub, doing some documentation (not as much, don’t worry), some form of “sprint check,” etc.

Q: What will the project be?

A: I don’t know yet. In the past, we have had a game pitch meeting, where students pitched game ideas to the class, similar to what I do in 3240. However, this is the summer, so we may not have time for that. The other idea that I’m toying with is everyone building a “variant” on Wordle in a web-based JS game engine. There are interesting peadagogical reasons for doing this, but also it’s the summer and we simply don’t have a lot of time. Trying to do Unity is probably too much.

Q: Will we be in teams?

A: Yes - probably teams of 3, but this is contingent on the class size as well.

Q: Will there be other assignments?

A: Yes and they will be solo.

Q: Do we have to play a bunch of video games?

A: There will be a few games that I will provide that you will have to play. They are all short (or you don’t have to get terribly far). Think of it like having to listen to various pieces of music in a music history class.

Q: Do we have to come to class? Will you record everything?

A: It’s summer, y’all. Yeah. You have to be there for every class. We only get a handful of class sessions and I have some activities planned. If you can’t commit to being there every day, then take the class another semester.

Q: I can’t take a summer class. When will this be taught again?

A: I wish I had a good answer for that. We like to teach it once every academic year, but obviously that didn’t happen during AY ‘21-‘22, which I think is the first time that’s happened since the class was created over a decade ago. I offered to teach it in Fall 2022, but I was needed on 3240 and Mobile. I think there’s a reasonable chance that either Floryan or I will be able to teach it in Spring 2023, but I can’t promise anything. You can always reach out to Prof. Jim Cohoon (Director of the BSCS Program) and/or Prof. Luther Tychonievich (Chair of the Undergraduate Curriculum Committee) to ask.