Courses

CS 4730: Computer Game Design

Next offering: Spring 2017

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 main game design course is an introductory course in video game design and production. We focus on both the design and technical aspects of creating a game, from concept inception and prototyping through coding and playtesting. This course practices what it preaches with students earning experience points (XP) throughout the semester as opposed to letter grades on assignments. Students must complete a variety of quests (assignments) in order to level up to the point they can pass the course.

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).

Course Topics:

  • The topics to be covered in the course include:
  • 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

CS 2501: Introduction to Programming Through Game Design

Previous offering: Spring 2015

This experimental course will teach the basics of programming through the lens of game design. Students will use Python as their main programming language to create “games for good” working on small teams. The content for this course is still in development.

Note that no student that has taken CS 2110 or higher may take this course. It is intended to be an introduction to programming for students with no more than one course worth of experience. Students who have only taken CS 1110, 1111, or 1112 are eligible to take this course.