Articles

Summer is ending

 

…and that’s a good thing, because development will now resume. Not that’s it’s been inactive, but vacations being vacations, it slowed down a tad, obviously. Not to mention I started working on a Pico-8 No Man’s Sky demake, silly me.

And yet, tremendous progress has been made on world building and level design. Konstantinos and I had lengthy discussions about the cultures of the Suùn Archipelago and the Bohr Imperi, the two opposite forces which define the game’s setting and story. As you may know if you’re following the project since a while, Suùnian live in a peaceful, matriarchal society, where equality and harmony are the norm, while the Bohr are highly competitive people, whose hierarchy is literally defined by personal wealth. So both live in very different kind of cities, shaped by their beliefs, their goals and their relation to nature.

In brief, Suùn’s style is organic, with soft and round shapes carefully adapted to the environment, while the Imperi’s architecture is perfectly planned, geometric, and doesn’t care about its surroundings.

 

An early draft of Suùn.

 

Above is one of the first drafts made by Konstantinos for the project. It’s not entirely accurate, because of course a few things have evolved since, and it lacks a few important details. Yet it triggered a bunch of great new ideas, and helped a lot in the process of shaping the archipelago. The basics are here: round buildings, interconnected small islands around a central hub, and that organic feel. This allowed me to visualize and place points of interest I had in mind on the map, to delimit the main regions, and to refine the socio-economic climate of the country.

 

A city concept for Alderhil, the Imperi’s capital.

 

I like this idea a lot: a city organized in hexagonal patterns, following geometric rules, with a strict, insect-like, maybe even robotic urban planning. Dystopian procedural, isn’t that lovely? Thus I found it a bit too modern for Nékromegà, and truth to be said, this would in fact fit better for another project of mine, of the post-cyberpunk genre. More on this later, one day, maybe…

 

Another concept for the same city.

 

We decided to go for this one. This is the perfect oppressive anti-egalitarian design, built for the comfort of the elite and the efficiency of the workers. If you look closely at the legend, you’ll see that workers are compartmentalized with production facilities in the east and west parts of the city. They have no access to the outside except through the two main gates, at the north and south of the central district. In fact, workers and poor people are not only segregated from the wealthy ones, they’re also quite literally jailed inside their own city.

 

An analogue voxel rendering of an eastern district part.

 

Yep, that’s real LEGOs, another fine tool in Konstantinos’ bag. I asked him to tell us a bit about this.

“LEGO and other similar sorts of bricks have a long tradition in both architecture and urban design. Though, admittedly, they are rarely used in city planning, I do believe they are a great (and relatively quick) tool for creating mock-ups of imaginary cities, and invaluable when it comes to showcasing urban volumes. Obviously, LEGO bricks are even better for voxel based cities like Alderhil, and lectronice does seem to like them.”

I sure do. LEGO are probably the reason why I ended up being a game developer. That and my dad’s Amiga 500. But I digress… The interesting thing to see here is how housings and factories are designed: workers are piled up in awful canyon-like buildings while factories use most of the available space.

 

Alderhil’s final map (work in progress).

 

Here comes the real piece of work in all its glory of details, through slow and painful progress, according to its author. And after that, I’ll have to convert all of this to voxels, which I guess will be an equally slow and painful process. But, as you may know, game developers are natural born masochists, so it should still be an enjoyable experience.

 

Say hello to the fine folks of House Cxohà.

 

Cities are more interesting with inhabitants, so let’s finish with a sample of what I’m currently working on: our main character’s relatives. I hope you don’t mind the voxellated toplessness of the lady. She sure doesn’t, since sexism doesn’t exist in Suùn. Yet…

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!

Building round things with square things

 

One of the topics Nékromegà deals with is colonialism. The story takes place in two very different countries, one being a small insular matriarchal society, the other a huge proto-capitalist empire. It’s all about contrast.

Above are some screenshots of the map I’m currently working on, set in the archipelago of Suùn. While I’m rather satisfied with the overall aesthetics, this will probably change a lot, because the place depicted here doesn’t quite look like it should.

Both countries have indeed to show very different architectural styles. However, since I’m building the whole thing with 16x16x16 voxel blocks, this leaves few possibilities for complex shapes. Which is a good thing, because it means I may be able to finish this project in my lifetime.

But my official imaginary city design adviser told me he imagined that matriarchal architecture with round shapes. This would totally makes sense, not only because femininity is generally associated with curves, or because the idea of matriarchy reminds him of neolithic settlements, where round shapes were pretty common, but also because it would help defining a sharp contrast with the empire’s fascist-industrial architectural style.

However, voxels are cubic, and creating round shapes with cubic elements isn’t exactly easy. So if I want round shapes, I guess I’m up for a challenge, eh?

 

Wouldn’t round shapes like this look lovely? (Los Millares)

 

As if it wasn’t challenging enough, RPG In A Box’s latest update adds nifty ambient occlusion shaders. This looks great on my character models, but not so great on my walls and bigger elements. Why? Because the way I’ve set up my map, and especially my walls, is not really the standard way. That would work at a smaller scale, but in my case, it’s kind of complicated, hence odd shadings in some corners, among other similar problems.

So I’ll have to work on two things: enhancing my models in a way that do justice to these ambient occlusion shaders which I definitely want to use, and adding round shapes all over the place. Because occlusion shaders would indeed look very nice on round shapes. The good thing is the shaders settings are on a per-model basis, so this leaves me with a lot of freedom.

The bad thing is my building blocks are starting to become numerous and highly specific, but that’s a necessary evil to satisfy my lego-god ego.

This is a development blog

Here I am, starting a development blog while I already have a Tumblr, and a website, and many other tools supposed to give me an online presence, most of them very rarely updated. So, why the hassle?

Because I need to focus. I’ve been working on this project from time to time for a few years, trying many engines to tell the same story. Nékromegà is meant to be an simple adventure game with a few RPG elements, and a lot of game engines can do that. Pretty easily. But not so many do it in a way that suits my workflow and keeps me motivated. I’ve tried lots of them, and none seemed to be the right tool for this project.

This may sound strange, but I’ve always wanted Nékromegà to have stairs. Not teleporters in stairs disguise that send you automagically to the next floor, but stairs you can actually walk on. I want the game to convey a sense of space and architecture, and to fully embrace the notion of moving vertically. Probably because a long, long time ago, H.R. Giger’s stairs drawings have made a real impression on me. Or, more generally, because there will be ruins, and I can’t really dissociate stairs from ruins.

 

Hans Rudi Giger, Shaft IV (1966-68)

 

History and memories aside, ruins are buildings which are slowly losing their battle against gravity, transitioning from verticality to horizontality, from majesty to nothingness. And I think stairs are an important asset to physically experience this collapsing majesty. I don’t want my ruins to feel two-dimensional or decorative: the player should be able to walk around them, inside them, but also to embrace their height. Stairs should behave no differently than corridors and not be treated like abstract links between floors. Obviously, Nékromegà will have its share of deep underground places and tall broken towers, and I don’t envision them as flat blueprints.

But developing stairs caused me intense frustration. Both Clickteam Fusion and GG Maker betrayed my grand vision of stairs. These are still excellent game engines I’d highly recommend, but simply not stairs-friendly enough for my needs.

My first attempt at turning this project into a game was in Clickteam Fusion, with pre-rendered 3D scenes made with MagicaVoxel. I had a mouse-controlled sprite moving over the background in a 2D space, with invisible colliders everywhere, sloppy pathfinding, and a few depth issues. Overall it was looking nice, but the controls were really bad — especially when walking on stairs. My limited maths skills for trajectory calculations and faking 3D with sprites scaling didn’t help either. Worse, the Fusion workflow was, at best, tedious. I have no idea how people find the patience to use its terribly outdated sprite editor and its dull import system. Hopefully, I had Pyxel Edit to do real pixel art work ahead.

 

My inital design for a test level, made and rendered with MagicaVoxel.

 

I ended up with a somewhat working prototype, but not with a satisfying prototype. I got bored and put the project on hold. Months later, I discovered GG Maker, which has a really neat visual scripting system, and simple yet efficient 3D capabilities. I managed to export my models from MagicaVoxel and set up a real 3D scene quite easily, if we except the horrible pipeline involving the even more horrible use of Blender to convert my voxel models to stuff GG Maker can use with proper textures and orientation. Overall though, it worked, even if I had issues with displaying my sprite properly, as you can see below:

 

A clunky and incomplete 3D scene, something I was proud of nonetheless.

 

But the stairs were still a mess. I managed to build maps with real vertical depth and frightening height, but the collisions were half-broken. My character was sometimes getting stuck for no reason I could understand. So I gave up again, with a clearer idea of what I could do, but not how I could do it. Messing with 3D had brought more questions than answers: isometric? 3rd person? 1st person? All of them?

 

An early isometric rendering of my first test level.

 

So Nékromegà, ironically, became an undead project. Months passed again. Then, a few weeks ago, while looking for new development tools on itch.io, I stumbled upon RPG In A Box, decided to give it a try, and found it perfect for my needs. Why? Well, that’s for another post, but to put it simply: it’s voxel-based, and its workflow is easier, faster, and way more enjoyable than anything I’ve tried before. And stairs are dead simple to set up.

 

Stairs are important, but so are beams, I guess.

 

The screenshot above shows a very rough WIP map edited in RPG In A Box. It lacks various textures, objects, characters, and at least one floor, not to mention dialogues and choices. And cool stairs. It’s not a terrifying necropolis, just a big house. Yet it should give you an idea of what I’m trying to create. I still have a lot of work to do, not only on this map, but also, and mainly, on game design. While the story is almost done, the game structure and systems need a lot more details.

Good news: that’s the point of this development blog.