Feedback and some easy gameplay mechanics suggestions


#1

I bought this game about two weeks ago and I’ve been playing and modding it ever since. Kudos for an awesome concept well executed :slight_smile: It’s kinda amazing how close some other games get to this concept (like Star Wars Empire at War), but sometimes less really IS better. In this case, less control. And despite being 2D, the graphics look great AND it runs well on my crappy machine! I also love the intrinsic modability of the game.

With all that said, there are plenty of issues with the game. The UI, while not bad, is a bit clunky. Balance issues and bugs abound, which is not surprising for a beta. But most of that stuff is easily fixable - as bug fixes and/or user-modable tweaks here and there. What I’m going to talk about are gameplay mechanics that are flawed and can’t be fixed with user tweaks, and require some work on the developer’s part. I’m going to focus on gameplay changes in two categories that I think should be relatively simple to implement, yet have a broad positive impact on gameplay.

1) Armor and shield penetration/resistance

A good concept that introduces a lot more strategy into the game, differentiating different modules and hull classes. However, it makes the game a bitch to balance with. If a weapon’s penetration is greater than the resistence, it always get through. If not, it doesn’t except for a very small crit % chance. It’s binary - nothing in between. It’s like balancing on a pin. It results in extremely hard counters (currently, a weapon with 24.1 shield penetration is much more effective than a weapon with 24.0 penetration since the fast recharge shields have 24.0 resistance) that are incredibly fragile with future tweaks.

With shields, you have a fixed resistance that never changes. Armor is a different story. It’s armor value determines both armor strength and armor resistance (“damage absorbable” and “average armor”, respectively). When armor strength goes down, so does armor resistance. This is obviously much harder to balance. It’s one of the reasons why fighter spam is so effective. That’s not necessarily a bad thing, but it does make the armor resistance only useful against fighters alone. (A cruiser can have some armor repair modules to keep up resistance, so although fighters will eventually prevail with their crit % chance, it gives the cruiser time to survive while the fighters are picked off one by one.) Armor resistance barely makes a difference against a combined force of fighters plus something that can melt away armor decently, or rather against anything that might have trouble against armor resistance combined with a laser frigate/cruiser to grind the armor away. Any armor resistance is practically useless on frigates, since it’s too susceptible to crit chance from other frigates and fighters and is useless against cruiser-class weaponry.

This is how the manual rationalizes resistance: “Think of hitting a watermelon (low to average armor) with a tennis ball (low penetration power) where not much happens, compared to firing at the watermelon with a high penetration cruise missile which results in impressive cabin splatter Pollock style and finding seeds in your hammock for months to come.” But what about the case of something in between? Like throwing a baseball at said watermelon. Chances are, you’ll make a dent. Which leads to my suggestions.

Suggestion 1: Change resistance so that the damage received follows an S-curve based off penetration and resistance, rather than an abrupt no damage to all damage jump. An sample formula you can use to achieve this: net_damage = damage/(1+e^((resistance-penetration)*11/resistance)) where e is Euler’s number. Here’s what the graph looks like with damage=20 and resistance=50. This shows that at penetration=50, 10 damage (half damage) is dealt, while at penetration=40, only 2 damage (10% damage) makes it through. I’m scaling it so that the higher the resistance, the larger this variation range, e.g. for a resistance of 100 and penetration of 80, again only 10% damage makes it through.

Suggestion 2: Like shields, armor should have separate mostly independent values for strength and resistance, instead of an armor resistance that’s based directly off armor strength and hitpoints. I say “mostly”, because it does make sense for damaged armor to have both lower strength and resistance, but they shouldn’t be directly correlated like how it is now. This way, you can have actual differences between “ablative” and “superdense” armors, with the former having low resistance (but can still have high strength - ideal against lasers) and the latter having high resistance (but can be low strength). There are all sorts of ways armor can be revamped with this in mind, but keeping with the theme, I’ll keep this simple. Specifically:

a) Give armor distinct strength and resistance values.
b) Have resistance scale with strength in battle so that at strength=0, resistance=1/2 max resistance. Here’s how the graph looks like with max resistance=60 and max strength=300. (The x-axis represents strength, while the y-axis is resistance.)
c) Change “average armor” into “armor effectiveness” that also scales with (total armor/total hull) but acts instead as a multiplier to armor resistance and will never change in battle. It should follow a logarithmic-like curve, where higher armor/hull ratios net diminishing returns, such as this curve where the x-axis is the armor/hull ratio.

Suggestion 3: UI improvements. From the GUI, it’s far from obvious how shields and armor work and what their current status is in battle. If a shield gets knocked out, make the shield module in question a different color (maybe yellow, or blinking red), and color the corresponding portion of the shield bar red. For armor, there should be some indicator displaying armor resistance, not just armor strength.

2) Engine-less ships and ship movement in general

It’s well known that cruisers without engines actually have a great advantage over cruisers with engines. The current solution is to have missions that require at least one engine. I say that doesn’t go far enough.

Suggestion 1: Make engine-less missions the exception rather than the norm.

That’s not to say that engines are great as they are right now. When it comes to cruisers, speed hardly makes a difference. 0.05 vs. 0.12 speed seems to make practically no difference against enemy weapon accuracy. In fact, the main concern is that all the ships travel at the same speed to stay together as a group (a “loose” formation).

I can’t think of a good solution to this without mucking too heavily into core game mechanics. So I have a “workaround” suggestion instead.

Suggestion 2: Missions that require engines should also require a minimum ship speed. Having a dinky engine on some super-heavy cruiser should not suffice. Not fast enough? Well too bad, you missed the battle and the Death Star has already blown the planet to smithereens.

Alternative suggestion: Make a new type of slot that can only accept engine modules, and convert some engine “hardpoints” into that slot type. I think this is the more ideal solution, but it’ll probably require for dev work.

For frigates and fighters, speed is not a problem. But there’s still an issue: how they move. Notice how frigates with “keep moving” and fighters move. Fighters have trouble tailing other fighters - they can’t slow down to keep in range, and even if they did, they become more susceptible to enemy fire. This leads to the typical “angry hive” pattern of dogfighting that we see. The only reason laser fighters can even hit anything is because their weapons are turrets rather than fixed hardpoints.

Meanwhile, frigates tend to arc right into the enemy, somewhat defeating the purpose of the “keep moving” order. The “keep moving” order and overall movement behavior can surely be improved, but that’s not the only cause.

IMO, the best solutions would be to actually add a “tail enemy” order to fighters and somehow allow ships to strafe, but I figure that would take too long to implement. Instead I’ll focus on turn rate and basic movement behavior.

Suggestion 3: Add a new field to engines: side thrust (and rename “thrust” to “forward thrust”). The higher the side thrust to weight ratio, the higher the turn rate. Note that missiles also have a “turn rate” field, but it’s not directly applicable to ships, because ships can have multiple engines and variable weight. Even if this doesn’t achieve the net effect I’m looking for, it does add another modding variable I can play around with :slight_smile:

Suggestion 4: Improve movement behavior so that a ship with “keep moving” will take into account its turn rate when deciding when to turn away from the enemy. Currently, I believe that once a ship reaches “order max range” from an enemy, it starts to turn away. That should be changed to: once a ship reaches “order max range + turn radius” from an enemy, it starts to turn away.

I have a bunch of other suggestions, but I think this post is long enough and some suggestions would be more fit for an expansion pack (like carriers, time-based reinforcements, non-turret weapons, more scifi movie-like dogfighting behavior, and so forth). Other than the “keep moving” order, there is obviously plenty of room for improvement for the order system, and I think there are enough other threads that discuss them.

I’ve limited the above suggestions to what I believe would be simple. As a programmer, I know that the following tend to be relatively simple: applying some math function, or making something that was fixed in value now variable, or adding a new feature that’s very similar to an existing one. Basically anything that shouldn’t require refactoring or making completely new classes or whatever.

Thanks for reading :slight_smile:


#2

I like your suggestions for the most part.

The current way shields and armor works makes certain weapon combinations FAR FAR superior to others. Beams do NOTHING against cruiser shields. The resistance is just too cut and dry. All or nothing, as you said.

This game rocks, and I’d like to see it rock harder :slight_smile:


#3

Thanks for taking the time to give good worked out suggestions. I like most of these suggestions. I’m just a little concerned that the armor change would add unneeded complexity. Maybe armor shouldn’t have resistance at all. If a shot hits the hull, there should be at least a little damage. The purpose of armor should just be to buy time for other systems to not take damage. Just make them have more hitpoints to balance this. From a game play perspective, along with your other suggestions, this would prevent some stalemate situations. A single fighter will eventually take out an unshielded (or shield bypassed) target if its not destroyed.


#4

I was just trying to make armor more similar to shields, in that each is treated independently (for the most part). The main differences between them would then be:

  1. Shields have infinite recharge, but once knocked out, are gone permanently, while armor requires a separate module with finite repair units, but can be restored even when knocked out.
  2. Armor’s resistance scales with strength (like how it is now, except less extreme) and the armor strength to hull points ratio (also like how it is now)

Plus, having separate strength and resistance values allows the introduction of different types of armor, similar to fast recharge shields vs. multiphasic shields.