bloed

I like blocky graphics. Pixels, voxels, square tiles, grid-based walls - keep them coming! I guess this originates from my Lego-heavy childhood, and also from old computer games, where you could clearly see the tiles the game’s world was made of. And while I never was into Wolfenstein3D, I recently created my own grid-based ray-caster just because I do adore the aesthetics.

rc-test, a ray-casting engine

The same with Minecraft - it’s a game that is an inspiration even though I didn’t play it much. The blockiness makes the virtual world instantly more organized; it’s like you can play around with its pure atoms. Blockiness empowers - not only is it fun to be creative there (because the interactivity is rewarded with reactions from the game’s systems) but as a game creator myself I instantly “get it” and - leaving out the grindy details - want to try my own variation of the structure functionality.

Wunderworld, a game/editor I made for Ludum Dare some years ago

This is why I wanted to go with block-based levels for Behind Stars And Under Hills. For me it also fit with the premise of the game - an Ultima-Underworld-inspired dungeon crawler should have visible floor and wall segments, and pixels too. So I created my own in-game level editor for Behind Stars - because, maybe, other people want to make worlds with this too...

An early version of Behind Stars, made with bloxels

Of course trapping a level editor inside a game that is never released makes the endeavour less than pointless. So last year I went and put some time into changing the code to work inside Unity itself, as a plugin, which was for some parts easy thanks to the extensibility of Unity’s editor, and for other parts hard because of nasty serialization issues. Nonetheless, bloed - short for “bloxel-based level editor” or simply “block-based editor” as “bloxel” probably won’t catch on - slowly came to be and is now available on itch.io. I wanted to use it for a Thief-like game, working title “Demon Thief”, and for that it worked quite well. (Though I scrapped Demon Thief in favour of our next game project.)

A level from Demon Thief

I nicknamed the blocks in the editor bloxels because originally, in Behind Stars, I called them voxels and that didn’t quite fit. I use complete meshes for the blocks (made with Blender), and they can have any shape actually, as long as it fits inside 1x1x1 units. It’s also possible to do some more creative texturing by having UVs smaller than 1.0, which means they can span over several bloxels, to break up noticeable tiling and add more variation. It’s also possible to assign each side of a bloxel another texture (inspired by David Pittman’s NEON STRUCT dev blog). Naturally you still can manipulate the bloxels during runtime, so it’s possible to have something like destructible environment.

All my “additions” to the voxel formula makes the bloxels rather unfit to optimize though. Of course I segment the created geometry into chunks, and the textures are merged into texture atlasses. Still, draw calls are high and need to be reduced with optimizations like static and dynamic batching, occlusion culling, baked light maps and so on. Downsides aside, I am proud bloed supports arbitrary transforms and prefabs, and the optional noise factor can look nice too. These are things the ingame-only Behind Stars bloxels didn’t have.

Will the development continue? I hope so - especially if a few more people are interested in it (i.e. buy it) and post their creations made with bloed. Right now I don’t use bloed for a personal project, although I have some ideas and plans for that. So its future might be a bit hazy, but in general bloed is usable already, and I certainly will react to any bug reports. If you want to talk about bloed, you can also do it in our Discord!