Blog 727: It’s a Trap!

Oh, it’s been a while, hasn’t it? I set myself 36 features to build in 3 weeks at the end of last year/start of this one and I have completely failed. Ah well, no plan of battle survives contact with the enemy after all. What’s important is that there has been progress at all… right?

Recently, I’ve been focusing on non-unit level hazards: laser tripwires, spike pits…

Progress Report

A. Level Generation: 8/8

B. Level Navigation: 2/2 + 1

One little tweak here — I’ve increased the resolution of the minimap and fog o’ war images, so the output is a little bit more crisp now (it’s at the full resolution of the pathing map rather than the half-size quad grid used for tiling). Might even be able to highlight enemies on the minimap at this level!

(To be fair, I still need enemies (objects in general?) to know about their position relative to the fog o’ war so that selection highlights don’t show up from under the fog and reveal their positions ahead of time. It’s not a high risk, but some power-gamer is going to exploit it sooner or later!)

C. Item Systems: 4/4

D. Ability Systems: 2/2

E. Power-Ups: 3/3

F. Neutral Passive: 0/3

In a few evenings here and there, I’ve been quietly working on the latest iteration of my stubby little mining mech. Nothing special, you migh think, but its chassis will form the basis of my first neutral/civilian mech — the repair bots that will be able to sell you repairs in exchange for sweet wonga.

Interactions with the repair bot will likely form the basis of more complex interactions like conversations and computer screens, so this is quite an exciting area that should open up a lot of opportunities to finally add some flair to the world. I’ve not started wiring anything up yet though, so enjoy this janky GIF that I had to build manually because Windows 8 refused to record an AVI from Milkshape.

G. Enemies: 5/5 + 1

H. Traps: 2/4

Feature H1 is something I actually warmed up long before this increasingly misnamed 3-week-plan: laser tripwires. The code needed to be heavily reworked for efficiency and interest, though, so while things were crashing all over the place I took some time to fiddle with the level generator systems (again) to allow the placement of such hazards.

Laser beams are currently placed outside the level entry and exit chambers, depending on how the random numbers are feeling. The beams move up and down so you can either run under them or jump over them to avoid their cutting power. Being sliced by a beam is not necessarily fatal, though; it burns away at your health over time so a snappy player can escape the worst of its wrath. I am, however, intending to adjust how quickly the beams move around and how much damage they do per second depending on what level you’re on.

The power of a laser will be denoted by its colour, so following the LBA2 scheme it will go yellow -> green -> red -> … LBA2 has “fire” as the final level, which I will switch for… blue and then purple (purple being the Wand of Death from Nox and the ASMD Shock Rifle of UT; it’s a rich tapestry of references). Yes, you’re absolutely right, the hero’s starting lasers right now are purple and will need to be… rebalanced.

Next up was spike pits, which actually worked out pretty easily. Feature H2 is simply an open floor tile, sunken with animated spikes pumping up and down, and a death zone that obliterates any Damageable object that enters it. For spike trap rooms, the spike tile variation is applied to the whole floor and then “bridges” of safe flooring are drawn through it.

The next step would be to add genuine jumping puzzles, but I’m not confident enough in my shape drawing — or my bot navigation systems — to give that a whirl just yet.

As an aside, I have added in the “bologun”, a weapon whose projectiles do very little damage but smack you around something awful, and bounce off walls a bit (bouncing projectiles was a right laugh, and they can unfortunately still ricochet into the sky if they hit a bevelled edge). Be careful if you come up on an enemy with a bologun in one of those spike pit rooms…

Careful now.

The big kahuna, though, is feature H3: breakable walls.

Secret breakable walls are an absolute spanner in the works of my level building system, because they need to be open tiles but pretend to be wall tiles. They need to be walls to the fog o’ war and pathing systems to start with, then flip to being open when the wall is destroyed. Needless to say, my systems as they stand hate this.

In the spirit of being a terrible terrible person, I have introduced the concept of a “hard floor” tile. When printing a tile adjacent to a hard floor tile, the hard floor is considered as a wall — so rather than printing a corner, it’ll print a continuous wall segment. This is not confusing at all and is definitely not going to bite me in the arse in future.

The extra state and some other clashes are still messing up a lot of surrounding systems, so I can’t call this one complete yet. I’d like to say it’s almost there… but you know what I’m like.

I have not yet finished the system to the point where things can go INSIDE the secret closets.

You’d never even know it was there.

You would not believe how long it has taken to get to this stage.

I. User Interface: 3/3 + 2


It’s slow going, I can’t lie. I’ve been churning my way through a succession of Command & Conquers and still have more to sample (plus I finally got the expansion pack for Drakensang: The River of Time, Philleasson’s Secret, so that’s another thing on the backlog), so my attention to game development has been somewhat reduced.

Let’s face it, game development is hard and sometimes you just want to blow things up instead.


And you tell me...

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

You are commenting using your 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 )

Google+ photo

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

Connecting to %s