Procedural Generation Ruleset

NEW! Try it in the browser!

The goal of PGR is to make an easy to write format for multi-pass-ish procedural terrain generation. The format is flexible enough that it could be used for other generation as well. The background image was generated with the following config:

steps:
- height*moisture:
  # Base terrain
  - "1@2:rock,1:snow"
  - "1@2:grass,3:plants"
  - "2@1:sand,2:dirt,2:grass,3:plants"
  - "1@2:sand,1:dirt,1:grass,1:plants,2:=water"
  - "3@1:=water"
  - tile*population:
    # Adding cities
    - "sand@9:-,1:buildings"
    - "grass@2:-,1:buildings"
    - "dirt,plants@3:-,1:buildings"

A full writeup on the format can be found on my personal blog or Medium, the source code is available on GitHub, and you can download a playable demo for Windows, Linux, or macOS here.