hey all,
I'd like to introduce a new project I've been working on that I aim to release soon on the asset store, it's called Strata. Any feedback would be much appreciated!
https://mattmirrorfish.itch.io/strata-easy-2d-level-generator-for-unity
Strata Overview
Strata is an easy to use procedural toolkit for generating 2D levels which use a combination of hand-authored and procedurally generated content. It works in the Unity editor or at runtime without additional programming. Strata works with Unity’s native 2D Tilemap tools allowing you to hand-author pieces of levels and arrange and combine those pieces in interesting ways.
The design philosophy of Strata is strongly inspired by both classic roguelike dungeon crawler design approaches along with the newer school of action roguelike / roguelite games. To this end the project contains demos both for a classic top-down roguelike dungeon generator, and a 2D platformer built from a connected chain of handmade rooms. Both serve as good starting points for your own creations.
Programming procedural level generation tools can be complex and difficult, and with Strata I hope to open the creation of procedural content to artists, level and game designers and other non-programmer creators.
Here are two videos, one is a short overview, the second is a ~30 minute walk through getting started with Strata.
Setup Guide for Strata Easy 2D Level Generator For Unity
Overview of Strata Easy 2D Level Generator For Unity
How It Works
Strata works by generating level data into a grid of ASCII characters in multiple passes using what we call Generators. Each Generator contains a procedural content generation algorithm ranging from the simple, like randomly scattering 100 instances of an object, to the complex, like generating a linked series of dungeon rooms. The Generators run sequentially. This means that each new Generator’s output is applied to the previous Generator's output. This means, for example, that we can choose to generate some organic cave shapes, carve out a series of rectilinear rooms from them and then scatter objects within the empty spaces of the result. The choice of Generators and the order that the Generators are sequenced in via the Unity Inspector interface can result in significantly different generated levels.
One of the common problems in procedural generation is that you can end up with results which while technically unique, all feel the same to the player. This is sometimes referred to as the 'Thousand Bowls of Oatmeal' problem. Yes, they're all different, but who cares? To combat this, Strata supports the inclusion of hand-authored elements within the generation process so that you as the designer can choose to have as much or as little randomness as you prefer, and insert hand-authored set pieces and features for your players to discover.
Features:
- Generate complex, varied procedural levels without writing any code
- Hand author content to integrate into your procedural levels using Unity's Tilemap tools
- Multiple levels of random chance in generation: hand place items with a chance to spawn between multiple choices in authored rooms
- Generate levels at runtime for new levels on each playthrough, or generate at edit time in the editor, polish the output by hand and save.
- Supports deterministic seeded randomness and daily challenge style play
- Generators Included:
- Linked top to bottom room series for platformers
- Middle-out room series for top-down dungeon crawlers
- Cellular automata for organic cave shapes
- Randomly placed rooms connected by tunnels (traditional ASCII roguelike style)
- Random scatter X objects
- Tunneler to connect multiple previous Generators
- Save full tilemaps and feed them back into the Generation process (randomize existing levels)
- Place objects within connected space (place player start and level exit)
- Random scatter hand-authored chunks
- Mirror / Symmetry generators for making ‘man-made’ feeling spaces.
- Flood fill
- And more coming soon!
- Linked top to bottom room series for platformers
- Professional video tutorials, text documentation, and well commented C# source code.
- Easy to extend for programmers with a modular framework based on Delegation pattern and ScriptableObjects
- Rogue-lite platformer example scene
- Top-down dungeon example scene
- Just does one thing, generates map data that you can use in lots of ways, not a full game project. Doesn’t include a bunch of junk you don’t need!
What Strata Is Not
Strata is not a game-kit, engine or complete game project. It's designed to support multiple types of games which use 2D tile-based levels and procedural generation. The idea here is that you can start with strata as a procedural generation toolkit and build your game alongside it, whatever type of game it is.
It’s also not a cookie cutter, samey, single approach, single algorithm dungeon generator. You can think of Strata as a set of creative tools, not a replacement for your creativity in designing procedural levels and gameplay.
Pricing
I have decided to price Strata affordably initially since it's new and I want to get people to try it out, so the target price will be 8$ USD. Due to the modular structure of the project, I intend to introduce new generation algorithms and examples and as I do, I will raise the price.
Full disclosure: I've made a new account for this project to differentiate from my 'official work' for Unity as an Online Evangelist. This is a purely personal project for my independent company Mirrorfish Media Inc which is in no way affiliated with Unity Technologies.