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

Gratuitous Manual Battles

A lot of people really liked the manual for Gratuitous Space Battles, and I’m conscious of this fact when working on the one for GTB. As with all complex strategy games, there is a ton of stuff to tell the player, and they will likely want to reference it after playing for an hour or two, in order to look-up or clarify stuff. It’s also a good place to put stuff like lists of hotkeys, or unit stat comparisons, although I probably won’t be doing the latter.

Some trendy designers would suggest that ‘a game that needs a manual is badly designed’. This is just silly. We don’t all want to play games as simple as Bejeweled, and sometimes, a separate reference manual is a good idea for a game that has real depth and a ton of features. I also like doing a manual because it means people can read how to play the game on their laptop, or a work PC, where maybe actually playing through a tutorial isn’t an option. Plus it means people who are really on the fence can read the manual before deciding to buy the game.

The manual is maybe half done. It’s mostly all there, but it will need some more images, some proof-reading, spell checking, and a second pass for actual humour and flavour text to make it more in-keeping with the blackadderish spirit of the game design. I might change my typewriter font to make it more typerwriterish, a tradeoff between authenticity and legibility. I like the idea of a 1914 army document that never got updated during 200 years of war. maybe the army spent all it’s effort on making more deadly lasers and none on word processors?

On the technical side, it looks like the server move went ok. Just quadruple checking it all before I turn off the old one. That still scares me…

Suprisingly complex health indicators

I’ve never liked health bars in RTS and Tower Defence games. They always seemed annoyingly crude to me, like the designer just thought ‘err…health bars? lets just copy the games from 1980 ok?’. They really break immersion badly for me. Worse still, if you wanted 3 different indicators, for health, armor and shields, you got 3 bars, which was silly.

Gratuitous tank battles solves this with cunning health ‘discs’ only on selected units. The image below shows some infantry with full armor and health, and a damaged turret that has lost some armor. I need to change the code a bit to make the colors relative, rather than always splitting them equally, for situations with high health/low armor etc… anyway…

The problem with this system is that to draw the discs programatically you need a lot of triangles to be smooth. Given GTB supports VERY high zoom in and out, that means either blocky hexagons when zoomed in, or triangle-calculation nightmare framerate if you select 500 guys when zoomed out.

The solution is ‘continuous level of detail’ which 3D engines sometimes do with meshes (not sure how common it is), where you basically add triangles as you zoom in, so you have a constantly varying image complexity. The human eye should never notice. With a simple triangle fan, it’s relatively easy. With a big complex mesh, it’s way harder. I know, I worked on Elixirs ‘infinite polygon engine’.

You might think drawing a few hundred triangles here and there makes no difference to frame rates, but it all adds up. I like to write the fastest code I can. It’s also pretty cool to play about with stuff like this. I can’t actually see it happen, even though I know it is, because I can see it happen in wireframe. Nobody playing the game will ever care, but it does add some polish to the game. it makes my GUI look much smoother than it otherwise could have done, given the framerate I’m expecting.

Bogged down with end of project stuff

I am currently wading through my list of stuff to do before GTB ships. The list is huge, but not colossal, and I’m now measuring time to beta + pre-orders in weeks not months. Some of the stuff still to do:

  • Auto-updating functionality (hopefully better than GSB’s), both version-checking, and also downloading of updates and installing.
  • Checking mod support works as expected. (not started yet, but likely to be similar to GSB’s installs system.
  • Checking the game runs and is functional on a range of different screen resolutions.
  • Putting together the scripted AI attacks for each mission
  • Finish off the metrics stuff which helps me detect and gameplay imbalance or difficulty spikes.
  • Finalising what is unlocked and what is locked at the game start, and checking the unlock system works as expected.
  • Gameplay testing for obvious exploits and weaknesses, such as overpowered units or silly tactics that somehow work.
  • Getting the final manual text done
  • Getting the final sound effects & sound balance done.
  • beta-release launch trailer, press release and screenshots
  • Website improvements ready for taking orders.

What will happen post-beta:

  • Fixes to any crash bugs
  • Implementation of any awesome must-have ideas from beta feedback
  • Some further optimisations for performance
  • balancing of units and maps based on feedback
  • release-video and promotional stuff.

The stuff that will take time will be the gameplay testing, auto-updating and metrics stuff. I can’t see a February release, but maybe early march? That’s only beta, so hopefully a full release not long after that. Eventually, I will need a BIG holiday…

Server Move

The positech server, which hosts the website, this blog and various other magic, has hopefully today moved. If you commented on a blog post or forum thread, and it disappeared, that is why. Sorry about that.

This is part of my sudden desire to organise and professionalize everything here, so that things run more smoothly. The new server has more hard drive space, better backups, and double the memory. This should ensure a smooth release of Gratuitous Tank Battles in 2043 when I finally finish it.

I have many tedious admin things to do now, plus I have a potentially really cool thing happening which i can’t discuss yet. Sorry! Plus…. If you are in London, come along to the ‘bit of alright’ thing tomorrow to hear me waffle about stuff. I blogged about it, but I think the blog post got lost in the shuffle. Typical eh?

Processes

I’ve started reading a book, and ordered another one, that focus on the topic of business processes for small companies. Essentially the theme of them is that far too many small businesses are built around the hands-on skills and knowledge of a single person -> the founder, and that this can act as a roadblock to the company expanding and flourishing.

This rings very true to me. People sometimes suggest I get a full time artist or coder, but I never do, and what I really need is either a clone of me, or an all-rounder who can do a bit of everything, marketing, business stuff, design, coding, testing and artwork. Such people are not easy to find. A lot of indies use interns or junior / student employees, but I always try to ensure I get the very best, and the very best are normally not looking for a job, they freelance, and are booked up a year on advance.
If I can’t expand by hiring, something I can do is to try and streamline all of the different systems that make up positech. My current systems are a mess. I run backups when I feel like it, I check my ad and marketing budget stuff at random intervals. I have no organised calendar for anything, no dates on GTB milestones, no quarterly assessments of sales, it’s a mess.
So this is something I’m going to work on fixing, over the next few weeks. I’ll hopefully identify a few areas where some new software or cunning scripting can save me time, and make sure I am more organised, and that everything is better documented. One day, I might even end up with some staff.

In the meantime I showed Gratuitous Tank Battles running on a big TV to two fellow indie devs recently. It looked good on the TV, ran without issues, and I think they likedit, which is reassuring :D