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

First real players, first real bugs

So…. GTB is out there being played by real actual people, rather than just me and my cats, and of course, the first few bug reports come in.

It seems hard for many gamers to believe that developers do their best to reduce bugs, because the minute you play a beta build, you encounter crazy stuff that makes you think “how the HELL did they let this one go?”. I thought I’d give an example of the worst bug found so far, and what caused it, and why I didn’t spot it.

Alt-Tab hangs the game.

On the surface of it, that seems mad, and annoying. Surely cliff tested it? Yes… he did, massively so, and it worked fine. So when I got multiple bug reports, after I KNEW it worked, I did some digging. Did alt-tab work for me? yes. In release build? yes. In release-build run outside Visual Studio? Yes? In different maps? Yes? Nighttime? yes. units selected at point of alt-tab? paused? mid-explosion? shockwave being rendered? nightvision on? paths drawn? yes,yes,yes,yes… after a cold reboot? YES.

Testing all that takes longer than it sounds… So then I do what you *have to do* when you encounter stuff like this. You pretend to be playing innocently, and go through an entire mission, playing and ignoring the potential bug, winning an entire battle. Then you play a second battle, and alt-tab. HANG

Which makes you think that it is something to do with multiple battles. Cue lots of digging through code. Cue turning on the directx debug run-time and maximised error reporting, and running the game in debug. Also cue bouts of near-sobbing when I manage to play 2 battles and it NOT happen… Eventually I manage to reproduce the hang in the debugger. (This is a big win). The you get that infuriating directx error that basically says “Srry, can’t restore DX, you forget to release some directx resource. We know which one, but we are leaving it to you to guess..” or words to that effect.

I bet this guy wrote that one:

Anyway, to cut a loooong (6+ hours) story short, eventually, a whole lot of experimenting shows that the problem occurs only if the post-mortem dialog, or one of it’s many offshoots get launched. This does some multi-threading, which led me up a right blind alley. Anyway… eventually it becomes clear that displaying the unlock-choices dialog causes it…sometimes…

Then a sudden brainwave. The unlock choices *sometimes* gives you a new Hull, and to do that it needs to render that hull. As an optimisation, it doesn’t draw it in layers, it renders out a composite texture (multi-layered) as a sprite, and uses that (it will get re-used later in various dialogs…). That means some render-target code gets triggered. A bit of digging shows that when I create a render target to save out a new composite hull texture, I wasn’t calling Release() on it correctly, in two places. Arrghhh! bug fixed. (AFAIK).

So why didn’t I find it before I shipped? Well basically I implemented the unlock dialog after I’d already tested the hell out of alt-tab. By the time I was close to shipping, and double-checking alt-tab, I either tested it in the first battle (no probs) or I had already unlocked anything and didn’t see that dialog, or I got lucky and the dialog only offered modules or ready-rendered hulls.

But it’s swings and roundabouts. This bug was hell, but pretty much every issues everyone is experiencing on the unit design screen to do with saving and deleting turns out to be a single line where I used = instead of ==.

Don’t you just love C++?

Gratuitous Tank Battles Available for pre-order/Beta NOW!

Ok, so it’s finally here!

Gratuitous Tank Battles, my latest  game, is finally open for pre-orders, and everyone who pre-orders the game gets an immediate download link for the current beta build of the game. Essentially it’s for sale now, you can just expect it to be updated a few times before I declare it finally released!

If you aren’t sure what game I’m on about allow me to show you the beta-release video trailer!:

If you like that trailer, please,please vote it up, or tweet it or +1 it, or whatever the cool kids do these days. Feel free to tattoo ‘I Love Gratuitous Tank Battles’ On your head and run through the streets. Or failing that, just tell some friends about the game :D.

Currently the game is only available to buy direct from little-old-me, but phear not. You get a download link that should last forever (email me if it ever dies), and as a special 2012 bonus, you will get steam-keys when the game is released on steam later on (when it’s out of beta). I have no doubt it will be released on other portals too.

Get it here:

http://www.gratuitoustankbattles.com/

Be aware that this is a BETA game. That means not 100% polished, not 100% balanced, not 100% optimised. It *may* have some technical issues on some PC’s (although I suspect not), and it may need some balancing and gameplay tweaking before final release. If you are wary of buying beta games, then just enjoy the video and wait a while :D.

Whatever your thoughts, share them here in the comments, or at the GTB forums over at:

http://positech.co.uk/forums/phpBB3/

This game feels like its taken a billion lines of code and a hundred years to make. I am so badly in need of a day off. Hopefully, people will like it, and it will have been worth it. Enjoy!

The unstoppable rise of gaming videos

Something has changed for me in the last six months or so. A year ago, if a new game came out that piqued my interest, I would probably check out some screenshots, then read a review, (probably several), perhaps read gamers comments on forums, and maybe, if one was available, I’d try a demo of the game, before purchasing.

Now things have changed, youtube is my #1 source for evaluating the possibility of me liking a game.

I probably *hear* about the game at Rock Paper Shotgun or some other gaming site. I might hear about it first on a forum, but now I tend to not bother reading reviews until I’ve checked out a gameplay video. (reviews are good for getting a big-picture description of the entire game)

I *like* this development in the industry, because there is nowhere for the cynical marketing crap to hide…

Demos are sometimes just one slice (the best!) of a game, come out long after release, and are a huge pain to download these days, if you live in the country with a usage cap.
Screenshots are invariably bullshit. They are touched up by artists. They have zero relationship to the game you will buy. (They are called ‘target renders’ in the industry). (All my games screenshots are 100% honest simple screen dumps. This is actually rare.)

Reviews, which contrary to belief are generally not ‘bought’ or corrupt, are nevertheless seen through the prism of that reviewers opinions and experiences. A reviewer always brings their own genre tastes and personal pet peeves with them, they can’t avoid it. if I reviewed games, I’#d mark down everything with unskippable cut scenes, macho protagonists or elves with enormous breasts, but that is probably just me..

Youtube gameplay videos are wonderful. The most handy are not official trailers, or posted by big name sites. The best ones are just some random dude who played the game with fraps running and clicked on upload. That is the sort of experience I as a gamer will get, and that is exactly what I want to see. I probably know if I want to read a review within 10 seconds of video these days.

Am I alone in this?

Unsure trade-offs in game design

Here’s a thought.

Good games are ones where we make unsure trade-offs. Most games are either about reflexes or decisions. Decisions are more common in the kind of games I make, such as strategy and sim games. I think the two basic approaches to strategy/sim games are plate-spinning and trade offs.

Plate-spinning is where tons of stuff is happening at once and you are trying to stay on top of everything and keep everything from falling apart. Democracy 2 is very big on this aspect of design.

Trade-offs are much more common. Even games that are conventionally reflex ones, such as First person Shooters have a lot of trade-offs. You choose to be a medic, trading ammunition capacity for the ability to heal. You choose to be a scout, trading everything for the ability to move fast. Choosing to have more of X, means less of Y.

Where this system goes wrong in games, is where it is too clear, too obvious, too analytical, to decide exactly what the trade-off is. In other words, the number are a bit too explicit. If I *know* the details of every variable in the trade-off, then it simply becomes a matter of Vulcan logic. It’s when there is a suitable amount of fuzziness around the numbers, that the trade-off becomes one filled with uncertainty, anticipation, risk and excitement. You *think* the best choice is to risk building a new factory in the city, trading off increased pollution against lower unemployment…but you can’t really be *sure* that the numbers will go your way…

To me… that makes for a fun game. I don’t always need to know the numbers. Sometimes, just a hunch makes for more fun.

Pricing for gratuitous tank battles

I am not sure what the right price for gratuitous tank battles should be, even this close to release, so I’m going to dump my brain here, to help me think.

Gratuitous Space Battles was $22.95 on release, and as I recall a bit cheaper in beta/pre-order ($19.95 I think).

There is a lot of downward pressure on games pricing. people expect to get indie games for less than the price of a large coffee, which is silly, and frankly, a bit of an insult.

It’s a few years since GSB. There has been inflation since, about 5% in the UK. My bills sure keep going up.

GTB is a MUCH more fully-featured game than GSB was at launch, or even is now. GTB has achievements, a built-in editor, multiple game modes, better visuals, and more content. It is also more polished in every respect.

Nobody knew what to make of GSB, so it was a bit of a risk for many buyers. People know roughly what to expect from a positech strategy game now, so maybe they are less scared of parting with ‘large pizza + some beer’ music for one of my games.

None of this brings me to any specific conclusion, but I can say without any doubt that anyone who thinks it will be *less* than $19.95 is being optimistic :D GTB is a HUGE game. It’s taken quite a few people a hell of a long time to make. I guess I better decide soon…

One thing is certain: even if the game is $0.01 people will shout at me for being worse than hitler and call me stupid for getting the price *wrong*. Bah.