Course Syllabus

Understanding Game Engines

53-353 | Fall 21 | Remote  | F 1:25-4:15pm

Carnegie Mellon University,  Entertainment Technology Center

Course Website: courses.ideate.cmu.edu/53-353/f2021/

Instructor:  Tom Corbett (tcorbett@andrew.cmu.edu)

Office Hours:  Mondays 12:30-2pm ETC (PTC 3319)
Wednesdays 1:00-2:30pm IDeATe (Hunt A5A)
or by appointment

Credits: 9

Course Description

This course is designed for non-programmers who wish to learn how to use modern game engines such as Unity (which will be the primary tool used for this course).  Students will learn the fundamental components and features of game engines (such as objects, inputs, movement, interactions, physics, UI, artwork and animation, sound, and more) and the terminology and theory behind them.  Students will attend lectures and participate in example exercises to illustrate these concepts, and put these concepts to practice in their assignment work. All assignment work for this course will be performed individually, in order for each student to demonstrate proficiency.

Online Instruction

This course is offered entirely remotely.  To support this, our class will use the following online channels:

  1. Live Class Sessions will be held with Zoom at the regularly scheduled time.  These sessions will consist of lectures, discussions, and demonstrations.  A link to the class Zoom can be found on the course Canvas site.  Please do not publish or share this meeting invite.  Recordings will be posted online if you are unable to attend, experience technical issues, or need to go back and review content.
  2. Lessons will be pre-recorded and posted at the beginning of the week.  These will replace the “live-coding” sessions from previous versions of this course.     
  3. Example Project Files and Code from class sessions will be posted to the class folder on Box.  Students will be invited to share this folder as viewers only.
  4. Class Recaps will be hosted on the Course Website (link above), generally will be posted within 24 hours of a session.
  5. Assignments will be posted on the Course Website, and will be submitted through Box, via a personal folder created and shared with each student. 
  6. Office Hours will be held via Zoom.  To schedule an appointment, please email me to arrange a time.
  7. Email is the most reliable way to reach me (tcorbett@andrew.cmu.edu).  I will respond to all emails within 24 hours, sooner if possible.

Goals

  • Students will understand the fundamentals of how game engines operate and how they can be used to develop applications.
  • Students will develop a competence with common features and components of the Unity Game Engine.

Course Objectives

  • Students will become familiar with components typical of game engines, and understand the terminology and what they do.
  • Students will study examples of common game types to understand how they are structured.
  • Students will develop proficiency with the Unity Game Engine and create applications in that development environment.
  • Students will learn how to articulate a game design into component parts, and engineer a prototype application of that design.

Learning Objectives

  • Students will demonstrate, through discussions and assignment work, an understanding of game engine component terminology and operation.
  • When given a particular game type, students will be able to design and outline a basic game loop and structure for that type.
  • When given a game design document and corresponding assets, students can develop a working prototype of that design in Unity.
  • Students will be able to modify an existing Unity game package to modify and customize with artwork, sound, UI, mechanics, balance, and game-feel.
  • Students will be able to propose, design, and execute a game application in Unity that conforms to a predetermined set of game archetypes and constraints.
  • Students will demonstrate an ability to engineer solutions to given problems and obstacles in assignments, and a proficiency working with Unity Game Engine.

Lesson Topics

  • What does a game engine do?
  • Programming basics (Loops, Variables, Evaluation, Classes and Objects, Arrays & Data Structures)
  • Unity application interface and environment
  • Understanding the Game Loop
  • Gamespace and Movement (2D & 3D)
  • Physics and Collisions
  • Programming in Unity
    • Objects
    • Actions/Behaviors
    • User Input
    • GUI
    • Debugging
    • Compiling / Publishing
  • Art & Animation
  • Game Audio
  • Character and Enemy AI
  • Multi-scene Structure
  • Scene Lighting
  • Post-Processing
  • Optimizing Applications

Required Text

There is no required text for this course.  Links to recommended texts and articles will be posted on the course website as needed.

Course Policies

Students are expected to follow the standards, policies, procedures, and conduct codes of Carnegie Mellon University.

Attendance

Attendance to live class sessions is not required, but is strongly encouraged.  Recordings of live class sessions will be posted online in case you are unable to attend.  Lessons for the week will be posted near class time.   Students should strive to attend the live sessions, as that is your best opportunity to ask questions and receive assistance.

Online Class Conduct

  • Please be on time for class sessions, and ready to go when the class begins. 
  • Please leave your microphones muted when you are not talking.
  • Please share your camera feed during class sessions.  This helps to gauge your comprehension.of concepts, success of code, and readiness to proceed. 
  • Please do NOT share details of the Zoom call (meeting invites, links, passwords) 
  • Under no circumstances should you share class recordings outside of members of this class.

Assignment Policies

All assignment work for this class is on an individual basis, and each student is responsible for their own work.  Project parameters and deliverables will be distributed at the beginning of each assignment. If you have questions about the assignment or deadlines, please ask.

Assignments and project deliverables MUST be submitted by the provided deadline.  Late projects and assignments will assume a penalty or may not be accepted at all.

Students are expected to turn in their own work.  Don’t cheat or plagiarize. Please review CMU’s policy on Academic Integrity (http://www.cmu.edu/academic-integrity/).  Materials created by someone else (code, photographics, music, etc) are permitted, provided that students include proper permission and/or attribution.  Use of code libraries must be approved on a case-by-case basis.

Grading Policy

Students in this course will be graded individually for project assignments.  Assignments will be evaluated for quality of the final compiled game, and for quality of code.  Assignments will include parameters for what is expected, and some may include additional challenges.  Consideration will be given for attempting difficult challenges.

Grades for this course are assigned based on the following table:

97%A+
92%AExcellentExceeds expectations
90%A-
87%B+
82%BGoodMeets expectations
80%B-
77%C+
72%CSatisfactoryMeets requirements, but not expectations
70%C-
67%D+
65%DUnsatisfactoryBelow requirements and expectations

 

Information about IDeATe

IDeATe Lending

Although you should not need to borrow equipment for the completion of this class, you do have access to the equipment lending library operated by IDeATe.  However, due to the ongoing pandemic, operation hours and equipment availability is still limited.  

You can find the latest details on lending and facilities here: 

IDeATe advising

If you have questions or need advice about IDeATe minors or courses, please get in touch with Kelly Delaney, the Assistant Director of IDeATe. Her office is in Hunt A9A and her email is kellydel@andrew.cmu.edu.

Accommodations for Students with Disabilities:

If you have a disability and have an accommodations letter from the Disability Resources office, I encourage you to discuss your accommodations and needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, I encourage you to contact them at access@andrew.cmu.edu.

Statement of Support for Students’ Health & Well-being

Take care of yourself.  Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is almost always helpful.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you have questions about this or your coursework, please let me know. Thank you, and have a great semester.