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

Better AI on the way

There are a bunch of things that could be added to Gratuitous Tank Battles, all of which takes time, and lots of tweaking and balancing, and may or may not add to the gameplay. My pet idea is a ‘safe zone’ extending some distance behind heavy tanks, which gave infantry in that area a cover bonus against fire. Theoretically easy, but might it look a little weird? if there is obviously clear line-of-sight from enemy turret to infantry, how can I justify the bonus?

One thing that I have started on, because it was bugging me, is improving the defensive AI. A lot of people have been complimentary about the AI in GTB, which is very nice, as I am, in my heart a bit of an AI coder, but I see so many battles when the AI does dumb things. The two dumb things that really bugged me (but NOBODY has mentioned it) were as follows:

The Ai building turrets next to attacking units, rather than ahead of them, so they don’t stride past during construction

The AI not effectively demolishing and rebuilding units in the last minute or so of battle

The first problem is hopefully now fixed (The second has always been coded, but obviously needs more work), but it’s actually one of those coding problems that annoys AI people, because management will never understand the complexity (and think you are crap/slacking). In theory, the solution is simple – Don’t analyze the path next to each potential unit-build location, analyze the paths that are 5-10 path tiles ahead of them, so you can know what will be in range when a unit is built, rather than right now. Easy, job done, 10 minutes!

But in practice much harder. There are maps with branching paths, and worse, some with paths that flip back between two tiles (making for some interesting recursive gotchas), so that means that identifying which path squares to keep an eye on and calculate ‘urgency’ for becomes a bit of a pain. It’s also horrendously slow, but thankfully way way faster in release build, and only happens on map load anyway. (Theoretically it could be saved out and rebuilt only on edits, but it turned out to be fast enough not to bother). To code all that, test it, optimise it and debug it (with a debug overlay to check it worked) , took the best part of a day, but I think it’s worth doing.

So today, one thing on the list is the demolishing/endgame stuff for the defensive AI. No reviewer has yet criticised the AI for the game, but I guess I should be aiming at them praising it, and hopefully I’m nudging in that direction.

Gratuitous Tank Battles 1.005 released

So I’ve finally released patch 1.005 for Gratuitous Tank Battles, and I’ve been trying to get a patch a week released between beta and eventual final release. This patch might seem to have less stuff than the last, mostly due to one of the items taking a lot of re-working.

Here is a forum thread showing the full changelist:

And here are the highlights:

There is now a direct association between the flames and damage textures on a unit, and it’s current state of health, rather than the semi-random system there seemed to be before! That means that a unit that looks undamaged probably is (although shields and armor may be reduced), and a unit with several plumes of smoke streaming from it is probably in trouble. Of course, for player-units toggling ‘H’ or the health button will let you see the details (or select that unit). This took a lot of fairly tedious re-jigging.

On a similar note, shields now flicker in a strobey-way if they are below 33%. You probably won’t notice on units without big chunky shields, because once down to 33%, they are probably under attack and close to failure, but hopefully this makes things a bit clearer.

There is a gratuitous new visual effect for laser guidance. Previously, those red laser beams were on a lot of units, mostly mechs, semi-randomly. Now, they only appear if that unit is equipped with the top (VI) targeting system. They also swish across and illuminate some smoke, and pulse a bit and generally look pretty cool at night. Expect to see less of them, but for them to look better :D

There is a new campaign map (Tanks for the memories!) added at the end of the campaign. It’s another evening map, this time very trench-heavy, hopefully you will all enjoy it :D

There are some changes and improvements to the explosions, after a LOT of work on the explosion editor. I expect them to be better still in the next patch, now I have seriously tided up my particle & explosion editing code!

Enjoy the new version, and as usual, anyone pre-ordering the game right now gets the very latest version automagically (you won’t need a patch). Don’t forget to tell friends, family members and total strangers if you have played the game and enjoy it, it’s all much appreciated. There is an official patch 1.005 comments thread here:

The atypical indie?

I just read a blog post that I won’t link to, because it will only give the accused exactly what he wants, but the upshot of it is that anyone who isn’t loving their games being pirated and anyone who actually charges money for games is making shitty games and doesn’t live in the real world.

Hmmmm. Just because someone works full time at games, and makes a living from it hardly automatically makes their games rubbish, or makes them a money grabbing satan. Is John Carmack a money-grubbing son of a bitch who hates games because his games made him a millionaire and bought him a string of ferraris? I doubt it, and I doubt his games are shitty either. In fact, the reverse is often the case. It often follows that people who are really good at what they do, tend to sell a lot of games, and thus end up well paid. That’s how capitalism works. Other government systems are available, of course. They are not reknown for outpourings of high quality digital entertainment though.

My point for this post isn’t about that though, it’s a more general call out to both indie game developers and the media that covers the indie gaming ‘scene’ (god I hate that word, do people think we all hang out in indie bars with our own indie slang?)

Please treat indie games like games, not like some desperate call for attention, or some trendy underdog story or political manifesto, and don’t think that knowing the game is ‘indie’ means you can assume anything at all. (GSB is more like Sins of a solar empire than it is like world of goo, for example).

To look at recent press and hype about indies in the gaming press (both online and in print), I wonder if I am a ‘proper’ indie at all. Lets look at the evidence:

  • I am 42.
  • I am not a radical EFF cheerleading cyberactivist with ‘I hate SOPA’ tattooed anywhere on my body.
  • I live in the UK
  • I charge more than $9.99 for my games, sometimes much more.
  • I don’t make platform games, and haven’t actually played one since sonic the hedgehog.
  • I am not a radical left wing campaigner that hates money, and is equally happy to just know people are enjoying my games if they pirated them. (I actually rely on income from games as…. well… my income)
  • I don’t begrudge big successful games developers that have made serious money from gaming or think they must be evil. Brad Wardell (stardock) gets a lot of aggro on this front, which is ironic because he seems such a nice guy. Good luck to him.

I am sure I’m not the only one, in fact I know I’m not, due to many drunken chats in various places with other indies in the UK. I wish the media would realise that indie != notch and indie != starving student and indie != any specific political or activist viewpoint. It’s a lazy stereotype that is long past it’s sell-by date.

Ironically, as someone who has a pet interest in marketing and psychology, I am well aware how easy it would be to embrace the stereotype for my own gain. I’m pretty sure a big ‘STOP SOPA’ banner on my website, and some long angry tirades in favour of linux, ranting at ubisoft for being evil etc, would probably get some press attention, and some PR, and some excitable headlines. It’s very easy to know what the more vocal section of online gamers want to hear developers say. If I was really savvy, I’d hire someone with a cooler name than mine, who looked more like an indie, and get him to do a lot of controversial and activist stunts.

It’s much harder to actually be honest, and say what you really think, something that gets me a ton of grief, to put it mildly.

But regardless of that, I would like people to stop writing about indie developers (as opposed to indie games), and for indie developers to stop acting like they are running for president, and to do something really radical which is this:

Talk about your games.

If I wanted to court controversy obviously add…

Finish the fucking game first, ok?

For what it’s worth here are some of my games, I hope they speak for themselves.

Gratuitous Tank Battles

Gratuitous Space Battles

Democracy 2

To clarify: I’m not saying indies aren’t allowed to have political view, everyone does, or to have strong opinions on controversial subjects, It’s when any discussion about your game is automatically steered to some sort of activist rant to get page-hits that it bugs me. I don’t care if you are Che Guevara or Hitler, I just want to know if that game you are working on would appeal to me.


Explosive fun

There is a todo list for the Gratuitous tank Battles beta, and something not officially on it (because nobody mentioned it) was to make the explosions and flames and so-on look better. People keep telling me they look great, but I want them to look tons better. That means a lot of tweaking, optimising and theorizing.

It’s amazing how many variables you need to get particles looking right, and then how much more code. I have special code for flames, for flamethrowers, for ground bursts, for smoke plumes, for debris, for emitters attached to moving units… and so on. It’s quite a spaghetti mess of complicated and differently designed systems, but it seems to work.

Hopefully by the time the game ships to final release, the effects will look a lot better. It’s one of those things I really enjoy coding (even on Good Friday when i should be eating chocolate!), so I can often justify silly amounts of time on it.

I also have grand plans for target designation laser effects, flickering shields and pulsing damage textures, but not enough hours in the day. How annoying…

Help me decide about Health bars for enemies in my game…

I’m just not sure…

The majority of tower defence games (and on this issue, GTB can be considered one, even if it’s vastly different to it in many other ways). Take a very simple approach to showing you the health of enemy units. A simple green/red bar over the top of the unit is displayed all the time, simple as that. I have always found that to be horrendously ugly and clunky, and was very very pleased with the solution I had in GTB, which was chunked-circles of health/shields/armor that gave you much more information in a much nicer way (if you ask me :D).

However… deciding HOW to display health is only half the issue, the other half is of course, whose health to display.

The first beta release of gratuitous tank battles only showed health circles for your units, and only when a unit was selected. they defaulted to all off, but you could (temporarily) toggle them all on with a fairly hidden shortcut key.

Due to public demand, I’ve improved that so thereĀ  is a button for health circles, they default to ‘on’ and they will stay on all the time if you prefer. There is no way to see the health circles for enemies.

My reasoning is thus. You get an extra bit of unknown-information tension in the game when the exact health of an enemy unit is unknown. As a potential game-winning enemy unit trundles towards the exit square, you have to bite your nails and hope those gatling guns you have trained on it are going to finish him off before he gets off the screen. It’s tense, it’s worrying, it’s exciting, and it builds suspense.

This is my view, but I know some people are shocked to find that the approaching enemies do not have health bars. I guess the tradition with tower defense is to show them but I’m pretty certain there is no set rule for an RTS game, and certainly none in an FPS game. Why the convention for TD games? Does it make the game too easy, too predictable, too much a simple matter of number crunching?

I’m willing to be argued round, but I’d rather balance GTB to be one way or the other, than take the easy route and just give the player the option. What do you think? health bars on or health bars off?