Game Development

Blog 844: Meandering

I’ve probably repeated many times how difficult game development is… or rather, how difficult it is to make the sort of game I’ve set my heart on (alone). I’ve been developing Exon‘s first big mission, a multi-part dungeon which has required all-new artwork: rocks, industrial equipment, even animals. I spent a long time working on the opening Academy level, so the environment — and the requisite decoration art — came together at a leisurely and natural pace. Meanwhile, trying to forcibly flesh out a whole brand new biome has been somewhat painful.

So I’m procrastinating. I’m faffing. I’ve been working on random bits and pieces that do not serve the short-term goal of “finishing the rest of the prologue”, because random bits and pieces is still better progress than just staring at the walls.

Meandering

Over the months since the last demo release, I have been working a lot on my textures, of all things. Ever since I started making sci-fi models for Warcraft III, I’ve been using atlas textures — sheets of generically reusable panels and details that can be applied across many different models. I’m not changing my approach, but I have reached a point where I want to add more little details. Quite a while ago, for example, I quadrupled the size of my “RDZMech” atlas from 256×256 to 512×512 to make space for some wheel elements to make the Loader Dozer (and to pave the way for other wheeled units).

One of the other things I wanted to do with this space was add a dedicated area for melee weapon blades. Ever since Project Y4 I’d been using a mix of basic metal panels and the danger-zone surround from the windscreen part, but this meant they didn’t look very… well, like blades. I’m not sure if I’ve actually succeeded, but as with everything in Exon, the new look is final until I decide to refine it further.

I’ve also been branching out and adding more atlas textures in general, like the brand new one that makes my pipework stand out a little more with some rusty yellow paintwork and a few extra junction pieces.

I’ve also dirtied-up my concrete and metal textures.

Then I moved on to refining the temperature mechanics. You may have seen these in a tiny corner of the Arena — two geothermal power units spew flame jets that deal damage and make your mech glow a healthy yellow colour, which gently fades after you’ve left the hot zone. (There is also an opposite cool blue colour, but without a single accessible chilling mechanism, you’ve definitely not seen it.)

Temperature is not something you’re going to have to worry about too often, but it will crop up if you have to wade through lava or spend time in a desert. Dangerously hot units now take 2x damage from attacks, so it’s potentially worth luring an opponent into a hot zone before trying to hit them — and organic enemies will even spontaneously catch fire (making the up-coming flamethrower more particularly useful against animals, without being totally useless against vehicles). Similarly, getting too cold will increase damage taken as well as reducing movement speed and stamina regeneration.

Why did I pick now to do temperature stuff? Well, as part of the underground mine area, I’ve made a new type of creature… But more on that later.

It’s getting hot in here (so hot!), so take off all your clothes.

Then I added weather, because I like getting caught in the rain (and in the game).

Conceptually, rain is just an artistic effect with no mechanical impact, so I figured it would be relatively straightforward to implement. The sunlight needs to fade down to represent cloudiness and a particle emitter needs to start producing those raindrops alongside a gentle audio loop. Every so often, a flash should represent some lightning.

Alas, this required me to rework most of my existing day/night cycle systems, in order to fit in those temporary lighting overrides. Environmental conditions are now static blobs of settings (from sunlight colour to ambient sound effects) which are applied on entry to an Area. I think this is actually a really big improvement — the new structure means that different Areas within a single map can have different lighting and weather rules, which might not seem like much now, but may well kick in harder when I start adding foggy swamps and whatnot. (You’ve played This Wreckage haven’t you? Yes, there WILL be a swamp in Exon. Somewhere.)

The raindrop particle emitter at least was straightforward; I just attach it to the camera target point and let it flow. Since it extends beyond the camera fustrum and the droplets spawn very quickly, there’s little risk you’ll ever move fast enough to outpace the effect (well, unless you’ve got an ultrawide monitor I guess, but by then the corner-anchored UI has become hilarious so you’re on your own).

I’ve also reworked me audio emitter system quite a bit, so audio sources are pooled rather than attached to things and continually reused (which should stop the pitch-shifting variation for things like footsteps from bleeding into other sounds that shouldn’t shift). I’ve patched up the random enemy system so you can find cash or junk on the bodies of the slain as well as the equipment they were carrying (only on randoms mind you, specifically pre-placed enemies still have only the exact items I gave them). So many little things!

… But I guess I should get back to that big prologue mission now. No rest for the wicked, eh?

And you tell me...

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.