CS354P - Game Programming Paradigms


Course: Game Program Paradigms
CS 354P || RTF 344M || AET 353
Unique Numbers: 52905 || 09805 || 21825
Instructor: Sarah Abraham
GDC 7.716
theshark@cs.utexas.edu
Office Hours: TTh 1:00pm-3:00pm
Teaching Assistant:
Bo Sun

Office Hours: F 9:00am-11:00am (TA Station and Zoom)
Lectures: MWF 3:00pm-4:00pm, GDC 5.302
Class Webpage: www.cs.utexas.edu/users/theshark/courses/cs354p
Recommended Textbook: Game Engine Architecture (Jason Gregory)
Prerequisites: CS429


Course Objectives

The course is designed to give students experience and insight into how game engines are built. Students will work with Unreal Engine 4 as an example of modern game engine architecture, and work with the existing systems including physics, graphics, AI, networking, and animation among others to understand how these components interact. Students will also gain experience working with source control, built systems, and understanding the UE4 compilers. Projects will be done in teams to allow students to gain experience working together with other programmers on relatively large projects, as well as working with ticketing systems. We also expect students to "fend for themselves" to an extent greater than that of most other courses in the department. This means we try to provide the minimal amount of starter code and help with build environments to encourage students to leverage online resources and the expertise of colleagues. By the end of this course you should feel comfortable working in large systems with multiple APIs, and have greater experience debugging and reading documentation of third-party software.

Student Evaluation

Your performance in this class will be evaluated through a sequence of projects of increasing complexity and individual, lab-based homeworks that will help prepare you for the projects. The projects will be done in 3 person teams, with weekly milestones. Each project will be 2-3 weeks, and you will submit the project as a team. You may collaborate with your teammates on lab-based homeworks, but homeworks will be submitted individually and you must mention that you collaborated if any collaboration occurred.

Project grades will be assigned to teams based on the quality and timeliness of the projects they deliver as well as the quality of intermediate milestones in the project. In order to give individual grades, all students will evaluate their own and their team members' performance on each project as part of turning it in. This feedback will be used to offset individual grades from the team grades as appropriate. Each project grade will be weighted in the final grade in proportion to the fraction of the time in the semester it took.

There will be no final in the course. Instead, we will use the 3 hour final exam period to have a game demo festival, so please try to be available through finals week. We will invite members of the local game industry to join us in playing each of your games. Evaluations by the invitees will be used along with the professor and TAs evaluations as part of determining your team's grade on the final game project (more details to follow to accommodate the course's online format).

Each team has a "late account" of 3 days for the term which it can spend to mitigate late project deliveries. For example, you can turn in three projects one day late each, or one project 3 days late, without penalty. A project is late if it is not turned in by the specified due date and time, with any fraction of a late day counted as a full late day. You cannot submit labwork/homework late. Please turn in any progress you have made on time, whether or not the lab is fully complete.

Once you have exhausted your late account, your team will lose 33% of the maximum assignment grade for each additional late day. Thus, assignments will be worth 0 points after 3 additional late days. Since assignments build on each other, you'll still have do to the work, so you might as well do it on time and get credit for it.

Grading and Assessment

Assignments: 40%
Lab Completion: 30%
Class and Team Participation: 10%
Final Project: 20%

Academic Misconduct Policy

You are free to discuss the course material, game designs and engine architectures with your classmates and particularly your teammates. Teams are expected to make clear their division of labor for each project, and students are expected to do their own work on their portion of the project. Because these are team projects, we expect you to solicit help from teammates when you're stuck or need help making design decisions. Indeed, design decisions that impact interfaces to other team members parts of the project should never be made without consulting the rest of the team.

Leverage of existing software to solve programming problems is explicitly a goal of this course, unlike other courses in the department. Thus you are welcome and encouraged to look on forums and stack exchanges when trying to debug (note that if you copy any lines of code directly from such sites you must make sure you are not violating copyright by doing so, and that you give credit to the source in your project). You are also free to use external software in your project provided that:

Generally we will encourage appropriate use of open source libraries and engines to solve your problems. We are likely to frown the use of on other kinds of external software, however. University policy (see Dean of Students' policies on academic integrity) will be followed strictly.

Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:

Your Responsibilities in This Class:

Other General Information

The programming assignments will require use of the Department of Computer Sciences instructional computing resources. All CS students should already have accounts on these machines. If you do not already have such an account, you can obtain one for the class here. Other important information about facilities, including where the labs now are in the new building:

Please note that the machines that we are using for this course are the 64bit linux machines with high end graphics cards. These machines are in the namespaces kol64, nethack64, or candy64, you can find out the names of suitable machines to use by issuing the command cshosts kol64, cshosts nethack64, or cshosts candy64 at any public cs linux workstation.

Sharing of Course Materials is Prohibited

No materials used in this class, including, but not limited to, lecture hand-outs, videos, assessments (quizzes, exams, papers, projects, homework assignments), in-class materials, review sheets, and additional problem sets, may be shared online or with anyone outside of the class unless you have my explicit, written permission. Unauthorized sharing of materials promotes cheating. It is a violation of the University's Student Honor Code and an act of academic dishonesty. I am well aware of the sites used for sharing materials, and any materials found online that are associated with you, or any suspected unauthorized sharing of materials, will be reported to Student Conduct and Academic Integrity in the Office of the Dean of Students. These reports can result in sanctions, including failure in the course.

Lectures Online

This class is using the Lectures Online recording system. This system records the audio and video material presented in class for you to review after class. Links for the recordings will appear in the Lectures Online tab on the Canvas page for this class. You will find this tab along the left side navigation in Canvas. To review a recording, simply click on the Lectures Online navigation tab and follow the instructions presented to you on the page. You can learn more about how to use the Lectures Online system at http://sites.la.utexas.edu/lecturesonline/. Please note that your professor decides when and for how long recordings will be available for you to review. You can find additional information about the lecture capture system at: http://sites.la.utexas.edu/lecturesonline/.

Undergraduate Writing Center
The Undergraduate Writing Center, located in the FAC 211, phone 471-6222, http://www.utexas.edu/cola/centers/uwc/ offers individualized assistance to students who want to improve their writing skills. There is no charge, and students may come in on a drop-in or appointment basis.

Services for Students with Disabilities
The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259, 471- 4641 TTY.

Religious Holidays
By UT Austin policy, you must notify me of your pending absence at least fourteen days prior to the date of observance of a religious holy day. If you must miss a class, an examination, a work assignment, or a project in order to observe a religious holy day, you will be given an opportunity to complete the missed work within a reasonable time after the absence.

University Electronic Mail Notification Policy
All students should become familiar with the University’s official e-mail student notification policy. The complete text of this policy for updating your e-mail address are available at http://www.utexas.edu/its/policies/emailnotify.html. In this course e-mail will be used as a means of communication with students. You will be responsible for checking your e-mail regularly for class work and announcements.

Campus Safety
Regarding emergency evacuation: 512-471-5767, http://www.utexas.edu/safety. Evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside. Further information regarding emergency evacuation routes and emergency procedures can be found at: http://www.utexas.edu/emergency. For Behavior Concerns Advice Line (BCAL): 512-232-5050.


Last modified: 08/17/23 by Sarah Abraham theshark@cs.utexas.edu