Game Design, Programming and running a one-man games business…

Radiation leak on deck twelve… bah…

I’ve been working yesterday and today on a new weapon, which is a threefold thing, because you have the simulation, the visual effect, and the balancing. The sim is moderately easy, the visual effect was a nightmare. I tried lots of things but ended up with a sort of greenish slimey effect that appears in blotches on the ships, which took a lot of code re-jigging, but looks good. I now have a more generic system for splatting one texture onto the surface of a ship, blending the source and destination alpha together so I can effectively splat a decal onto a ship. I was already hacking this in for the armor glows, now it’s more general. In theory, I could have done the damage textures that way… It’s all done without shaders, so even really old PC’s will still see that effect.

Anyway, the new weapon (likely for a new expansion one day) is a radiation gun. In game terms, this is a weapon that is rubbish at shield penetration, does little impact damage and has really slow rate of fire… So why bother?
Because if it makes it through to the ships internals, it delivers a radioactive payload which keeps ticking. Over a period of time, the payload causes repeated damage internally to different modules. This continues even if the original firing ship is no more, or the shields go back up.
Effectively its like gambling and throwing all your shots into one payload. If it hits, they all hit. and their damage is distributed across the whole target. You can damage every module on a ship with one hit. Yay!

I think this is interesting tactically for several reasons:
1) ‘sacrificial’ ships with tons of weapons but sod-all defences are now viable, because they only need to get a few shots in at the right time. They can then go bang! their work is done…
2) shield disruptor bombs are now more useful, because coupled with radiation payloads, they can deliver a one-two punch.
3) it’s a slight counter to the tribe, who trade armor and shields for more internal hit-points. Radiation could be their undoing, and negates their ‘big tank’ strategy.
4) It adds the first gradual weapon, meaning that if you can deliver this initial attack, just staying alive and waiting actually can be a winning strategy.
5) it adds a reason to have minimal shielding. People ignore the really cheap shield modules, but now that will leave them open to radioactive weaponry.

Of course it’s all in the final balancing. thoughts?

Asteroids for now… moving onwards

I’m already on other stuff now, but with a bit of shader depth of field (subtle, but worth it) and the rare laser blast impact, and a bit of knocking them sideways with explosions, I’m done with asteroid belts for now. They will show up in an expansion at some point. There is a ton of other stuff to do next.
Doing the belts meant looking at all sorts of code and led me down paths which have meant improvements to performance in other areas. It’s always good to claw back some CPU or GPU, knowing there is a big list of stuff I want to add which can use it up again :D

ASTEROIDZ!

After watching some star trek online gameplay videos (everyone says it sucks, but the space battles look interesting) I thought I should experiment with asteroid fields in GSB, purely (for now) as a visual effect, just a gratuitous bit of visual fluff which all the ships and weapons ignore.

Anyway, I don’t like just putting stuff in the game until I’m really happy with it. I’m not happy with this yet

But I’m not sure why. I need feedback on it from people like YOU. What looks wrong? what could be improved? Adding shadows is the obvious thing, but for boring technical reasons it would be a HUGE big deal in performance terms. I’d already have done it for ships if it was easy or fast.

Given that adding shadows isn’t an option, what else could be done to make this look more gratuitous and movie-like?

GSB 1.29 and some stuff for next time

I’ve turned attention away from long term expansion pack (campaign) stuff today to get patch 1.29 released for the core game. If you have entered an on-line code the game will autopatch sometime over the next 24 hours. If not, you will have to wait until I push the patch out to steam, gamersgate etc. People who kindly bought direct (the really cool people) can redownload the whole game if they really want to, or wait for the auto-patch.

The changes are thus:

1) Fixed a number of typos (thanks david!)
2) Game now automatically creates a new almost-empty default design if you delete every ship design, to prevent empty design list crash.
3) The range circles are now also shown on the currently dragged ship on the deployment screen
4) Fixed display bug where the tooltips over the deployment screens ship blueprints didn’t take race and ship bonuses into account.
5) Fixed crash bug when changing races before you have ever viewed the choose mission screen.
6) Fixed bug relating to messages corrupting or not being deletable.
7) Tweaked the expert fleet for the multari mission to make them harder.
8) Added a new rebel ship hull -> The Midgard frigate.
9) Made the startup online message check multi-threaded, to speed up startup times.

Also, I changed a server setting so that up to 2,000 challenges get downloaded when you hit refresh, so that means less ‘where the hell is my challenge’ mysteries. A longer term fix will happen one day.

In other news, I just put this in (for patch 1.30). It’s a new bit of UI that shows you the shield strength of individual shield modules.

Sometimes lucky enemy shots can skew the damage to one module more than another, meaning you can have one shield taken out, and the others intact, even though physically the modules aren’t destroyed. That effectively permanently reduces your max shield strength, as each module effectively acts like a concentric mini-shield in it’s own right. This was not clear, so hopefully this UI can at least let you spot it happening such as in this situation where the leftmost shield is on low strength, but the rightmost one is taken out.

Coding for the sake of elegance

I’m working on campaign stuff for a future (long way off) GSB expansion pack.

Right now, when the player clicks the battle screen to show the missions, there is an extra “campaigns” tab, and when that screen is initialised, the game currently loads in all the campaign data, including data for all the encounters within each campaign.

That doesn’t take very long tbh, it’s fairly negligible, even in debug mode.

Yet I am determined to fix it. I can just load the campaign name, and only bother loading further data if that campaign gets selected, and the player goes to the next screen. Otherwise, I’m wasting time.

Back in the days of the ZX81, that sort of delay would be very long, slow and totally unacceptable. It would be hugely wasted processing to load any data you didn’t really need, regardless of how much effort it took or complexity was involevd to avoid it. These days, it really doesn’t matter so much. We have more than 1k of RAM, we have more than a million times as much.

And yet it still bugs me. The code is inelegant, and I must fix it. Like most games programmers > 30 years old, I’ll never shake that desire to code ‘close to the metal’ and get as much performance as I can, even in fairly unimportant scenarios like this. Maybe it’s a good thing? Maybe thats why GSB surprises people sometimes in how well it runs on crappy old PC’s :D.