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

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