Course Syllabus

Understanding Game Engines

53-353 | Summer I | Online | M-T-W-Th-F 2:30-4:20pm
Carnegie Mellon University,  Entertainment Technology Center

Course Website: courses.ideate.cmu.edu/53-353/m2020/
Instructor:  Tom Corbett (tcorbett@andrew.cmu.edu)
Office Hours:  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

Due to the circumstances of COVID-19 this course has been reconfigured to an online-only format.  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 live coding workshops.  A link to the class Zoom can be found on the course Canvas site.  Please do not publish or share this meeting invite
  2. Class Recordings will be posted nightly to the class Canvas site.  You can use these if you are unable to attend a class, experience technical issues, or want to follow the steps again.
  3. Example Project Files and Code from class sessions will be posted in Box to the class folder.  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 the session.
  5. Assignments will be posted on the Course Website, and will be submitted through a cloud storage platform to be determined (either Box or Google Drive). 
  6. Office Hours will be held via Zoom, by appointment.
  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

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

Course Objectives

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

Learning Objectives

  • Student will demonstrate, through discussions and assignment work, an understanding of game engine component terminology and operation.
  • When given a particular game type, student 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, student can develop a working prototype of that design in Unity.
  • Student will be able to modify an existing Unity game package to modify and customize with artwork, sound, UI, mechanics, balance, and game-feel.
  • Student 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
  • Optimizing Applications
  • Network & Multiplayer
  • Virtual Reality

Required Text

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

Course Policies

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

Attendance

Attendance is expected for all class sessions.  Because some disruptions are expected given current circumstances, recordings of course sessions will be posted online in case you are unable to attend.  However, 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%AExcellent
Exceeds expectations
90%A-
87%B+
82%BGood
Meets expectations
80%B-
77%C+
72%CSatisfactory
Meets requirements, but not expectations
70%C-
67%D+
65%DUnsatisfactory
Below requirements and expectations

Information about IDeATe

Facilities

Most IDeATe facilities are located in Hunt Library. Lending, Physical Computing Lab, Media Lab, the laser cutters, 3D printers, woodshop, and CNC router are on the lower level. Some of the equipment requires special training which you will receive either in the class that requires it or in a micro course. If you are unsure of how to operate any of the equipment or are unsure how to use the equipment safely and effectively, please send email to help@ideate.cmu.edu.

Safety: Report all fires and emergencies immediately to University Police at 412-268-2323.

Emergency response: University Police — 412-268-2323

Building maintenance: Facilities Management & Campus Services — 412-268-2910

IDeATe-related inquiries — help@ideate.cmu.edu

IDeATe Lending

Once you are enrolled in an IDeATe course, you will have access to IDeATe Lending. You will maintain your access through the rest of your time at Carnegie Mellon. You must present your CMU ID each time you borrow an item. You will also be able to purchase a limited number of consumable items (such as plywood and acrylic) for projects. Please visit https://resources.ideate.cmu.edu/lending/ for more detailed information on available resources, to review the IDeATe Lending Borrower Policy, and to find hours of operation.

Classroom and Lending access

If you are enrolled in an IDeATe class at least a week before the start of the course, you will have access to IDeATe Lending and (if applicable) have keycard access to the classroom door on the first day of class. If you add a course during the Add Period, you may need to wait a few business days to receive access while the lists are updated. If you add a course after the last day of the Add Period, email help@ideate.cmu.edu with your name, Andrew ID, and course number so we can add you to our systems.

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 246 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 or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:

CaPS: 412-268-2922

Re:solve Crisis Network: 888-796-8226

If the situation is life threatening, call the police

On campus: CMU Police: 412-268-2323

Off campus: 911

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