Create infinite procedural worlds from voxel art
Click here to download the tile set as a zip file. Make sure you unzip it once you download it!
You will be greeted by the main menu and a simple lattice world.
The window that opens will let you navigate to a folder containing a tile set. Select the dungeon folder you downloaded. It won’t accept a .zip file.
This will tell generate worlds to create a world that extends in all directions, creating a multi level dungeon rather than a flat one. You will see a message in the upper left telling you that the new tile set is loading. Once it loads, tiles will start to appear around you.
Hit esc to leave the main menu. Left shift and Q will let you fly up and down.
A tile being edited in MagicaVoxel before being imported into GenerateWorlds
A tile is simply a voxel model with sides of equal length. The tile above contains the corner of a wall. It is 11x11x11. In the current version of the software, tile sizes must be odd numbers. I made this tile using MagicaVoxel, as shown above, then saved it as a .vox file to load into Generate Worlds along with other tiles.
Generate Worlds fits two tiles together when the voxels along the face where the tiles meet all match up in color, as illustrated above. This one simple rule is all it takes to derive the rich environments Generate Worlds is capable of creating.
Generate Worlds supports two kinds of worlds: one tile high worlds like this grassy world
And infinite in all directions worlds, like this dungeon:
One tile high worlds contain a single flat layer of tiles. One tile high worlds are perfect for making things like landscapes, where you don’t care about layers stacked on top of each other. Infinite in all directions worlds have tiles stacked in top of each other, as well as next to each other. Infinite in all directions worlds can be things like dungeons with various levels.
A tile set is a collection of .vox files in a folder. Generate Worlds loads these tiles and fits them together to create a world. Building a tile set can be challenging, because you must make sure that it is actually possible to create an infinite world with just these tiles.
Note that all tiles are automatically rotated and their rotations are added to the tile set, as below.
I recommend starting by experimenting with a one tile high world. Since you don’t have to ensure that tiles match vertically, these worlds are much easier to reason about.
Every .vox file in this folder will be a tile in your tile set.
MagicaVoxel is available at https://ephtracy.github.io/
In MagicaVoxel, set the size of the tile to be an odd-numbered size equal in all dimensions, as above.
Create a tile like the one above where all the voxel are the same color forming one layer on the bottom. This can be a simple “ground” tile in your tile set. Save this as a .vox file in your tile set folder.
In the main menu (esc opens the main menu), select “load tile set” and navigate to the folder you created.
Try creating another tile for your tile set. The tile above will cause small squares to appear all over the ground of your world. You can think of these as little loop roads.
You could create a straight road piece, or an intersection of roads. Now you will have a road network over the ground. You could create a tile like the one below, which is meant to be the corner of a simple building.
Add more tiles to your tile set. I recomend trying to load the tile set after you make each new tile, since it’s easy to make a mistake that creates a tile set that can’t actually be fit together to form a world.