Procedural Content Generation (Game Design Practicum)

Procedural Content Generation (PCG) is a game design technique that leverages programming to amplify human creativity. Learn how artificial intelligence, mathematics, and software engineering can let us create games with vast and beautiful worlds. This course will bust the superficial myths in PCG around “infinite” content/replayability or “replacing” human design time/costs. It will expose new opportunities for bending game platform limitations and enabling designs unreachable without generative techniques. Learn to use generative grammars, genetic algorithms, and even some of the latest deep machine learning ideas to generate images, music, and level designs.

In this lecture-style course, students will respond to readings (including texts, videos, and games) on PCG from both the academic world and the world of craft practice (e.g. indie designers). Technical programming assignments in JavaScript will offer opportunities for unique expression, and a final creative programming project will contribute to the student’s media portfolio. Group work will be encouraged (and required for the final project), so invite your friends to enroll as well.

This course is offered to all students in BSOE meeting the following requirements. Get a permission code in-person during the first week of class if you aren’t able to enroll directly.
- At least CMPS 12B level programming with demonstrated media creation experience (e.g. CMPM 80K or equivalent outside experience)
- At least CMPS 101 level programming without media creation experience

DRC Procedures

UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately during my office hours or by appointment, preferably within the first two weeks of the quarter. At this time, I would also like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact DRC by phone at 831-459-2089, or by email at

Course Staff

Instructor: Adam M. Smith (
Office hours Wednesdays 4-5pm E2-256. (Some time is available on Tuesdays for meetings by appointment.)

TA: Isaac Karth (
Office hours Thursdays 3:20pm-5:20pm and Fridays from 11am-1pm E2-256.

Extra office hours for creative projects:

- Wednesday Dec 6, after class until 4:45pm.
- Monday Dec 11, 1pm-5pm

Main lecture: Kresge Classroom 327, MWF 02:40PM-03:45PM


Tanya X. Short, Tarn Adams. (2017) Procedural Generation in Game Design.
ISBN 9781498799195 


30% reading (~25 items with quiz-style response writings)

40% programming (~7 1-week assignments)

30% creative project (details TBA)

Until finals week, late work is subject to a penalty of 10% per week applied to the maximum points available, not as a multiplier on the score. Additionally, there will be no late penalty for resubmissions of work that earned at least 20% of the available points by the original date. No late work will be accepted during finals week without prior arrangement.

Lecture Outline

F 9/29 L01: Course Introduction

M 10/2 L02: Myths and Opportunities
W 10/4 L03: Tech Introduction
F 10/6 (no class, Adam at AIIDE)

M 10/9 (no class, Adam at AIIDE)
W 10/11 L04: AIIDE Trip Report / P1 Reflection
F 10/13 L05: Images

M 10/16 L06: Combinatorics, Randomness, and Hashing
W 10/18 L07: Grids
F 10/20 L08: Graphs

M 10/23 Guest: Kate Compton
W 10/25 L09: Textual Grammars
F 10/27 L10: Grammars in Time and Space

M 10/30 L11: Missions and Spaces
W 11/1 L12: Generate and Test
F 11/3 L13: Genetic Algorithms

M 11/6 L14: Course Feedback Survey & Live Programming
W 11/8 L15: Representation Ethics and Framing
F 11/10 (no class, Veteran’s Day)

M 11/13 L16: Discussion
W 11/15 L17: Design Constraints
F 11/17 L18: Ethical Use of Procedural Generation

M 11/20 (no class)
W 11/22 Guest: Isaac Karth
F 11/24 (no class, Thanksgiving Day)

M 11/27 L19: Creative Project Setup
W 11/29 L20: WaveFunctionCollapse and Team Formation
F 12/1 L21: Project Proposals

M 12/4 L22: Course Recap
W 12/6 L23: Project Updates
F 12/8 L24: Project Updates

Finals Week
W 12/13 Project Presentations and Reports

Topics that got squeezed out of the schedule so far:

- Game Rule Generation / Markov Chains and Plagiarism / CRFs and Texture Synthesis / Deep Learning and ML Ethics

Course Summary:

Date Details Due