CPSC362A
Video Game Development

Syllabus

A summary of the course objectives, content, policies, and schedule.

Instructor: Dr. Durell Bouchard
Office Hours: by appointment or open door
Office: Trexler 365-C
E-Mail:
Phone: 375-4901

Course Objectives


This course focuses on the techniques and technologies of creating real-time interactive 3D video games. Students will build a game engine and a game that uses the engine. Topics include 3D Transformations, Materials, Animation, Collision Detection, and Character Animation.

Intended Learning Outcomes: At the end of the course the successful student will be able to

  1. write programs with 3D graphics using OpenGL.

  2. implement a real-time interactive 3D video game engine.

  3. evaluate the performance benefits of various computational geometry algorithms and data structures.

  4. read and present real-time rendering and animation research.

Course Content


Computer graphics are why I fell in love with computers as a kid, which led me to choose to major in computer science, which in turn led me to study animation in graduate school, which finally led me to teach. This class is really special for me because in it I get to share with you the topics I fell in love with when I was a college student. My excitement for sharing computer graphics means this course may be a little different from what you are expecting. Instead of teaching the tools of modern game development like game engines and the techniques of game design, the course will focus on the low-level technologies used by game engines. You will spend the entirety of the class creating your own game engine to power a game of your design. This class will give you a better understanding of how a game engine works so that you can learn any game engine easily and use it efficiently.

Prerequisites: CPSC250

Text: OpenGL Programming Guide: The Official Guide to Learning OpenGL, by John Kessenich, Graham Sellers, and Dave Shreiner, Addison-Wesley Professional, 2016.

Assignments: Regular assignments are designed to reinforce class concepts. Assignments are due before the beginning of class. Late assignments will receive no credit.

Project: Over the semester you will create a 3D game engine and a game that uses the engine. The project will have multiple components that separate it into more manageable pieces. At the end of the semester, we will celebrate all of the hard work needed to complete the games by demoing and playing everyone’s games.

Due to the cumulative nature of the project, late components will be accepted until the final due date of the project. However, late components will have 1 / d percentage points deducted for each day late, where d is the number of days between when the component is due and when the project is finally due.

Activities: Programming activities are designed to allow you to practice the tools and techniques of 3D graphics before putting them to use on the assignments. Unless otherwise specified, the activities must be done during class and turned in before leaving. Late work will receive no credit.

Co-curricular: The Department of Mathematics, Computer Science, and Physics is offering a series of lectures designed to engage the campus community in discussions of ongoing research, novel applications, and other issues that face these disciplines. You are invited to attend all of the events but participating in at least three is mandatory. Within one week of attending an event, you must submit a one-page, single-spaced, paper (to Inquire) reflecting on the discussion. If you do not turn in the paper within the one-week time frame you may not count that event as one you attended.

Grading: Course grades are assigned based on the following weights and scale:

Grade Weights: activities…12% assignments…10%
project……75% co-curricular…3%

Grade Scale: 93-100 A        83-86 B        73-76 C        63-66 D
90-92 A-        80-82 B-        70-72 C-        60-62 D-
87-89 B+        77-79 C+        67-69 D+        below 60 F


Course Policies


Attendance Policy: Class attendance is vital to your success in this course; material covered during missed sessions is the responsibility of the student. Conversations held in class illuminate the published class materials and are subject to evaluation on the final exam. If you anticipate being unable to attend class, email me before class to be excused.

Make-up Policy: Everyone is expected to demonstrate their project at the scheduled time. If you have an excused absence, email me to arrange for a make-up. Unexcused absences will result in receiving no credit for missed demonstrations.

Late Assignment Policy: Unless otherwise specified, assignments are to be turned in before the start of class on the due date. If you anticipate being unable to meet a deadline, email me before the deadline to request an extension.

Academic Integrity: It is accepted that you have read and understood the standards for academic integrity at Roanoke College. All tests and exams are to be the work of the individual student. You are encouraged to get help from the instructor if you need help with any aspect of the course, including programs and assignments. Student assistants, tutors, and classmates may help you understand course concepts but may not show you how to do any particular aspect of an assignment. Students may discuss work and help each other out, but in all cases, the work you turn in must be your own. Copying someone else’s work or turning in someone else’s work is NEVER allowed. Using someone else’s work or ideas as your own is plagiarism and an academic integrity offense. Examples of academic integrity violations include copying a program or part of a program (even one line) from someone else, writing code for someone else, telling someone else how to solve a problem or having someone tell you how to solve a problem. Discussion among students about programming projects should be limited to general concepts, not specific aspects of how to complete the work.

Computer Use Policies: All students must abide by the Computer Use policies of Roanoke College. Failure to do so will result in involuntary withdrawal from the course.

Electronic Devices: All cell phones must be silenced and stored out of sight during class. The use of any electronic device during a test or quiz is prohibited. This includes cell phones, personal media players, personal digital assistants, and laptops. Any use of such a device during a test or quiz will be considered a breach of academic integrity.

Subject Tutoring: Subject Tutoring, located on the lower level of Fintel Library (Room 5), is open 4 pm – 9 pm, Sunday – Thursday. We are a Level II Internationally Certified Training Center through the College Reading and Learning Association (CRLA). Subject Tutors are highly trained Roanoke College students who offer one-on-one tutorials in a variety of general education and major courses such as: Business, Economics, Mathematics, INQ 240, Modern Languages, Lab Sciences, INQ 250, and Social Sciences (see all available subjects at www.roanoke.edu/tutoring). Tutoring sessions are available in 15, 30, or 45-minute appointments. Feel free to drop by for a quick question or make an appointment at https://www.roanoke.edu/tutoring for a longer one-on-one appointment. For questions or concerns, please contact us at 540-375-2590 or .

Accessible Education Services: Accessible Education Services (AES) is located in the Goode-Pasfield Center for Learning and Teaching in Fintel Library. AES provides reasonable accommodations to students with documented disabilities. To register for services, students must self-identify to AES, complete the registration process, and provide current documentation of a disability along with recommendations from the qualified specialist. Please contact Laura Leonard, Assistant Director of Academic Services for Accessible Education, at 540-375-2247 or by e-mail at to schedule an appointment. If you have registered with AES in the past and would like to receive academic accommodations for this semester, please contact Laura Leonard at your earliest convenience to schedule an appointment.

Diversity: I consider this classroom to be a place where you will be treated with respect, and I welcome individuals of all ages, backgrounds, beliefs, ethnicities, genders, gender identities, gender expressions, national origins, religious affiliations, sexual orientations, ability – and other visible and nonvisible differences. All members of this class are expected to contribute to a respectful, welcoming and inclusive environment for every other member of the class.

Preferred Name/Pronoun: I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records.

Course Schedule


This course expects you to spend at least 12 hours of work each week inside and outside of class.

Week Topic Assignment
1 Drawing with OpenGL Load 3D Model
2 Transformations 3D Objects
3 Lighting
4 Materials Load Material File
5 Texture Mapping Load Texture Map
6 Blending
7 Masking
8 Animation Frame Invariant Animation
9 Collision Oriented Bounding Box Intersection
10 Physics
11 Character Animation Load Animation
12 Audio Choose a Feature
13 Project Demonstrations