Featured Blog

Many faces of Procedural Generation: Determinism (classification system, part 3)

In this post we’ll talk about a classification system on the possible deterministic aspects of Procedural Generation.

Originally posted at

Welcome to the third part of this Procedural Generation (aka ProcGen) classification series called “Many faces of Procedural Generation”. To see the previous part click here.

In this post we’ll talk about a classification system on the possible deterministic aspects of ProcGen, which makes sense especially for run-time generation (load and real-time). Procedural does not mean random. Even if you use some kind of (pseudo) random function, if you use the same input seed, you’ll get the same results. Here is how you can classify it:

  • Deterministic generation: When, given the same inputs, you can get the same output. If you are dealing with a large amount of generations, you may need to do some testing to ensure that you do not get any unexpected results or get an outcome that doesn't interfere with the game's objectives.  A good example of deterministic generation is the Universe of the much expected No Man’s Sky, where it’s always the same Universe being generated for everyone (with 18,446,744,073,709,551,616 (18 quintillion) planets, that’s a lot of testing). Another is the 96kb 3D game .kkrieger in the generation of all its content.

  • Deterministic at load-time generation: When you get a deterministic generation only after you’ve loaded the game level. Basically, once you get the initial random inputs the generation becomes deterministic. A few examples of this are the worlds in Minecraft and the level layouts for Rogue-like games such as The Binding of Isaac.

  • Non-Deterministic generation: When you cannot determine the outcome of the generation. Even if you can vaguely predict the outcome generation (because of probability functions), with Non-deterministics you never know for sure. Stateless. An example of this are the obstacles of infinite-runners such as Temple Run.

Hope you guys enjoyed this part of the classification system and check out the previous parts if interested. Let me know if you have any comments or other considerations that I missed :)

ANNOUNCEMENT: The project Sceelix - 3D ProcGen Engine - that I’ve been working on with some friends for the last year has finally come out! Yay! Check it out at Trial version now available :)



Subscribe to this blog here:

Join and Invite others to the slack on ProcGen! sign up:

Join and invite others to the facebook group on ProcGen!

My twitter account:

Latest Jobs

Xbox Game Studios

Redmond, Washington
Technical Lighting Artist


Hamburg, Germany
Game Designer - Elvenar

Six Foot

Houston, TX
Six Foot Director, Player Relations

Hometopia Inc.

Lead Engineer
More Jobs   


Explore the
Subscribe to
Follow us

Game Developer Job Board

Game Developer Newsletter


Explore the

Game Developer Job Board

Browse open positions across the game industry or recruit new talent for your studio

Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Follow us


Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more