Trashing and rebuilding


In the previous post, I wrote about how adding round shapes in a voxel map sounded like a great idea. Well, it was. But as expected, it wasn’t easy… And it raised a lot of questions.

I tossed my first, cubic-looking map and restarted from scratch. Not only because it was necessary to add round corners, which required too many changes in order to keep the whole think navigable for the player, but also because the map itself was slightly too small. Most rooms felt like prison cells, and that wasn’t the intent. At least, not for this map, which is supposed to be the big clan house where our main character spends most of his childhood.


Voxels indeed mean square shapes, and the curves you see here were just not fitting.


I wanted to plan things a bit ahead, because building rooms with curved walls is indeed a rather complicated task. I made some quick, low-resolution 3D drafts in order to know where I was going. Pixelated round shapes look rather simple at this scale. But in my case, I needed to add many more details that could barely be imagined by looking at these mockups.


A mockup of the new map, made with MagicaVoxel.


There’s a good reason most real buildings have rectangular rooms. It’s a freaking nightmare to design practical circular rooms in a whole structure. You have to deal with the many nice-looking but cumbersome shapes such a layout creates, and to avoid wasting too much space. And of course, with a video game engine, you also have to make all of this fit with the system you’ve chosen. In our case, a standard square tiles system.

I started by designing a rather big 32×32 curved wall model, actually made of four smaller blocks. Which also implied, for technical reasons due to the way RPG In A Box works, many, many slightly different models for specific uses: door sides, ceilings, walls junctions… Quite a headache, in fact. But with a much more interesting result than that plain old Minecraft cubic style, and, if done properly, a modular, highly reusable set of blocks.


And early version of the resulting map in the RPG In A Box map editor.


In short, I had to design my own Lego set. And it’s far from being finished.

This equally exciting and arduous path led to the tremendous pain of designing curved roofs, which took me days, if not weeks, to figure out. Oh sure, just make some basic stair-shaped stuff and everything will be fine. Except if you have curved walls, you also need roofs that follow their curves, hence the geometrical witchcraft required to make everything fit together, not to mention the need to divide this mess in equal 16x16x8 cubic models.

Yes, not 16x16x16 models, because regular 45° slopes looked quite ugly, so I had to smooth things a bit, for an even more increased complexity.

Hopefully, RPG In A Box allows to stack models freely upon each other, without snapping them on a vertical grid, so you’re less limited than when placing models horizontally. Which means it’s possible to build great stuff, though I wouldn’t say it’s easy. But hey, I am the masochist using a pseudo-realistic scale in an engine designed for cute low-res voxel art, so who am I to complain? And the developer is a really nice and helpful guy. So far it’s been a joy to see both his engine and my project evolve simultaneously, feeding on each other’s features and needs.


The highlighted part is a 16x16x8 part of a much greater ensemble.


That’s only the tip of the iceberg. My current map still lacks a second floor, many architectural details, and, well, a decent set of stairs. A lot of writing, world building and city design work has been done in parallel, with the help of Konstantinos, who is indeed pretty good at city design, since he happens to be a urban geographer and engineer.

Speaking of icebergs, this is what I’m talking about. I’ve even set up a private Flarum instance to share our thoughts and organize our notes, which works perfectly fine for a beta. And we’re currently filling the blank cells of a huge spreadsheet to define the cultural and architectural traits of the three major Nékromegà cities. Since RPG In A Box is still in alpha, there also have been various bug reports, feature requests and discussions with Justin, its developer. And I still have lots of stuff to figure out about the plot, the characters, economy and politics…

You get it, we’ve been busy.

I’ve also started composing the soundtrack, blending dark ambient and doom metal with a few generative techniques and tools… And it’s quite exciting, but I’ll keep that for the next time. In fact, it’s very, very exciting, because I’m discovering this whole new world of live coding and… Shhh!