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

New video blog, and website

Soooo…. Two new things. Firstly, the GTB website has been properly re-done, although for the time being it’s light on content, that will change as I get closer to release. here it is:

http://www.gratuitoustankbattles.com/
Secondly, I did another video talking about the game, combined with some video footage showing the unit editor and map editor, which I haven’t really talked about before. Annoyingly the ‘auto-focus’ on my camera kept gurgling away, but I wasn’t aiming for an academy award this time anyway. Here it is:

More thoughts on GTB challenge games

As with all games, actually making it tears the design in all kinds of directions. This is one reason why people who try to get a lead designer job based on lots of paperwork and no actual game often come up against a brick wall… No game design survives contact with the code.

So… I’ve been working on the online challenges for GTB. It all now basically works, in it’s basic form. When a battle ends, you can post that battle as a challenge to the server, for everyone, or a specific user. This is only valid if the map is a new one you designed (or edited) or if you played as attacker.

The other players can now browse a challenge list, select and download your challenge map. They can they play on it as attacker or defender. This is where it gets fidgety..

If you played as attacker, and uploaded your battle as a challenge on a default (pre-built) map, and someone downloads it, it’s pointless them playing as attacker, because effectively, nothing has changed. They are just playing the normal map.

If, however, they play as defender, things happen as expected. they see YOUR units, deployed at YOUR choices of location and times, and it’s like an asynch multiplayer game. Yay!

If they edited the map, changed loads of variables and moved some props etc, and uploaded it, then it makes sense for you to play attacker OR defender, because hey, you just got a free community-based extra map to play with. Yay!

The problem is, making it clear to the player that sometimes they download a challenge and it’s only playable as defense, sometimes as either. I can use tooltips etc, and flags in the challenge database, but I still phear confusion. Plus, in an ideal world, I’d allow a player to bundle in ALL his units with a challenge too (this should be easy), so they can say “here is a normal default map, but here are my unit designs to fight against”.

I want it to all be intuitive, and although it will be awesome, so far it is NOT intuitive :(

In other news, GSB ipad is coming along. Still ironing out performance issues. Or rather, mark is. I’m just blogging about it :D

GTB and uploading content

Gratuitous Space Battles had a fairly straightforward challenge system. You uploaded your challenge, which was a combination of unit designs + deployment + orders, with maybe a few map variable, and others downloaded and played them.

As I start proper work on uploaded stuff for GTB, I realise it’s a bit more complex and tricky. My two aims are for you to be able to:

  • Upload or play against someone else’s unit designs + attacking ‘recording’ of their units, when you are playing in normal tower defense mode.
  • Upload or play with someone else’s custom designed map, including whatever graphic resources they have included within it

Of course, there is immediate scope for overlap, where someone designs a new map, plays as the attacker against adaptive AI, and then wants to upload both the map, and their recording of their attacks, and units, so you get to play against new units on new maps. I want to support this (obviously) whilst not letting the UI design of it get too clunky. I’m only starting to consider the real implications now.

Another major consideration is encouragement and ease of use. I need uploading your forces to be absolutely trivial to do, and encourage everyone to do it. I also want to minimize the traffic going to and from my server…

Currently, I have an edit button for every map. You can edit the map from there, and save it out as a ‘custom’ scenario. Once you play that scenario, like any scenario, you have the option to upload it as a challenge. This feels horribly clunky.

I guess ideally, that at the end of a battle, you should be prompted to upload a challenge, and if you select yes, you can choose (where applicable) if this is a ‘map-only’ upload, or whether it also contains your unit designs and deployment timings (assuming you were the attacker).

And given the way my system currently works, with zipped uop folders, it wouldn’t make any difference anyway, People would download a map, and if it had player recordings included, they could be used, or not, entirely up to them. If no ai designs are present then the adaptive AI automatically chooses from any design (by default they are restricted to that scenarios AI designs).

I think that sounds ok.

Gratuitous Tank Battles Alpha Footage

Ok here is a video of me self-consciously talking about GTB and playing it. It’s one of those actual gameplay no-tricks no-bullshit videos rather than the ‘target-render’ bullshot crap and touched-up recorded at half speed then sped up to look smooth things that a lot of big name publishers do. I just ran fraps while I messed about shooting stuff, and talked over it. My voice is a little too quiet here and there, but I always underestimate the SFX noises, and I have to capture both audio to one channel so it isn’t editable. Damn :D

The video is just showing some battles, not the level editor or the unit editor, or any online stuff (still most of that to do…) so its only a snapshot of the traditional tower-defense side of the game, albeit playing as attacker and defender, and with a tad more detail and explodyness than most TD games I hope :D.
let me know your thoughts, and please retweet, link, share, tell your favorite news sites about it etc. I might start doing a lot more in-dev videos about the game, I think they are a bit More interesting than just a normal blog post. What do you reckon?

Getting Gratuitous Tank Battles to run on my laptop

So…. it runs! and it runs in places at 60FPS, but in other places….not.

My dell video card has a 64MB VRAM intel GMA chipset, so hardly a gaming laptop, but my aim was to get GTB to at least run on it, even if the framerate sucked. That way, I know people with 128MB or 256MB cards should be fine, and I’d like to keep the min spec as low as I can.

The game already had a ton of stuff you could turn off, such as shadows, shaders etc, but running it on the Dell, and then profiling it using the awesome free intel GMA tools showed up a ton of stuff that I could do to increase the initial 20FPS rate. These were:

  • Realise that the refresh rate on the dell was set at 40FPS not 60FPS initally, hence making an artificially low limit. DOH!
  • Removing a redundant Clear() at the start of each frame. I fill the screen anyway, so why bother? I don’t use a Z-buffer.
  • Removing some render-target sets and clears when the shader options were turned off. With these off, I can render direct to the back buffer, old-school style and save time on render target changes.
  • Adding code that detects a jpg when loaded, and mip-maps it. Previously, they had no mip maps at all. Could possibly reduce some memory consumption
  • Add a graphical detail slider to options which can turn off a bunch of frilly details like window shadows, and drifting smoke on menu screens.
  • Providing a separate list of lower-res textures that get used in some cases when the graphical detail slider is below 25%. Such as mech legs and the shadow maps for scenarios. Any texture of 2048 or higher gets a lower res replacement. I had tried auto-scaling them on load, but this gave unexplained errors and I don’t trust D3DX to do this reliably on all video cards to be honest, so separate low-res textures it is.

I think the biggest wins were the texture-size reductions and the removal of the render target clears. It was interesting to note that the dell considered the game to be GPU limited, despite it being a fairly old and crappy chip (and only a single core). I guess at 1920×1200 res with all the options on for the desktop, things may be very different though.

Things may start to race ahead from here. The game is definitely very playable in its basic form, with the majority of extra work now likely to be the online challenge and integration stuff. That will take months, but still, the end is definitely in sight.