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

Experimenting with special units

Everyone agrees that when it comes to gameplay the best approach is to try tons of stuff and see what turns up right?
Anyway, it’s an approach I am becoming keen on. Things often sound like the greatest game idea in the world until you try them. And things that sound lame and boring often turn out to be hilarious and fun. The ski-jumping game in wii-sports probably sounds crap in the design document…

Anyway, with that in mind, after playing through a few GTB battles in ‘classic’ mode (tower defense) as the defender, it became clear to me that ‘towers that do different damage to different units’ isn’t enough, in terms of interesting decision and gameplay, so I started thinking about special units.

As of today, there are 3 new magic modules, and associated units in the game. They are hospital modules/ambulances repairyards/trucks and supply trucks. The hospital and repair facilities regularly pulse out waves in a set radius that heal/repair your troops/tanks/turrets as appropriate. There is no overlap, so ambulances only work on infantry, whereas repair yards and trucks do everything else.

This is my first new mechanic, in that we now have units that act as support units, rather than directly contributing to victory. This brings up all kinds of decisions regarding whether to deliberately target the support units, whether you have lots of support units to keep a few big ‘tank’ units alive, or go for a mad rush with no support etc…

The second new mechanic comes from supply trucks. Supply trucks have no weapons, and no abilities, but they score disproportionately when determining victory for the attacker. Basically, getting a single infantryman off the map alive earns (for example) 1 point. get a tank away and you earn 50 points, but get a supply truck away and you earn 500 points :D

This introduces some new things to strategize over. supply trucks are literally harmless when they enter the map, and only pose a real threat as they close in on the exits. Unlike normal units, which can serve some purpose in shooting turrets etc, the supply truck is a binary decision. In other words, you should only deploy one if you are SURE its going to make it to that exit.

Obviously there are tons more potential ideas, and nothing here is revolutionary, but I hope to eventually ship a game that gives the player a ton of variety. Small tower defense battles, as attacker or defender, big battles, rush battles, wave-battles, 2-sided pitched battles, custom edited maps…. If I don’t die from stress or old age before I finish all this :D

more out-loud design thinking

I’ve been doing some playthroughs of various gameplay modes in GTB and thinking a lot about the game design, and the way units interact.

One of the core things that makes Tower Defense games playable, and casual (to a degree) is the clarity of how units interact. There is often a clear way of differentiating how the units work against each other. For example, gun turrets are good against ground units, lightning turrets are good against flying units, laser turrets are not-bad against both. Often that sort of data is as complex as it gets. You can then have an upgraded ‘level II’ laser tower that is the same, but better, and so on…

One of the unique selling points of GTB is that towers have individual modules that can be combined, so it’s not as simple or inflexible as normal. In theory you could customise your defenses to do exactly what you liked. The trouble with this is it over-complicates things and makes the game less playable for first-timers and casual players.

I’m thinking right now that this is fine, as long as it’s clear what MODULE achieves what, and as long as it’s clear that the different classes of unit (Turret/Mech/Tank/Infantry) still have definite characteristics.

In other words, when you see a bunch of enemy infantry, it needs to be obvious that you think “right, I now need to build tower X”. This is where GSB let itself down.

So… in terms of broad principles:

  • Lasers are good against armor, bad against shields.
  • Ballistic weapons are good against shields, bad against armor
  • Missiles are generally average at everything, but have splash damage

In addition to that, I’m thinking of some hard coding so that:

  • Machineguns are rubbish against everything except infantry, where they are devastating.
  • Flamethrowers are the same as machineguns, plus they have splash damage.
  • Bigger weapons (all turrets, and mech/tank weapons) are relatively poor against infantry.
  • Infantry weapons are relatively good against each other.

That will mean some code changes. In addition, I’m more heavily skewing things so that:

  • Tanks do not have shields of any kind. Tanks are all about armor.
  • Mechs have the best lasers and the best shields.

Plus also:

  • I’m adding in construction times for turrets, so you can’t insta-place a turret.
  • You still cannot destroy a tower and reclaim some of the cost. Is this important? I never do it, but some people do. Not sure…
  • You can design (then use immediately) new units mid-battle. Maybe that is a bad idea?

There are a multitude of other things. I’m of the opinion that pretty much *all* maps should have at least two routes, so when you are placing attacking units, it’s a constant game of ‘aha, I see the right-side route is ill-defended against infantry….’ Obviously the first tutorialish map should be simpler.

I do wonder if I should put together a really early playable alpha of the game without any of the fancy graphics, just to let people play with the mechanics and offer feedback. If the majority of music / graphics aren’t even in the game, I could do that without fear of piracy or people confusing it with a finished game, and make it free. Hmmmm. I just don’t know… Would mean a nightmare load of separating stuff out… I wish I’d thought of that 6 months ago.

Game Mode Progress

Today I made some good progress on game-mode stuff. I worked primarily on the ‘assault mode’. My current thinking splits the modes up thus:

Classic mode:

Basically tower defence, with real-time placement. Whether attacking or defending, your supplies increase gradually over time. You can spend them whenever you like, but they cap, so you can’t just sit on them for five minutes. This is an arcade style, keep placing troops or towers game, designed to be singleplayer. This mode works as attacker right now, although AI turret placement will need tweaking. I haven’t implemented AI for attacking yet.

Assault Mode:

Like classic, but with no real-time placement. The total attack (or defense) budget is split into waves, maybe 10 of them, possibly unequally. At the start of each wave, you place your units. The wave then starts, and you are fairly hands-off (apart from assigning priority targets). Once all the attackers units are destroyed or left the map, the wave ends and both sides (player and AI) place the next wave over the ruins of the first. Designed to be singleplayer.

Rush Mode:

Similar to the GSB challenge. This is basically assault mode with just 1 wave. Great big attacking horde vs heavily defended base. This can be played singleplayer or uploaded as a challenge for others (as attacker, or defender). I aim to work on this tomorrow.

Pitched Battle:

This is like rush mode, but neither side is defending. The map is basically a maze of connecting paths that take units right up to each other at point blank, or let them march past each other and fight. Units stop when they reach the enemy, and fire at point blank range. Should hopefully look like a Napoleonic era battle, with lasers and tanks. I aim to work on this maybe Thursday this week. Can be uploaded as a challenge for others.

Of course all this might change. It’s a silly amount of work for one dev in an indie game anyway, so adding anything more than this would be truly mental. I see now why so many tower defense games are so simple.

Minimaps and forecasts and…

There are so many flavours of tower defense.

I haven’t seen another TD game with a minimap yet, but I’ve seen them (like Defense grid) with a ‘forecast’  GUI that shows you what is approaching. I quite like the forecast bit, because it creates an emotion of panic or dread, and emotion is vital to games. I haven’t decided to implement a similar feature yet (and anyway it doesn’t matter for attackers), but I am intrigued by it.

Minimaps aren’t normally required because TD maps are often small, but mine are big, and I think a minimap is very handy, especially if you have a big screen and can afford the real estate. Plus, the minimap will toggle on and off anyway, so it would be silly not to put it in, as it’s all coded etc.

GTB has fog of war, so you can only see X pixels radius around your units. I like this, I like it a lot, but again, I don’t see it in other TD games. My variety is a constant FOW, so exposed areas return to shrouded entirely once the unit that illuminated them dies. I like that too, but YMMV. Right now you can toggle it off, but that may change. Maybe I’ll force it on when playing challenge maps.

GTB has instant building, so far…. I may change this. I know that it’s a big part of some TD games that you need to plan ahead and get those towers built before the enemies get close. I’m not sure whether I want to add a construction delay or not. Possibly….

I’m pretty sure there are a thousand other decisions like these, and as with all decent game design, you can never really know what the right decision was until you have implemented both ideas, tried them a lot, and asked a few opinions. Obviously that takes extreme time, and extreme effort. I’m beginning to see that having a nice spangly engine with cool explosions and effects is only a small chunk of making this game…

Some of todays achievements!

An edited list of stuff I checked off my list today:

  1. Added the ‘100,000 copies sold’ text to the GSB website.
  2. Implemented the new menu/GUI (non-battle) music for GTB.
  3. Carried out a major rethink and rebalancing of the way weapons work in GTB, with some research, and a lot of code changes.
  4. Changed the way the AI accrues supplies in ‘classic’ TD mode. It now gets them over time just like the player.
  5. Implemented new green grassy textures.
  6. Checked the performance of the new AI code.
  7. Changed all weapons so there are more shots, doing less damage per shot, and longer durations for beam lasers.
  8. Added a new, obvious drop-unit effect to show when the AI has placed a new turret.
  9. Made fog of war an option, at least for me when I’m debugging, and probably for singleplayer too.
  10. Fixed bug where the AI kept trying to put new troops on top of existing ones in a trench.
  11. Fixed bug where the AI never replaced destroyed turrets.
  12. Managed to not get sidetracked into finishing off the ships for the GSB ‘parasites’ expansion :D

Not bad for the first day back after holidays.  I also riskily (some might say) threw some of my savings at the stock market buying shares in renishaw, a company I’ve bought and sold before, whose profits just jumped, and yet the share price dived 10%. That looked like a buying opportunity to my eyes. Fun fun…