Skip to content



Introduction

Welcome to CS390 Video Game Design! 

This course introduces you to the fundamentals of computer game design and production, focusing on both the technical and creative aspects. You will learn to use popular game development tools such as Pico-8 and Unity. Some key topics include game mechanics, graphics, artificial intelligence, human-computer interaction, and game theory. From the initial game concept to prototyping, coding, and playtesting, you will gain hands-on experience in creating 2D games. No prior game development experience is required, but a strong foundation in programming is needed.

This course is adapted from Prof. Mark Sherriff’s CS 4730 course at the University of Virginia, shared under a CC BY-SA4.0 license. Thank you, Prof. Sherriff, for your valuable contributions to game design education and for sharing your work!

This class is for you if you:

  1. Want to combine your creative ideas with technical programming skills to design and develop computer games.
  2. Are looking to build collaboration skills for working in development teams.
  3. Wish to learn about the essential elements of game design, from mechanics and graphics to AI and human-computer interaction
  4. Want to explore the theories behind what makes games engaging.
  5. Aspire to pursue a career in game design/development or other related fields.


Learning Goals

Our aspirations for you by the semester’s end:

  • Understand the technologies and platforms upon which modern interactive computer games are developed;
  • Understand some of the software engineering concepts necessary to develop computer games (and other large systems) in a development group;
  • Comprehend the computational theory used in computer game 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).


Grading

Grades are determined using a set scale that may be adjusted downward but will never be raised. There is no curve. The breakdown is as follows:

  • A range: 90% and above.
  • B range: 80% and above.
  • C range: 70% and above.
  • D range: 60% and above.

An A+ is reserved for exceptional performance beyond just excellent work, and receiving an A+ is rare. Specific +/- grade distinctions will be determined after the final exam.

Below is how much each class quest will count toward your grade. An expanded description of each of the quests is provided after this section.

ActivityWeight
Class Participation5%
Pixel Pusher & Press Start5%
Critical Analysis Essays
• Essay #1 (5%)
• Essay #2 (5%)
10%
PICO-8 Mini-Game Jam10%
Unity Mini-Game Jam10%
Team Game Quest (Teams of 2-4)
• Team Declaration Form and Quest Logs (5%)
• Game Design Document (5%)
• Physical Game Prototype (5%)
• Final Game Submission (15%)
30%
Mini-Boss Battle15%
Final-Boss Battle15%


Quests

We have many kinds of quests (also known as assignments) to support learning the material for this class. 

Class Participation

Active learning is employed in classwork because it fosters a deeper understanding of the material, promotes engagement, and facilitates the practical application of course concepts.

  • Active Learning: In a typical class we will break up lecturing with interactive activities that are done in pairs or small groups. 
  • Participation: Participation in these activities, often done through a web browser, will form a significant part of your classwork grade. Be sure to bring your charged laptop to class.
  • Grading: Engage and submit all of the available question sets to receive full credit. Correctness does not matter unless otherwise stated in lecture. The questions are meant to help you understand how much you are grasping the material and to help me know the class’s level of understanding so I can steer the class accordingly. Therefore, please take them seriously.
  • Absences: Be sure to have all excused absences properly documented via a Short-Term Incapacitation (or other acceptable forms) to have the respective lecture’s points waived due to an excused absence.

Pixel Pusher

A warm-up quest meant to familiarize you with course development tools. 

Critical Analysis Essays

You will write two 3-4 page papers analyzing different video games during the semester.

Press Start

There will be two required games you must play before the mini-boss battle. No extensions will be provided for this assignment, as completing this quest is important for the exam. 

Mini-Game Jams

We will use two game frameworks/engines this semester – PICO-8 and Unity. You will create two small games individually with each tool set. If desired, the same game can be created twice, once with each toolset.

Team Game

Game teams will jointly submit a physical prototype, a game design document, and a final game. Teams will comprise of 2-4 students and can be self-selected.

No late submissions are allowed on the Physical Game Prototype, Working Game Demo,  and the Final Game Submission as we will demo these in class on the due date.

Boss Battles (Exams)

  • Mini-Boss Battle: Conducted during lecture hours in the usual classroom. 
  • Final-Boss Battle: Details, including the date and timings, are available on the course website.
  • Helper Sheets: Allowed to bring one page (front and back) of notes or printouts for reference during the midterm and two pages (front and back) for the final. The size of the page is the standard A4 (letter size) or smaller. 
  • Discussion: Do not discuss exam content with anyone other than the course instructor until an official announcement is made. Prematurely discussing the exam will result in academic misconduct.


How to Get Help

There are many different places you can receive help in this class. The TAs and I have structured this class with the goal that when you find you need help, it is not too far away while also respecting the time of everyone involved.

Lecture

  • Please ask questions during lectures; often others share your confusion.
  • Sometimes, I might defer questions due to time constraints. They will be addressed post-lecture or on ED if beneficial for a broader audience.

ED Discussion

  • ED supports student-to-student help. Enhance your grasp by assisting your peers; truly understanding a topic means you can explain it well.
  • To maximize ED’s utility:
    • Always be respectful and patient.
    • Search before posting to avoid duplications.
    • Make an effort to describe your question and what steps you have taken to address the issue so we have context as to what you’ve already tried.
  • Anonymous posting is enabled for peer privacy, but instructors will see your identity to ensure constructive interactions.

Consultation (Office) Hours

  • TAs and the instructor are accessible for in-person and online consultations during standard hours; check the class webpage for schedules and locations. Drop-ins are welcome, and discussions aren’t limited to course content.
  • You must use OhHai to get in line to see a UTA. This aids in managing the hours and gathering data to refine the process.

Requesting an Extension

Availability:
You may request an extension for any individual course deliverable, except the following:

  • Press Start
  • Team Physical Game Prototype
  • Working Game Demo
  • Team Final Game Submission

For class participation, points for excused absences will be waived rather than extended.

Duration:
Extensions of up to 1 week may be requested for any reason (but cannot extend beyond the last day of class). You must email Yesenia Velasco (yv10@duke.edu) with a detailed explanation for longer extensions. Requests for extended durations are not guaranteed and will be evaluated case by case.

Important Notes:

  • Extension requests must be submitted before the due date or within the grace period provided.
  • Requests submitted after the grace period will not be considered.

Additional Academic Support

If you feel the need for further assistance beyond what our course staff can offer, consider exploring resources at the Academic Resource Center (ARC):

  • Some of the Services Offered:
    • Personalized Learning Consultations
    • Peer Tutoring & Study Groups tailored for this course
    • ADHD/LD Coaching
    • Outreach Workshops and more
  • Personalized Approach: ARC recognizes that learning is unique to every student. Their dedicated team works alongside students to craft individual academic strategies, ensuring success at Duke.
  • Who Can Benefit: Whether you’re in your first year or your last, regardless of your major, the ARC has resources to aid your academic journey.

Booking: To schedule an appointment or to learn more, reach out to the ARC.

Contacting the Instructional Staff

While we want you to feel free to email us, the size of this class means that emails might be overlooked unintentionally. Before emailing, consider other communication methods outlined below:

  • If your question is general or could benefit others, please use ED Discussion instead of email. This ensures timely responses and aids collective learning.
  • If there is a class form on the course website that addresses your specific concern (e.g., extension request or excused absence), please fill out the respective form, and an instructional staff member will get back to you.
  • Direct emails to the instructor should be reserved for individual concerns like specific personal circumstances that go beyond standard extension requests.
    • Generic questions or those suitable for other staff will be redirected to ED.


Course Policies

Collaboration Policy

  • Individual Work: All assignments must be done individually, except the team project, where collaboration is allowed within your team.
  • Discussions: You can freely discuss approaches with classmates and even help each other debug, but your code must be your own.
  • External Resources: You may use online assets (e.g., sprites, sounds) and draw inspiration for game mechanics, but your code cannot replicate or make minor tweaks to another game.
  • Citations: Cite all external resources in your README file using the format described below.

Violations may result in academic penalties. If unsure, ask!

How to Cite Code 

Use the following format (or something functionally similar) as an example of citing code you use. You may not have all of these fields available, but this should give you a good idea of things to look for. Order by title of the software package. Use the appropriate commenting format for the programming language of your source code. Below is a general example of a citation format. Does yours have to look exactly like this? No, nor does it have to have all the fields. It does have to have enough to give the proper credit so we can find the resource if needed.

/*********************************************************************

*  REFERENCES

*  Title: <title of program/source code>

*  Author: <author(s) names>

*  Date: <date>

*  Code version: <code version>

*  URL: <where it’s located>

*  Software License: <license software is released under>

*

*  Title: ….

*

*********************************************************************/

Artificial Intelligence (AI) Usage Policy

AI can support your learning, like a peer in class, especially for pair-programming, debugging, or brainstorming. However:

  • Code Must Be Your Own: Use AI for guidance, but all submitted code must be written and fully understood by you.
  • Prohibited Uses: Do not rely on AI to solve assignments or write significant portions of your code.

Use AI to enhance your learning, not replace it.

Diversity and Inclusion

This course champions Duke’s Commitment to Diversity and Inclusion. Beyond the aspects mentioned therein, our goal is to craft an inclusive space, especially for students without prior computer science exposure, ensuring they perceive the class as a nurturing and affirmative learning realm.

Support for Disabilities

Duke University ardently promotes equal access for students with documented disabilities. Those in need can approach the Student Disability Access Office (SDAO) for a confidential discussion on procuring suitable accommodations for both classroom and clinical environments. We urge students to register with the SDAO at the outset of the program since accommodations are not applied retrospectively. For further information, explore access.duke.edu or reach out to SDAO at 919-668-1267 or SDAO@duke.edu.