CS 4730 - Fall 2017 Syllabus

Basic Info

2017 Fall Semester


Lecture: Mondays and Wednesdays, 11:00am - 11:50am - MEC 205
Mario Lab: Fridays, 10:00am - 11:20am - Rice 340
Luigi Lab: Fridays, 11:30am - 12:50pm - Rice 340

Staff Information

Instructor: Prof. Mark Sherriff
Office: Rice 401
Office Hours: Tuesdays 2:30-4:00pm and Thursdays 10:00-11:30am
Phone: (434) 982-2688
Email: sherriff@virginia.edu
Twitter: @MarkSherriff

Teaching Assistants: Zach Danz, Jackson Ekis, David Hall, Susannah Jones, Isaac Park, Yixuan Qian

Message boards: Piazza @ https://piazza.com/class/j1c1z3481wz6cq
Login to Piazza and use the threads for quick questions, assignments, and for discussion with other students and staff. You can also post private messages here that will only be seen by staff members. This includes regrade requests for homework assignments.

Office Hours

All office hour times are posted on the course calendar at the bottom of the Schedule page on the course website. TA office hours are held Rice 340. Professor office hours are held in Rice 401. Note that we will update this calendar for any and all office hour changes due to the changing needs of the course. Students should refer to this calendar before going to any office hours.

Primary Text

  • Game Design Workshop: A Playcentric Approach to Creating Innovative Games by Tracy Fullerton - Amazon or Online through UVa Library
  • Reality Is Broken: Why Games Make Us Better and How They Can Change the World by Jane McGonigal - Amazon

Other Texts

These are books that I will be referencing throughout the course, but they are not required.

  • Rules of Play by Katie Salen and Eric Zimmerman - Amazon
  • Creating Games: Mechanics, Content, and Technology by Morgan McGuire and Odest Jenkins - Amazon

Course Description

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

Course Requirements

You should meet the following requirements to take this class:

  1. Have taken CS 2150 with a C- or better. We’ll assume you have mastered the material in the courses leading up to CS 2150 also, which includes software developments skills in Java and C++.
  2. Can attend class and lab regularly.
  3. You will be expected to learn programming languages and platforms on your own in this class! If you don’t feel comfortable with this, please talk to Prof. Sherriff as soon as possible!
  4. Must have an appreciation for games. This does not mean that you are a “hardcore” gamer. What this means is that you will be expected to play games in this class in addition to the ones you create. Another way of thinking about it is you wouldn’t take a film making course if you hated watching movies...


Assessment in this course is different than most courses. In the true spirit of gaming, your grade in this course is based on experience points (XP). Every quest, boss battle, random encounter, etc. is worth a given number of XP. Some quests can be repeated for more XP. Every student begins the course with 0 XP.

The class will be divided into 20 levels. For each level, students must attain a certain amount of XP. As students level up, the amount of XP required to go to the next level also increases.

Our XP table is based (loosely) on the XP table for World of Warcraft.

LevelXP NeededTotal XPLetter
1616300123700D- / D / D+
1717100140800C- / C / C+
1818400159200B- / B / B+
1919700178900A- / A

Note on +/-: +/- will be awarded within each letter tier. For instance, if you earn 160000 XP, that is just barely into the B tier, and would thus earn a B-. Similarly, earning 177000, which is not quite in the A tier, would yield a B+. The exact +/- range will vary by semester depending on individual students and overall class performance.

For more information on how much XP can be earned for each quest, please check your Gamer Card.

Class Management


  • I have an "open door" policy, in that if my door is open, by all means stop on in and say hi or ask a question. If my door is closed, then I'm heads down on some task, on the phone, in a meeting, etc. It's always a good idea to email me before coming to make sure I'm here.
  • I can’t stress enough that email is the best way to get in touch with me.
  • If you email me, please put 4730 somewhere in the subject. Failure to do so makes it much harder to keep up with your email and reduces the chance of a timely reply.
  • Please don’t hesitate to contact me if you have any problems, concerns, questions, or issues regarding the course, material, or anything else in the class.

Game Teams

The game you will build this semester to be undertaken with a group. Details of the groups are:

  • Normal group size is three or four. Expectations will not be adjusted due to smaller group size. There will be no groups of other sizes.
  • In general, all group members will receive the same grade for graded assignments. However, group members will evaluate their peers and any student who appears to not be contributing may be penalized.
  • Each group will be responsible for assigning tasks to its group members.

You are expected to work as a member of your group in this course and cooperate with your colleagues. Cooperation means attending group meetings, completing your assignments properly and on time, letting your group know if you will be out of town, responding to e-mail from your group, and so on. If there is a lack of cooperation by any group member, it must be brought to the attention of the instructor as soon as it happens. If the lack of cooperation is serious, the offending group member’s semester grade will be lowered.

Academic Honor

  • In general, we expect that you will be using code, examples, and ideas from many different websites and resources for your projects. This is allowed within reason. Wholesale copying of an entire project is definitely not allowed. Using code to round out a feature is allowed. If you ever have a question about what is or is not appropriate, ask first!
  • In ALL cases, you need to cite all sources at the top of the file where the code or algorithm was used AND you should note all sources in your documentation.
  • Game ideas that have nothing substantially original added will be considered plagiarism.
  • Failure to properly attribute your sources will result in a 0 for an assignment at a minimum.

Resources / Hardware

  • We will be using Unity as our engine of choice for the semester. Head over to https://store.unity.com/ and download the personal (free) edition and make a unity account for yourself.
  • For the game project, you will be able to decide your platform of choice. Some possibilities are: Windows, Mac, iOS, Android, Oculus Rift, HTC Vive, and Xbox One. We can provide resources for most of these options.
  • Most all hardware must stay in Rice 340. TAs will be available to check out hardware during office hours.

Random Encounters (Attendance and Pop Quizzes)

  • Attendance in lecture and lab is vital to learning the material and making a good grade in this class.
  • There will be specific, announced class days in which a random encounter is possible. A random encounter is a pop quiz for XP toward your grade in the course. A die roll will determine whether a random encouter will happen or not, with some "forced encouters" to ensure the correct number of encouters occur.
  • Students can "flee" one random encounter with no penalty, either by being in class and choosing not to participate or by simply not being there that day. Fleeing more than one random encouter will result in a loss of XP, VP, or both.
  • Random encounter days will be denoted on the schedule on the website.

Quests (Homework Assignments)

  • Quests will not be handed out in class. Everything will be available online through Gamer Card.
  • Partners/groups/teams may not collaborate with any other set of partners/groups/teams unless specified as part of the assignment.

Boss Battles (Midterm and Final Exams)

  • There will be one midterm boss battle and a final boss battle during the course of the semester.
  • Any boss battle that is missed due to any absence that is not a University Excused Absence will result in a loss of level at a minimum.
  • Any boss battle that is missed due to a University Excused Absence or due to circumstances that are approved by me beforehand must be made up within a week of the missed test.

Grading Concerns and Appeals

  • All grading appeals must be submitted as a private post on Piazza, tagged with the regrade folder option.
  • All regrade requests must be made within one week of the assignment being returned to the student. After that point, no regrades will be considered.
  • We will regrade serious errors in judgement; we will not regrade partial credit judgement calls.
  • When regrading, we reserve the right to regrade the entire exam or assignment, which may result in either an increase or a decrease in your grade. We are not trying to scare off students whose exams or assignments were graded incorrectly, but we are trying to avoid frivolous requests.
  • What should be regraded?
    1. Your answer is the same as what is on the key, but the grader didn’t realize it.
    2. Your answer is different, but is also correct (code that compiles and runs correctly, but is different than the key).
  • What should not be regraded?
    1. “Most of what I wrote is correct, so I think I deserve more partial credit.”
    2. “I wrote so much, and the grader didn’t notice that the correct answer is buried somewhere within this long paragraph.”
    3. “I’m just 1 point away from an A, so I thought it was worth scrounging around to find an extra point somewhere.”
  • The regrade procedure is intended to correct serious errors in grading. It is not intended as a opportunity to argue about each judgment call made by the graders. We agree that graders sometimes take off 1-2 points too many here and there, but we believe that they also give you 1-2 points too many just as often. When we regrade exams, we sometimes disagree with the exact points awarded on each question by the graders, but the total grade usually comes out the same.
  • However, significant mistakes in grading do occur. If you sincerely feel that your exam or assignment was unfairly graded, we will look it over carefully. In that case, we reserve the right to regrade the entire exam or assignment, which may result in either an increase or a decrease in your grade. We are not trying to scare off students whose exams or assignments were graded incorrectly, but we are trying to avoid frivolous requests.
  • What should be regraded? 1. Your answer is the same as what is on the key, but the grader didn’t realize it. 2. Your answer is different, but is also correct (code that compiles and runs correctly, but is different than the key) What should not be regraded? 1. “Most of what I wrote is correct, so I think I deserve more partial credit.” 2. “I wrote so much, and the grader didn’t notice that the correct answer is buried somewhere within this long paragraph.” 3. “I’m just 1 point away from an A, so I thought it was worth scrounging around to find an extra point somewhere.”

This Syllabus

This syllabus is to be considered a reference document that can and will be adjusted through the course of the semester to address changing needs. This syllabus can be changed at any time without notification. It is up to the student to monitor this page for any changes. Final authority on any decision in this course rests with the professor, not with this document.


In this course, there will be a focus on working well together and learning about the development process. A large portion of that process involves interpersonal skills and conflict management. Students and staff are all expected to treat each other with respect. This includes, but certainly is not limited to:

  • Excessive web browsing during class
  • Disrespectful language
  • Promptness for all deadlines and class meetings
  • Quality work
  • Not working well with your partner
  • Collaborating with other teams

Students can and will be penalized for unprofessional behavior.


Your class work might be used for research purposes. For example, we may use anonymized student assignments to design algorithms or build tools to help programmers. Any student who wishes to opt out can contact the instructor or TA to do so after final grades have been issued. This has no impact on your grade in any manner.

Academic Integrity

The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University’s Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled in the Engineering School and in the future.

Students are expected to be familiar with the university honor code, including the section on academic fraud (http://www.virginia.edu/honor/what-is-academic-fraud-2/). Each assignment will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, exams and individual assignments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam, assignment, or project to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student’s exam papers while working on an exam.) Sending, receiving, or otherwise copying or describing the contents of electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).

Assignments or exams where honor infractions or prohibited collaborations occur will receive a zero grade for that entire assignment or exam. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homeworks.

SDAC and Other Special Circumstances

If you have been identified as an SDAC/LNEC student, please let the Center know you are taking this class. If you suspect you should be an SDAC/LNEC student, please schedule an appointment with them for an evaluation. We happily and discretely provide the recommended accommodations for those students identified by the LNEC. Please contact us one week before an exam so we can make accommodations. Website: http://www.virginia.edu/studenthealth/sdac/sdac.html

If you have other special circumstances (athletics, other university-related activities, etc.) please contact your instructor and/or Head TA as soon as you know these may affect you in class.

Frequently Asked Questions

Q: How do I get off the waitlist?
A: Here is how we are going to pull people (or not pull people) off the wait list:

  • 4th year students (i.e. will graduate fall 2017 or spring 2018), have the highest priority (assuming they did not add to the waitlist within the last few days/weeks).
  • I anticipate a few more 3rd years will get into the class, but I make no promises.
  • If you are not a declared BSCS major, BACS major, CPE major, or CS minor, you have lower odds at getting into the course.
  • After this, the wait list ordering comes into play and we will follow the order that appears in the SIS wait list.
  • No course action forms will be signed.

Q: How do I swap labs? A: Make a post on Piazza to see if anyone else wants to swap. If a match is made, let me know and we will work to make it happen.

Q: When do I have to get the books?
A: You should order the McGonigal book ASAP. The other book you should get soon, or just read it online through the UVa Library website.

more ...