Since the last update (formations and optimizations to unit movement) I’ve been working on optimizing and generally improving all other aspects of combat in the game. With the new projectile code, I’ve been able to drastically increase the number of projectiles the game can handle, leading to a re-design of several of the old units to take advantage of this. (including adding a rapid-fire Gatling laser cannon to one of the low level frigates) I’ve also been experimenting with dynamically adjusting graphics settings to turn off some of the more expensive graphical effects when especially large battles are being displayed.
(better game engine = more ships and more lasers)
These improvements are especially important because, in Empyrean Frontier, the combat system is mostly based on projectile attacks with realistic ballistic physics. There are no traditional damage types or armor types, instead the size, accuracy, rate of fire, base damage, and number of ships in a group determines which units are able to counter which other units.
There are a few interesting side effects that come from this kind of projectile based system. The main reason why I like it is that it provides a natural incentive to spread out your ships and surround the enemy forces, rather than vice versa. Projectiles that miss their intended targets are still very likely to hit nearby units when they are tightly packed and there are overlapping lines of fire, whereas projectiles are likely to miss entirely if the units are spread out. The army with the better positioning tends to have a massive advantage, so the tactical aspect of RTS army control will be extremely important in the finished game.
At the most basic visual level, it’s important that weapons tend to act as you’d expect; high rate of fire weapons are good against many small units, while a large single projectile like a tank shell is more efficient against larger ships. To improve readability and decrease the learning curve, weapons are also being color-coded according to their rate of fire and damage output.
Green = anti-fighter
Red = anti-frigate
Yellow = area of effect damage
In addition to the back-end optimizations, I’ve also been working on updating the unit models for all of the ships. At the moment, there are 8 different kinds of combat ship: 2 fighters, 5 frigates, and 1 cruiser. Progress has been slower than I’d like, but as I still want to release an alpha and demo as soon as possible, it was important that the ship models were updated to be more professional looking. Apart from looking nice, which hopefully they do, each kind of ship needed to have a distinct style in order to easily distinguish between different types. Therefore, each type of ship has a fairly unique shape and groups of ships also display a semi-transparent symbol specific to that type of unit, so that even at a great distance, the player can tell what kinds of ships are active.
I’ve also been finalizing the unit roles and balance of the different unit types. Each ship has a specific combat role and is strong against some compositions, but weak against others. The basic idea behind most of the units should be pretty familiar to RTS players. Fighters are generally light harassment units, like very fast infantry, Sentinel frigates are made to counter fighters, Destroyers are the main tanks, and so on. One of the more unusual units (see video above) is the Flying Saucer, which is now armed with a medium strength laser and a tractor beam that can push or pull enemy units. My goal with this ship is to emulate the “pikemen” style of units you tend to see in medieval or ancient RTS games; the flying saucer can play a support role and pull in and focus down individual units, but its greatest strength is its ability to counter high damage, close range units like bomb frigates, by simply pushing them away and preventing them from getting in range. The full list of current units (and I do plan on adding more in the future) is presented below, with basic data on each unit’s strengths.