NEP Dev Update #9: A programmer trying to art

by Cuchaz

The game engine is coming along pretty well. At least well enough that I can actually focus on adding content to the game now.

So I'm making content now. Or trying, at least. Art is hard too. =P

Adventures in actual game content: The RIG

An indispensible piece of equipment for your adventures in space mining is your lifeline from Earth to the barren mineral-rich lifeless hunk of rock out of which you've been assigned to squeeze as many resources as possible. In the future, we have lots of fun new technologies to make life as a space miner easy. Like wormholes.

So, for my first art, we have the Remote Interstellar Gateway, lovingly referred to as a RIG.

A sketch of a portal-looking thing Look! I can almost draw things that look square!

For all intents and purposes, this is basically a stargate. Not one of those gimicky hollywood portals, but more like a hole in space itself. Think more black hole and less kiddie pool propped up on its side. Later on, there will be fancy rendering effects to draw the event horizon of the wormhole itself, but for now, just use your imagination.

The idea behind the RIG is that tearing a hole in space and time generally requires a huge amount of energy. At least for the side tearing the hole. We'll let the vast resources of Earth solve that problem with what are likely to be huge building-sized machines. For the side of space and time where the hole shows up one day, aka a barren lifeless rock severely lacking in any kind of civilization, you don't have to try nearly as hard to keep the wormhole stable. We can get by with relatively compact equipment and much smaller energy requirements. That cable you see in the bottom right of the sketch connects to a control panel/console/thing that, among other things, is the power source for the RIG.

A sketch of a solar-powered server rack-looking thing The RIG console.

With sketches in hand, I went off to use my tools to build assets for the game. Making the color texture wasn't too hard. The game engine handles all of the lighting, so the color texture is just a few flat colors in the right shape. No big deal.

Color texture for the gateway The boringest most flattest sprite ever.

The next step is to create the bump map, so the Horde engine can shade the sprite and make it look magically cool. It was stupidly tricky to paint a realistic bump map for curved things at a perspective, but I got the job done.

There are a few artifacts in the bump map that need fixing, but I need to test how this will look in the game before I do too much refinement.

The answer is this:

A render of the gateway, looking pretty flat Disappointing.

I mean, it kind of looks shaded, but it's still really flat.

At this point, I realized that bump maps weren't going to work for large complicated sprites. It was time to move to normal maps.

But I can't paint normal maps in a 2d tool, I'd have to *gasp* learn a 3d tool!

Blender splash screen Time to bite the bullet, so to speak.

I've been trying to stay in a purely 2d workflow for the game, so asset creation stays simple. Want a new asset? Fire up gimp/inkscape, paint a few textures, that's it. 3d tools are complicated beasts with high learning curves, and I didn't want to have to invest the time in that unless I absolutely had to.

The same flat-looking gateway render I absolutely had to.

Adventures in the third dimension

So several hours and tutorials later, I managed to make a low-poly version of the RIG in 3d.

A screenshot of Blender showing a 3D model of the gateway I'll make a high-poly version later to get rid of those visible faces.

It even looks better than my 2d version, so at least that's an improvement. The next goal was to get blender to render a normal map from the model. That's about the time I wasted several hours trying to figure out why the hell Blender was doing color management on normal maps and how to make it stop. The answer was apparently older versions of Blender are bad (Ubuntu repos can get really out of date... sigh) and you can't turn it off. Luckily there was a newer version in a PPA, and after I installed that, everything got magically better.

A normal map for the gateway rendered from Blender Finally! A normal map where the vectors are pointing in the right direction.

Incidentally, getting Blender to render normals like this requires fiddling with it's render compositing settings, which they call nodes. Once you get used to it, it's pretty cool, but hello learning curve!

A rendering pipline in Blender that renders the normal map Settings for Blender's configurable rendering pipeline. Tools that let me do arbitrary math on pixels make me =).

The exciting conclusion!

This is the part where I reveal the final part of our story, and show the finished asset in-game with all of it's pseudo-3d normal-mapped goodness.

Except the Horde engine doesn't actually support normal maps yet.

Haha, I'll have to work on that part next. Should be easy, right?

Stay tuned.