Course Description: Introduces the development and design of modern video games. Includes the description and implementation of a 2-dimensional game engine (including sprite graphics, linear transformations, display trees, etc). Introduces concepts in video game design, including designing for teaching game mechanics, the distinction between mechanics, dynamics, and aesthetics, and pacing through levels / level design. Students complete the implementation of their game engine and then proceed to build a fully playable game in the engine they have created.
Availability: It is important to me to be available to my students, and to address their concerns. If you cannot meet with me during office hours, e-mail and I will try to find the time to meet. That being said, like everybody else I am quite busy, so it may take a day or more to find a time to meet. And if you have any comments on the course - what is working, what is not working, what can be done better, etc. - I am very interested in hearing about them. You can send me an e-mail (please do NOT email the TAs directly). I tend to get bogged down by e-mail as the semester progresses, so seeing me in person (right after lecture, during office hours, etc.) is often a good way to get a more immediate response.
Prerequisites: CS2150 with a grade of C- or above.
Course objectives: The course objectives are:
Grades: Grades are calculated using a pass/fail system. There are three types of assignments: individual required, individual optional, and group project. Each assignments is pass/fail and final grades are determined based on the amount of work completed. A summary of the specific grade mappings can be found on the course grading page.
Special Circumstances: Students with special circumstances (athletics, extra time required on exams, final exam conflicts, SDAC considerations, etc.) need to let me know during the first week of class.
Textbooks: There is no required textbook, however you are required to read “Reality is Broken” by Jane McGonigal by the end of the semester.
Homeworks: The homeworks for the course are all posted on the course website and are self-explanatory. Homework deadlines depend on the type of assignment. See the homeworks page for more details.
Final Exam: Our final exam will be a short multiple choice exam. If you earn above a 60 percent on this exam, your grade rises one half letter grade. If your grade is above 80 percent, two half letter grades.
Computing resources: There are two specific computer resources needed for this course:
Attendance: Attendance in lecture is not required, but is highly recommended.
Recording Lectures: You may NOT record my lectures yourself. University policy states that this is not allowed without my consent. I will record the lectures and post them for your convenience.
Professionalism: We are all adults, and should act like such. Acting in an unprofessional manner that disrupts the class will first incur a stern talking-to. After that, a grade penalty may be assessed. Examples include: disrupting class, trolling people on Piazza, etc. This is meant to keep people from repeatedly disrupting class; we aren’t trying to be super strict on this. And yes, a warning will first be given prior to any other action.
Honor Policy: There have been a large number of honor violations in this class and other low-level CS courses recently. Outside the normal UVa honor policy rules, we have these additional rules:
Any honor violation or cheating will be referred to the honor committee, and will result in an immediate failure for the course, regardless of the outcome of the honor trial or your other grades. No exceptions! I am very strict on this, and one have successfully raised honor charges against students in the past due to violations of this policy.