Sunday, February 21, 2010

1.73 Release

1.73 is released today.  There is only one major change.

Network games now default to 30 frames per second.  A long time ago I decided to go with 60fps to make it a much smoother experience than the original game, but I didn't reckon for high bandwidth needs at the time.  For a long time I've been meaning to make this change, but it took a lot of motivation because of how much code I would need to modify.  Bear in mind that, since this is an expansive code update, there WILL be bugs as a result of it. :)

The game won't "appear" to run any slower as I've modified all the calculations in the game to account for the lower frame rate.  It will look a bit choppier but you won't notice it after a short while.

Also due to this change, I had to re-write some nagging "loose ends" in the code.  It was actually a good thing as it forced me to resolve some older issues.  Carryalls should "wiggle" less often now and generally behave more smoothly, and units should NEVER be unable to hit their target due to weapon speed and distance (occasionally before you might have seen a Quad firing at an adjacent Infantry and never being able to hit it, for instance).

Please let me know in the forums how this affects network game performance compared to the previous version.  My hope is that it will be quite a noticeable improvement and may even correct some sync loss issues.

Thursday, February 11, 2010

1.72 addendum

Hey everyone,
I forgot to list two updates present in 1.72.  One of them is major so I'm making a new post to draw attention.

  • Buildings WILL NOT COMPLETE if they are within any enemy unit's weapon range (except Flak Trikes).  Idea is that construction crews cannot be forced to work under threat of receiving gunfire.  Purpose is to stop building spamming
  • Fixed bug with detonations and unit kill counts; also added cratering

Wednesday, February 10, 2010

1.72 Release

Changelog since 1.71:

  • Foot Soldiers are now invisible to enemies while in Crags.  They will still be attacked as normal by enemies in range
  • Corrected bug with range bonus for Foot Soldiers in Crags (now applies properly in all directions)
  • Trading Posts are now visible to enemies while taking damage
  • Trading Posts no longer count for proximity when building new structures
  • Reduced MTP hit points commensurate with other LVs
  • Fixed bug preventing AI players from building Foot Soldiers at tech levels 2 and 3
  • Fixed bug allowing players to queue extra flyers for HTFs that were not yet completed
  • Fixed bug with Ornithoper weapon sound effects
  • Fixed bug with Merc purchase costing nothing for clients
  • Fixed several bugs with small weapon fired from buildings
  • Fixed bug causing "base is under attack" messages much too frequently
Considering many big changes for next release.  Might be a while.

Tuesday, February 02, 2010

1.71 Release

Changelog since 1.70:

  • Major balance changes
    • Light Vehicle health reduced by 40%
    • Infantry health reduced by 50%
    • Rocket Launcher damage reduced by 50% against non-buildings
    • Siege Tank ROF increased by 15%
    • Above changes have the following ramifications:
      • Troopers are more powerful compared to lighter units, hopefully more valuable
      • Heavy Vehicle combat effectiveness against Light Vehicles is improved
      • Lower Infantry strength only matters against units that do not kill them with one shot, i.e. other light units, so they are equalized against LVs
      • Rocket Launchers will now have a much harder time against other HVs, but otherwise remain unchanged
      • Siege Tanks have greater damage output and hopefully are valuable enough to choose over Combat Tanks sometimes
  • Added Skirmish option that does not start any network functions
  • Added Tech Level to game options
  • Added 96x96 map
  • "W" key now selects idle harvesters instead of Tilde/Grave (should help foreign keyboards)
  • MCV now has Sight range of 8 (was 2)
  • Mercs now group together in formation
  • Fixed bug with halting construction giving no return
  • Fixed bug enabling dropping more than one unique building
  • Fixed bugs with Mercs, Alliances, and Starport pricing for network clients
  • Removed popup window when exiting game

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

Playtime

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.

Saturday, December 19, 2009

1.70 Release

One last attempt to make people happy enough to make a donation for the holiday season. I'm leaving in a few days to spend three weeks overseas with my loved one, and every little bit will help.

Last update (definitely) for at least a month.

Changelog since 1.69:
  • All players must first go to the Join room, even to create a new server. This is needed I think to encourage people to be aware of other games in progress
  • Network game names now go by the host player's name
  • Wiggle missiles! A forum member brought this up recently, and while I didn't go as far as the old game where some missiles could do a complete U-turn, missiles from tanks now follow a random arc. As a nice side effect this creates the damage probability distribution I was looking for (more direct hits but also more wild shots)
  • Wormsign intervals are now statically determined by the following pattern: 1-2 minutes Wormsign, 3-5 minutes spice production
  • AI have received many improvements in reactionary intelligence and base management
  • Increased efficacy of Mindgas effect
  • Homing bullets now correctly angle to follow the target
  • Fixed bug with Merc and Starport orders causing bad queue creation or otherwise failing
  • Fixed bug with Death Hand icon not highlighting in HVF menu
  • Fixed bug with units remaining on Retreat permanently
  • Fixed bug with Carryalls rarely freezing when trying to pick up a unit marked for death
  • Fixed bug with Stop orders not syncing over network
  • Fixed bug with Mercs accidentally going on Airlift orders causing strange behavior
  • Fixed bug with Death Hands being able to move over non-combat tiles (such as Refinery dock)