This is the website for CSCI 181G PO: Game Engine Programming. Course information is available in the syllabus.

First two online weeks: join Zulip for a link to the Zoom call and other resources.

Course announcements, chat, Q&A. Join up! There are also desktop and mobile apps for Zulip.
Your TAs
Cynthia Li & Mia Celeste (contact them on Zulip only please)
Office hours
After class for half an hour Tuesday and Thursday. For appointments, use my calendly.
Mentor sessions
7:00pm–9:00pm Thursdays at (see Zulip for password)
Contact me
On Zulip or by email.
Other helpful chat channels
On Pomona Slack: #rust, #text-editors
All due in check-ins during office hours. See the major unit turn-in check-list.


We'll talk about 2-3 topics per week from the list below, and try to prioritize them based on the games we're working on and what we need to know when.

The first three weeks are fixed, but subsequent weeks will be entirely determined by the students in the class.

1/18, 1/20 Week 1 Board Rust The GPU and You   Lab: The Humble Textured Triangle
1/25, 1/27 Week 2 Board Games and Loops 2D Drawing Basic Input Processing Lab: Interactive Drawing
2/1, 2/3 Week 3 Board Movement Games vs Engines   Lab: Game Feel
2/8, 2/10 Week 4 Board   2D Animation Controlling Time and Framerate Lab: Animated Character
2/15, 2/17 Week 5 Board   Tilemaps and Scrolling Audio, music, sfx Lab: Chunk World
2/22, 2/24 Week 6 Board Tech Talk 1 (Avery & Summer: Godot) Multiplayer & Networking Menus and Other Game Stuff Lab: Game States
3/1, 3/3 Week 7 Board Tech Talk 2 (Aidan & Harry: Unity) Collision More collision, workshopping Lab: Jetpack Maze
3/8, 3/10 Week 8 Board 3D Rendering Demo Day (End of Unit 1)   No Lab
Spring Break          
3/22, 3/24 Week 9 Board Tech Talk 3 (Grace & Chloe & Nate: Blender) 3D Scenes   Lab: Vertex-color or UI renderer
3/29, 3/31 Week 10 Tech Talk 4 (Pei & Nicole: Shaders) 3D Scenes 3D Animation Lab: 3D Animations
4/5, 4/7 Week 11 Tech Talk 5 (Victoria & Shuxin: bevy)   Game Entities & AI  
4/12, 4/14 Week 12 Tech Talk 6 (Kevin & Evan: Workflow) 3D Cameras Preview Demo Day (3D Game) Lab: Camera Playground
4/19, 4/21 Week 13 Tech Talk 7 (Katiana & Zintan) Collision in 3D   Lab: 3D Collision
4/26, 4/28 Week 14 Tech Talk 8   Workshopping  
5/3 Week 15 Demo Day (end of unit 2)      
  Exam slot N/A      

Topic List

Readings and Useful Libraries


  • My general rust advice
  • A half-hour to learn Rust, a quick tour through Rust's syntax and special rules
  • Learn Rust—the Rust Programming Language ("the book"), Rust By Example, and links to documentation
  • RustConf 2018 keynote on data-oriented programming
  • Ultraviolet, a linear algebra crate with good support for SIMD and geometric algebra
  • Set up Visual Studio Code or Emacs or Vi to use Rust with rust-analyzer and LSP
  • Learn to love rustfmt (cargo fmt) and clippy (cargo clippy)

Performance Profiling




Books (all optional)

Many of these are available through the library via O'Reilly:

  • Artificial Intelligence and Games, Yannakakis and Togelius
  • Procedural Content Generation in Games, Shaker, Togelius, and Nelson
  • Game Engine Architecture, Gregory
  • Data Oriented Design, Fabian
  • Essential Mathematics for Games & Interactive Applications, Bishop
  • Game Physics, Eberly
  • Real-Time Collision Detection, Ericson
  • Artificial Intelligence for Games, Millington & Funge