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