Wednesday, January 20, 2010

Prepare for a monologue on combat tactics

Every RTS game is a series of approximations and compromises.  In reality, if a bullet manages to hit a soldier, or a tank shell even glances off a hummer, the target is likely a casualty; what makes battles take a long time is that getting that one hit can be extremely difficult, and there are lots of targets.  Obviously in an RTS game we can't have units dying so quickly from a single hit, both because they take a little time to build, and because people tend to like the ability to move units around and use some control tactics to try and improve their chances.  I have tried to introduce more realism to Dune 2 by adding things like threat determination and extra damage for suicidal movements.  I wanted to reduce micromanagement while still having combat results "make more sense". For instance, small bullets with rapid fire are best against infantry, while heavier rounds should be needed against tanks.  The finer details of combat have to be approximated, such as taking cover, distractions, sensory equipment, etc, without cluttering the information or demanding too much from the player.  The general idea is to get to the same end result, where this unit beats that unit, that unit beats this unit, and there is a logical reason for each type of unit to exist.
To this end I've been amusing myself lately by running metrics and tests of various scales on the different types of units in Dune 2.  For the most part when I designed TGP, I've tried to stay true to the numerical values of the original, such as hit points, damage, rate of fire, speed, etc.  I've taken liberties where needed in order to make special units stand out or to help along the general effects of combat I was looking for.  But after my recent tests, I'm thinking about making some big changes.
For instance, one Tank can defeat one Quad fairly easily.  But a Tank is also more expensive than a Quad, slower and shorter-sighted.  So it should have greater combat potential to a high degree.  Quads are fast and should be more difficult to hit, but even so, a Tank should win handily.  However this isn't quite what happens; Quads based on their stats from the original game are undervalued by a fair degree when you take into account the way my version uses weapon accuracy to determine hits.  In addition, because my units think the closest unit to them is the greatest threat, when you take 9 Quads against 6 Tanks (equal in value of credits), the Quads often win because of their shuffling around and distribution of damage.  When I ran tests for other units I came to the same conclusions: currently, having greater numbers is a strong advantage in almost all situations of equal value, and many units feel out of balance in the first place.
So, I am considering several ways of making big changes to combat in TGP.  Those of you who are used to my game being different from other RTS games will know what to expect; this game won't start looking like Starcraft or other games any time soon.  But I can say one thing for sure, which is that when I am done, the numbers won't match up much with Dune 2 any longer.  The end result will be the same and hopefully improved.
Here's a listing of my recent results (in groups of equal credits, usually 1800) and what I think should be changed:

  • Infantry > everything except Rocket Launchers
    • Should suffer more against LVs and Troopers
  • Trikes/Quads > everything except Infantry
    • Should always lose to Tanks and have more trouble against Troopers (but still do well)
  • Troopers > Tanks only
    • Should be better against LVs and equal to Infantry
  • Tanks > other Tanks, Rocket Launchers, Buildings
    • Should be better against LVs
Obviously results will be different when comparing 300 credits of units against each other, as opposed to 1800, because of the advantage of numbers.  But I can't have a situation where a player could just continue to mass more and more of the same units and gain more of an advantage.
I'm going to start experimenting with theoretical "200-credit units".  I'm going to take a typical Quad and put it up against a modified 200-credit Tank, and a 200-credit Trooper, etc., and then start building tables on what happens versus what I think should happen in all the different combinations.  Then I'm going to restore them back to their correct pricing with commensurate stat changes, and try to account for massed numbers as well in equal levels.  For instance, a 200-credit Trooper should be slightly weaker than a 200-credit Infantryman, because it has greater range and speed.  A 200-credit Tank should defeat a 200-credit Quad, but lose to a 200-credit Infantryman.  A 200-credit Siege Tank would be a version of a Tank doing less damage and moving slower, but with a higher rate of fire and greater range.  Plus, I have to take extra things into account like density of firepower; Infantry and Troopers can pack in more units per cell than vehicles and thus can start delivering damage faster.  On the other hand units such as Trikes, with lower density of firepower and low range, gain more of an advantage in high numbers due to their high combat movement and distribution of damage.
I think if I keep thinking this way, I'll be able to accentuate the value of each unit individually when I bring them back to the unit costs we're all familiar with.  So, I think it's time to let go of this part of my desire to stay true to the original, and we'll see what I find out and decide to do in February.

Saturday, January 16, 2010


I ran some history checks at my online database, and saw that Dune 2: TGP has been played from over 2200 unique IP addresses since I started tracking at the end of November, and was played 242 times in the first 20 hours of Jan 16th. That's pretty cool to see. I haven't written anything to tell me how many of those games were network games or not, but I know at least a few of them were, and I see some people signed up at the Steam group as well.
As you may have noticed, I've changed the layout here a bit and introduced ads to the forums. Those of you who donated were marked as Premium members at the forum and won't see the ads; future donators will enjoy the same benefit. The reason for the ads is simple: no one's been donating and money doesn't grow on trees.
I'll probably get back to looking at code soon but motivation's been low and I've been working a lot. Look for an update most likely in February.