Game AI, Summer 2013:
Project 3. mario PCG

Due: 6/26/13 at 11:55pm

Procedural Content Generation is the use of algorithm (procedures) to create novel, and sometimes customized, game content from scratch. Examples of PCG include generation of levels, maps, tree, cityscapes, weapons, monsters, and quests. PCG is often used as a design-time tool to roughly sketch out level content to be refined by human designers. PCG can also be done at run-time to incorporate individual player differences such as skills or preferences. In this project, we look at run-time PCG to create Mario Bros. game levels customized to individual players’ play styles. This includes (a) learning a model of the player’s play style, and (b) using the model to create a custom level. Fortunately, the first part is already done for you. You must focus on designing and implementing algorithms that use the player information to create something that will evaluate well.

This project will be using the IEEE Super Mario Bros. competition infrastructure for the Level Generation Track. The description and distribution of the software can be found here:

The rules for level-creating algorithms will follow the rules of the competition.

This is a (2 person) team project. You are responsible for obtaining the code and using the resources provided with the competition. Please use Piazza for all online conversations and questions for the class community. Note that there is an active development community here that is a valuable resource:

You will be given 2 weeks for this assignment with weekly-suggested milestones:

Getting up and running

  1. Acquire and install apache ant (
  2. Unzip (this one provided is already built, has an ant build file, and several sample level generators.)
  3. Modify the following files: MarioLevelComp2011_cs4731/src/dk/itu/mario/level/ and MarioLevelComp2011_cs4731/src/dk/itu/mario/level/generator/ (if necessary)
  4. Build the project: in the MarioLevelComp2011_cs4731 directory, type ant
  5. Run your level generator from the MarioLevelComp2011_cs4731 directory: java -cp bin dk.itu.mario.engine.PlayCustomized


Level generation is highly subjective. To control for subjectivity, we will create several distinct test player profiles with the expectation that, by running the code several times with each profile, we will be able to see discernable consistency among runs with the same profile and discernable differences among runs with different profiles. While your solution will likely be have stochastic elements, the solutions should not appear totally random. Your writeup will be key in understanding how to interpret your design.


On code...

Some papers to read on pcg:


Include a .doc or .txt file that describes the following:


Submit via T-Square everything needed to run your agent, including the native SMB code, and your writeup.


This project is worth 20% of your final grade.


To be determined.