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

Today’s worklog

8.00AM: Clement Freud has died. He gave me an award at my secondary school many years ago. He was very short. Also he was very funny

9.10AM: All the business email stuff is dealt with, time to start work on putting one of the new ships into the game, one I have declared to be the ‘Imperial Centurion Cruiser’. It looks badass

9.50AM: Most of the graphical stuff is done and dusted. Now I just need to add in the data defining this ships damage textures and module slots, and get it tested and in game

10.30AM: The Centurion cruiser is done and looks great in game. Took a screenshot to give feedback to the artist. Everything seems to look ok, so I don’t need to go back over any artwork. Plus the multiple beam lasers look fantastic. I’m pleased

11.10AM: There is definitely a shutdown problem with the game. Dev Studio churns for ages. Must be a huge and new memory leak somewhere. Damn.

11.50AM: It’s definitely a bug with the main battle screen. But where? The sound? graphics? AI?

12.00AM: Interrupted by door to door salesman, thus killing my efficiency. Time to release the hounds.

12.20PM: I suspect this isn’t a memory leak, but just my debug output backing up bigtime because every time I create a blast glare effect (also used for non-penetrating shield impacts), I tell the debugger about the texture I used. Clearly this code is inefficient anyway, because with dozens of the smaller glares I need to have that texture cached, not be looked up so often. The game now shuts down fine in debug, but I need to fix the underlying inefficiency. In fact, it’s worse than I thought. I need a newer, efficient system for shield impacts

12.35PM: Works fine but forgot the original texture was a quadrant and this one needs not to be. redoing it… Also just spotted a graphics glitch with the con  trails pulsing on and off.

12.45PM: Having crash issues when trying to do some profiling, Grrrr. I will mull it over some wii-jogging and a cup of tea.

1.30PM: Still can’t get profiler to not crash. Time for tea.

2.20PM: it now crashes somewhere else. progress?

2.50PM: Sod it, I have a workaround, and bugs to fix. some lights in the wrong places, and an idea on how to make drawing running lights faster if they are zoomed out. (check rendered size > 1 pixel BEFORE checking if onscreen, which takes longer).

3.30PM: The debug copy no longer links. some obscure ANNOYING linker error to do with debug and not debug Microsoft crap. Very tedious and I’m not getting actual game stuff done :(

4.14PM: Think it’s fixed, plus I tracked down the flashing con trials bug. It was me not setting the render mode correctly before I drew them, and them getting drawn early if they filled up a vertex buffer before I was ready to render them all. Good old Nvdia perfHUD was my saviour. Now back to coding fun stuff.

6.25PM: Finally got the linking stuff fixed by a total wipe and rebuild. Grrrr. Next on the agenda is adding some better parallax effects, which are a nightmare with 2D + zoom + variable screen res and scrolling.

Initial thoughts on game AI

I’ve thought about the AI for Gratuitous Space Battles a lot. I have a lot of ideas, some of which I’ll sketch out, and some I’m keeping secret for now.

When I say ‘AI’ I’m being pretty nebulous. I don’t use AI in the trad comp-science limited sense of it. I’m talking about the whole matter of computer-controlled opponents. Who they are, how they are selected etc. Because GSB is a ‘hands-off’ battle game (for now), there is an element of determinism about how the battles work. In other words, if you design a fleet, in theory the AI can design one that it is assured of kicking your ass with.

There are many ways it could do this. The most obvious bruet force method is to randomly design fleets and pick the one that beats yours. Another would be to have some initial ‘seed’ fleets and do a genetic mutation – evolution algorithm to deduce the ultimate fleet against yours.

However, while I want a challenge, I don’t want you to be beaten every time. Plus, the ‘problem-space’ is colossal, way beyond chess, because there are maybe 40 hull designs, maybe 100 ship modules, near infinite combinations of ships and modules, and that’s before ship placement or ship-behavior/instructions. It’s not possible for the AI to beat your fleet using deep-blue style iteration of possibilities.

So there is a good chance the final AI will be some mixture of pre-designed (by me) AI fleets, combiend with an element of letting the AI battle several thousand slightly randomly mutated sample player fleets, and improving on my initial design.

I’m sure everyone has lots of ideas of where else to go with this, such as machine learning, copying player fleets etc. Needless to say, I’m mulling over them all :D

Space Hulk

I’m testing some stuff where after a big cruiser gets blown apart, there is a drifting blackened hulk of it still floating in space (in 2 or 3 big pieces). It still needs some work but it doesn’t look so bad on a grainy video :D

 

If you like it, rate it :D
Cheers

Updating The GSB website

I just did a minor update of the GSB website:
www.gratuitousspacebattles.com
Please feel free to vote it up on stumbleupon if you have such a thing.
The original page was completely placeholder and had screenshots of crappy spaceships I had designed, alongside some very early particle effects and shield/laser effects. Plus there were no screenshots at all of the non-battle screens in the game.
The new screens are still small, but they give a more up-to-date flavour of the game. Plus I’ve put in the proper GSB logo, and a bit of blurb that I knocked up temporarily to explain what I’m getting at.

Obviously as I get closer to release (still many months off) I’ll add videos, proper screenshots, faqs etc.
I’m quite pleased with how even this one-page site looks though. Iv’e finally got a game that is coming together which will actually look nice in screenshots, and hopefully that will get people to try the demo (which is the major hurdle for an indie developer).
Feedback welcome!

Changing some shield stuff

I did a fair bit of speedup code today, added a new ship, then put some effort into the shield effects. The old graphcis were 512px square, which is pretty big with mipmaps. A basic test showed 1024 px images looked noticeably better, but they get pretty big filesize wise.

So I did what lots of games did, and cut the images down to quarters, and in code I mirror/flip them to draw all four quarters of them. It’s an old trick to save filesize. There’s an image below showing it in game, and file itself.

I also added support for different shield graphics for different races, so you have aliens with their funny foreign-colored shields :D