Syllabus

Week 1 – Introduction. Role Of PCG In Games. Particle Systems.

Tues: Overview of main families of generative methods (parametric design, grammars, genetic techniques, constraint programming) and examples of their application.

Thurs: Introduction to particle systems. Overview of SFML library (game library used in homework assignments).

Further information: No Man's Sky: How I Learned to Love Procedural Art

Week 2 – Noise

Tues: Perlin noise and its application to texture generation and terrain generation.

Thurs: Guest Lecture: Johnathan Pagnutti, Recipe and Music generation.

Further reading: Making Noise (Ken Perlin talk), Hugo Elias’ Perlin Noise page A Survey of Procedural Noise Functions (Lagae et al.)

Fri: Due, Homework #1 on Particle Systems

Week 3 – Grammars

Tues: Guest Lecture: Afshin Mobramaein, Texture synthesis

Thurs: Overview of main families of grammar-based generative methods. Shape grammar, split grammar, L-systems.

Fri: Due: Final project initial proposal

Week 4 – Applications of Grammars

Mon: Due, Homework #2 on Noise and Terrain Generation

Tues: Level design
Read: Launchpad, Generating Missions and Spaces

Thurs: Generating cities, generating objects
Read: Procedural Modeling of Cities, Capturing a rebel: modeling the Harley-Davidson brand through a motorcycle shape grammar

Further reading: Generative Modeling with Timed L-Systems (McCormack), Procedural City, Part 1 (Introduction) (also, see video)

Week 5 – Genetic Approaches

Mon: Due, Homework #3 on Generation using Grammars

Tues: Overview of genetic algorithms, artificial life
Read: Evolving Virtual Creatures

Thurs: Genetic algorithms for generating game content
Read: Galactic Arms RaceSentient Sketchbook: Computer-Aided Game Level Authoring

Week 6 – Game Generation

Mon: Due, Final Project Design Document

Tues: Board game generation, computational creativity and games
Read: Evolutionary Game Design (Ludi)Formalizing Non-Formalism

Thurs: Generating mechanics-focused computer games
Read: Mechanic MinerTowards generating arcade game rules with VGDL

Week 7 – Dungeon and Level Generation. Answer Set Programming

Tues: Algorithms for roguelike dungeon generation
Read: Rooms and Mazes (see also this generator inspired by the article), TinyKeep Procedural Dungeon Generator (see also original description)

Thurs: Answer Set Programming 
Read: Map Generation Speedrun with Answer Set ProgrammingAnswer Set Programming for Procedural Content Generation

Further information: Generating Procedural Dungeons in Galak Z

Further reading: Constructive Generation Methods for Dungeons and Levels (Chapter 3)
F
urther reading: Procedural generation of dungeons

Fri: Due: Final Project Work-in-Progress video

Week 8 – Mixed Initiative

Tues: Mixed Initiative systems
Read: TanagraSketchaworld- Declarative procedural worlds

Thurs: Level design and constraints
Read: Automated Redesign of Local Playspace PropertiesA Mixed-Initiative Tool for Designing Level Progressions in Games

Fri: Due: Final Project Work-in-Progress video

Week 9 – Creatures, Final Project Presentations

Tues: Spore creatures (inverse kinematics approach) 
Read: Real-Time Motion Retargeting to Highly Varied User Generated Morphologies

Thurs: Final project presentations

Fri: Due: Final project submission, final project video

Week 10 – Muscle Systems, Use of Generative Methods

Tues: Muscle systems
Read: Flexible muscle-based locomotion for bipedal creatures

Thurs: Issues in using Generative Methods for game design
Watch: Panel: Designing a Procedurally Generated Game
R
ead: So you want to build a generator