GCS StuCo F19: Game Creation for People Who Want to Create Games (98-127)
In this course students will learn the basics of game creation. The course is intended for both beginners and experienced game designers. In addition to project work done in class, students will learn fundamental tools like Unity.
The intent of this course is to expand the community of game makers at CMU to those who are interested in making games but may not have had the inclination to pursue it through more intensive means such as G.C.S. or Ideate.
The course also serves as an additional place for those already involved in the community to learn and collaborate. Tutorials and projects done in the student organization Game Creation Society will mirror and compliment work done in class.
This is the Spring 2019 iteration of the course. For the most recent iteration see This Link.
Lecture 1: Introduction
Lecturer: Adrian & Carter
- What is Game Design? What does Game Development Entail?
- A brief overview of the course and course procedures
Lecture 2: A First look at Unity
- Understand what a Game Engine is, and why we use the Unity game engine
- Utilize common Unity editor functionality and navigate scenes
- Understand Unity’s high level architecture: the Scene Graph and GameObjects
- Utilize the inspector to design levels, given art assets and scripts
Lecture 3: Wrangling Unity
- Create C# scripts in the Unity editor, edit them, and apply them to GameObjects as Components
- Understand the basics of Unity’s MonoBehaviour: Start(), Update(), and more
- Add easy-to-use interfaces to your component in the Unity Inspector, enabling artists and level designers to tweak parameters in your Unity code.
- Allow your scripts to interoperate with other Components (of your own creation or Unity’s)
- Use Prefabs to dynamically create GameObjects in your scripts
Lecture 4: The Asset Pipeline and You
- Technical introduction to Photoshop, an image editing tool
- What is an alpha channel? What are layers?
- Survey of common Photoshop operations / tools
- Technical introduction to Audacity, a free sound editing software package
- What is sound? Frequency / Amplitude, envelopes
- Synthesizing sound (Link to bfxr, a free online synthesizer for games)
- Optimizing game assets: Importing image and audio files files into Unity
Lecture 5: Move it: Animations in Animate CC and Unity
- Technical introduction to Adobe Animate, a 2D animation suite
- What is keyframing? What is a sprite sheet?
- Importing animations to Unity: How to manage sprite sheet import settings
- Brief introduction to Unity’s mecanim animation system
Lecture 6: 3D Modeling in Blender
Lecture Notes (pdf)
- Understand the basics of the Blender user interface
- Build 3D models using local mesh editing tools
- Utilize global mesh editing tools (Modifiers)
- Map a texture to a 3D Model using UV unwrapping
- Export 3D models in a Unity-optimized format
Lecture 7: UI Development in Unity
- Deep dive into Unity’s UI system: the Canvas component, Rect Transforms, and more.
- Maintaining resolution independence with the Canvas Scaler
- Managing complex UI transitions via Mecanim
- Executing UI skills by implementing UI functionality in an existing game
Lecture 8 / Midterm: Writing a Game Design Document
- What is a Game Design Document?
- Major elements: Goals, Narrative, Gameplay Systems, Art Style, Technical / Organizational implementation
- Exploring and critically analyzing GDDs from real games
- Midterm Assignment: Write a Game Design Document for your term project
- Learn the basic tools of Game Development
- Learn the fundamentals of Design and Game Feel
- Explore the various disciplines involved in Game Creation
- Create a working game that demonstrates these principles
Every Sunday (starting February 3rd) from 2:00-5:30pm, GCS holds open office hours in Wean 5421, where teams come to work in a collaborative environment. Students in the StuCo are also encouraged to come, especially while working on the two main course assignments, as listed below.
Mid-semester Assignment: Design Document
The mid-semester assignment is an original detailed design document. Students will have to reason about scope, game loops, and detailed mechanic descriptions. The assignment is meant to make students think carefully about all the parts of a game. It is also an opportunity to be creative and express the ideas that you would like to see in a game. Time in class will be allocated to work on this, but students are encouraged to work on it outside of class if they feel inspired.
Students will team up to collaborate on a final project. Using supplied behaviours, images, and sounds, students will build a game. The design is up to the students and serves as a chance for students to demonstrate the principles covered previously in class. Making a game is a laborious enterprise even with assets from the instructors, so students are encouraged to meet and work outside of class.