Combat Simulator Update (A look on iterative design/prototype)
I've made a lot of progress with the combat simulator and I wanted to take the time to validate the current direction.
I figured, why not share this introspection in case this could benefit anyone...
At first, the prototype was a very simple system where ships would move towards and/or fire at the closest enemy.
Ship rotation was automated (would "wrap" in the right angle") and move direction alrogithm followed the straight line logic.
This approach was sufficient, because our intent was to have a mechanically-efficient way to determine outcome in a deterministic combat system. "Appearance" wasn't really a factor, and we just wanted players to be able to gauge the outcome of a fight based on their previous experiences.
Different AI patterns (movement)
In an effort to make the outcome less predictable and insure that play experience was a factor in figuring out the outcome of a fight, we've attempted to modify the movement AI pattern in various ways.
Two interesting behaviors stood out:
1 - Stop 'n Go: move into firing range, and idle while able to fire. Then, move to the next target and so on.
Mechanically, this answered all of our needs, and was efficient.
2 - Continuous Chase: Ships wouldn't stop, and would adjust their helm in "orbit-like" manoeuvres around their enemies. The result was close to "fly-by" sequence as per modern day air strikes, and similar to a lot of sci-fi space battle games.
Though it reinforced the theme, it didn't add much depth to strategy per se.
For the time being, this mechanic has been shelved (for later use?).
Though it introduces a bit of uncertainty and puts more importance on a ship's manoeuvrability, we're still not sure the added complexity (and visual confusion) adds enough to the depth of the simulator to keep it as is.
In an effort to allow players clear access to the "numbers" behind the game and help them learn from the outcome of each battle, we've added some feedbacks:
1 - A life gauge so that players can track the damage delivered to each ship.
2 - Floating numbers that represent damage dealt by each projectile, which helps determine the relative strength of each projectile, and establishes a relationship with the gauge to let players know how "resilient" a ship is.
Up to that point, the game had assumed that each ship would only have one weapon (we had randomized range, firepower, rate of fire, etc.)
As we refactored the system, and created a Weapon Component Class, we were able to "attach" these weapons much more easily to different ships. We were then able to have many weapons per ship.
That was a game changer in that we could shift the AI of a ship across its component. For example, the ship itself (later, the engine component) would determine where to move, based on the optimal firing range of the aggregate of its weapons systems.
Then, each weapon system would individually determine the "ideal" target from a list of targets currently in range.
This started adding a lot of depth where we could see drastically different overall AI (move and attack) depending solely on which weapons we would put on board. The choice of NOT putting a specific weapon also created interesting scenarios.
For example, as can be seen in the video above, all weapons try to fire at the "weakest" enemy (lowest hp) that is within range. For short ranged weapons, this is generally the same target as the one the engine use to move towards, but for missiles with longer range, this allows them to provide support firepower to distant areas of the combat.
Fighting off the "weakest" is desirable most of the time as it can contribute to reducing the opponent's overall firepower more quickly and reduce the total amount of damage taken by your ships over the course of the fight.
As a result, a ship with JUST missiles can provide support to a number of fronts, all the while staying back, but a ship with missiles AND cannons will put itself in harm's way, fighting its vis-a-vis with guns, all the while lending its firepower to distant targets. Depending on the relative resilience of that ship, either of these may be preferable to optimize damage output. The synergy between these two independant AI systems seems to be fertile in emergent strategies.
There are still a lot of missing elements to this simulator, and we're still iterating on that, but we believe there's enough here to criticize on. If you have suggestions, please do not hesitate to jump in and provide us with much welcomed feedback!