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

Reach for the stars

“Reach for the stars, cause they’re sweeter by far, than the moon, though she’s brighter and closer to you…”

Lyrics from a song I listen to (bonus points for spotting whose), but also my attitude in recent years to my job. The whole idea of ‘lone-wolf’ indie game development is absurd on paper. Activision spent $70 million making COD:MW:2, and $130 million to market it. That’s vs Me, in a spare bedroom.

I am doomed to fail.

Except somehow I don’t fail, but keep going for years on end, even making a reasonable living from it. Clearly, fighting such impossible odds attracts a specific, maybe warped mindset. I’m glad to say that ever since I started work on GSB, I’ve had that mindset in spades. A lot of the reviews for GSB praise the visuals, saying it looks really good, and that’s welcome, and very nice, but when I see it, it looks crap. it looks really cheap and badly done, and old school, and unconvincing. The reason I think like that, is rather than playing other indie games and comparing them to GSB, or other AAA games and comparing them to GSB, my point of comparison is Star Wars: Revenge of the Sith, or any other high quality movie special effects.

You might as well set your sights high…

One of the things I do when I want to improve the graphics is take a huge bunch of screengrabs from space battles on DVD like this: (I’ve got dozens of folders like this). This takes hours…

I then take a look at what those ILM visuals look like in a single frame, which is very helpful for designing visual effects in code. For example take a look at this freeze frame of a laser gun in Revenge Of the Sith, I find stuff like this fascinating.

When I have time to improve the visuals again, I’ll go through a lot of this and study in, and also zoom in and study GSB and work on making one look like the other. I had a number of false starts with the explosions and debris for GSB, and although it’s better than it was at the start, I still need that stuff to be better still. Expect the game to keep getting better as long as it keeps selling.

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?

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.

Scenario Editor

I’m a big fan of modding and game editors. people love to tweak a game they way they want it, and I support that 100%. So with this in mind, here is a work-in-progress screenshot of the custom scenario editor.

The idea is that there is a new way to launch a challenge (maybe from the challenges window), rather than selecting an existing singelplayer mission. That new button takes you to this screen which lets you tweak everything. Once done, you can then click deploy, and arrange your fleet like any other mission, then issue that as a challenge to anyone else. You can only use backgrounds that already exist in the game, but everything else is tweakable.  The only big chunk not done yet is changing the deployment zones. I may end up adding that later and using defaults for now. My UI coding is sadly slow and inefficient :(

Together with in-game messaging, this is the second big feature that will be in the next patch (alongside many bug fixes) which will be 1.28