Understanding Game Engines
53-353 | Summer 1 2022 | Remote | M-F 2:00 – 3:20pm
Carnegie Mellon University, Entertainment Technology Center
Course Website: courses.ideate.cmu.edu/53-353/m2022/
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
This semester’s course will be offered entirely as Remote Instruction (REO). To support this, our class will use the following online channels:
- 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
- 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.
- Some lessons may be pre-recorded and posted at the beginning of the section. These may be used to replace the live session, or as reference. The instructor will send out notice of schedule changes in advance.
- Example Project Files and Code from class sessions will be posted to Box. Students will be invited to share this folder as viewers only.
- Class Recaps will be hosted on the Course Website (link above), generally will be posted within 24 hours of the session.
- Assignments will be posted on the Course Website, and will be submitted through an individual folder in Box. (Your instructor will set this up for you)
- Office Hours will be held by appointment, via Zoom.
- 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
- 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.
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 for those who are unable to attend. 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% | A | ExcellentExceeds expectations |
90% | A- | |
87% | B+ | |
82% | B | GoodMeets expectations |
80% | B- | |
77% | C+ | |
72% | C | SatisfactoryMeets requirements, but not expectations |
70% | C- | |
67% | D+ | |
65% | D | UnsatisfactoryBelow requirements and expectations |
Information about IDeATe
IDeATe Lending
This semester, access to IDeATe facilities and lending is severely restricted. If you need to check out equipment for this class, you must coordinate with me ahead of time and I must authorize the usage before you will be allowed to check this out.
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 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 have questions about this or your coursework, please let me know. Thank you, and have a great semester.