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