EaS |
Developer: | Rune Skovbo Johansen |
Designer: | Rune Skovbo Johansen |
Engine: | Unity |
Genre: | Platform |
Modes: | Single player |
Perspective: | 2.5d, side scrolling |
Platforms: | Windows Mac OS/X |
Website: | Rune's website |
PCG Types: | runtime-random-level-generation |
Description
EaS is a 2.5D platform game under development with focus on non-linear exploration, set in a big, continuous world. The entire world is procedurally generated at runtime, though it is consistent, meaning that the world will be the same on every play, save maybe for some special areas.
Use of Procedural Content Generation Methods
The single continuous world in EaS consists of sections or areas which are each generated at runtime as the player approaches. Up to nine areas can be active at the same time.
The generation of an area is performed in multiple steps at different levels of abstraction.
From rune|vision - Cavex - Game in Progress, a web-page by the author:
The entire level is based on a simple maze representation in a two-dimensional array. Based on the maze, a binary tree data structure is created where internal nodes represent T-junctions and leaf nodes represent dead ends (as well as the goal). In this data structure the arrangement of locked doors and keys is computed, and then planted in the corresponding places in the array. After that the array maze is modified in several steps, cutting down certain wall sections to create shortcuts (which then form loops) - making sure that it doesn't connect sections separated by a door. After this, "air space" is calculated to form wide open spaces and prevent the level consisting of narrow tunnels only. This makes it look less like a maze.
The actual area is then calculated based on this maze representation.
The placement of locked doors and keys is based on an algorithm similar to the "Environment Tree" described at Squidi.net.
External Links
rune|vision blog - Blog posts about EaS by the author.
rune|vision - Cavex - Game in Progress - Page about a previous iteration of the game, explaining some of the procedural generation methods.