GSND 6460: Generative Game Design (Spring 2025)
Spring 2025 |
Chris
Martens |
Wednesday/Friday 11:45-1:25 ET |
Ryder Hall 431 |
Welcome to Generative Game Design.
The objective of this course is to introduce students to
programmatic techniques ("generative methods") for generating designed artifacts, with an
emphasis on games as an application.
One can parse the title as either "generative (game design)", using
generative methods for games, or "(generative game) design", the
design of playful systems for generating artifacts.
We cover formal structures and programming techniques that are useful
for implementing and reasoning about generative design processes, as
well as design foundations such as design for recombination and
emergence.
This year's theme is where physical meets digital.
We will dedicate special attention to topics such as computational
fabrication (using programs to generate physical artifacts such as
textiles and papercraft structures)
and keepsake games (embodying generative algorithms through physical
play processes).
Course Information
Syllabus |
PDF |
Instructor |
Chris Martens, c.martens@northeastern
Office: Meserve Hall 138
Office Hours: Thursday 4:30-6pm (and by appointment)
|
Teaching Assistant |
Yiming (Jasmine) Sun, sun.yiming@northeastern
Office Hours: Wednesday 9-11am, Zoom or Teams (book
here)
|
Course Communication |
Piazza |
Lecture Notes |
Lectures notes will be posted on the schedule
page.
|
Graded Coursework |
Weekly assignments (programming, readings, design
prototypes, writing, etc.); classroom participation and presentations;
final project. |
Homework |
Homework assignments are posted on the assignments page.
Homework submission is on
Gradescope
|
Learning objectives:
After taking this course, students will be able to
-
Develop small programs ("sketches") that demonstrate generative design
techniques.
-
Explain the concept of a possibility space and how a computer
program can represent one.
-
Choose appropriate data structures and algorithms for implementing
generative methods.
-
Identify abstraction boundaries in generative design problems,
choose programmatic representations at the appropriate level, and write
programs that translate between different representations.
-
Interpret open-ended creative prompts and deliver prototype
implementations on a short time frame.
-
Critique creative work, and have their creative work critiqued, by and
for their peers.
-
Summarize the philosophical approaches of historical and living
practitioners of generative design.
-
Prototype a game that embodies a generative process.
Core topics:
- Programming with text and images
- Choice trees
- Formal grammars
- Loops, streams, and generators
- Subdivision and recursion
- (Pseudo)randomness
- Grids and graphs
- Cellular automata
- Rewrite rules
- Goal-directed search
- Solver-aided programming
- Learning from data (Markov models)
Credits
Course website design based on Frank
Pfenning's site for
15-814
|