Automated Shield Fielding
While it is a bit of a delayed response, our last encounter with the Agamemnon brought some interesting insight to my eyes. With the pair of the Blaze and Agamemnon being such comparable vessels, the point was stressed that a large part of the victory would lie in overall effeciency of resource usage, as shown by our swapping race to charge an assault and divert properly to shielding in response. Brute force of technology has often compensated in the past in place of effeciency, but when we really need to start cautioning ourselves, the desire for a better system sparks.
With the assistance of a designated sensors operator in the flow of combat, several heuristics can be added to an encounter that will enable our shielding generators to predict and react to incoming fire. Basic operations breakdown revolves around the following.
public class ShieldingField{    public ArrayList sensorarray;    public Hash generator;    public Hash pressurepoints;    public ArrayList trajectories;    public int assaultcount;    public boolean combatstatus;    public static final int RESETDELAY = 2;    //Constructor method for field apparatus.    public ShieldingField(){       generator = System.import(BoG.System.genlist);       sensorarray = System.import(BoG.System.sensor);       assaultcount = 0;       combatstatus = false;       trajectories = ArrayList.new()       pressurepoints = Hash.new()    }    //Finalize preparation and apply busy waiting.    public static void main(String args[]){       for (Iterator sense = sensorarray.iterator(); sense.hasNext();){          assaultcount += sense.current.hostiles();          trajectories.put(sense.current.coords());       }       //Ready status automatically when sensor verifies 1 or more hostiles.       if (assaultcount > 0){          combatstatus = true;       }       while (combatstatus = true){          FieldShift();          if assaultcount <= 0{             combatstatus = false;          }       }    }    //FieldShift algorithm, allows for input of user-driven heuristics via    //personal monitoring.    public static void fieldShift(){       Timer delay = Timer.new(); //Timer to track current point       delay.start();       for (PointListener listen = System.import(sensors.impact.coords(); listen.active()){          pressurepoints.put(listen, coordinates);       }       for (point p in pressurepoints){          if (p.impact() > threshold){             p.orient();             //Resource orientation function centered around point, dependant upon surrounding points.          }       }       delay.end();       //If point have been inactive for given delay period, release its resources.       if (delay.time > RESETDELAY){          p.releaseorient();       }    } }
Loading this apparatus causes the shielding systems to fall into an infinite adjustment loop weighed against incoming impact points from hostile fire. An orientation function is applied wherein our combat database actively tries to match incoming sensor feed to storage past occurrences within. If this is unsuccessful, it falls back upon assumed trajectory of incoming fire, and if that proves a false assumption, it then finalizes its fallback on a reaction-based shifting placement of shielding strength. As a pressure point is struck with increasing impact, its individual priority field rises in turn and tries to verify a few key features about repeating strikes.
- Outside trajectory influence (change in aim or focus).
- Radius of fire per each source.
- Rate of fire per each source.
If a shielding function can verify these three features, it can adapt accordingly to future assaults before they even impact. Consider, for example, a pulsing photon cannon that fires once ever 2 seconds and strikes the shields two feet to the left from the original strike, then four, then six. How likely does it become, then, that the next shot will be eight feet from the original, two seconds later, with equal force as the last four? The answer is, very likely. Likely enough in fact that on average is becomes far more beneficial to lower shielding in all prior points, conserve energy for a 1.90 second downtime, and boost accordingly in the predicted location coming.
At first, allocating resources on shielding in a way that lowers others more on average than some might seem risky. Keep in mind, however, that if gain from correctly predicted assaults is high enough that it conserves a fair store of energy, the ‘low points’ are free to average themselves upwards in response, at times becoming even more stable than if the overall system was evenly distributed. If predictions for an incoming source do prove unreliable, a boolean marks the assumptions as unreliable and will default to even distribution. On top of that, when rate of fire vanishes for a specific period, trajectory assumptions will be reset to prepare for a new, unbiased location of assault.
Each verified source is tracked individually and when enough heuristics are proven reliable after the course of the conflict, they can be hashed and stored back to the combat database for use in a future encounter.
This process is, of course, not without its limitations or even its vulnerabilities. Its purpose is to mainly serve as an automated response to predictable fire. Erratic sources of fire such as mechs with humanoid capable variance in their aim can abuse the system if they recognize the effect (though unlikely from a pilot’s perspective, an observed afterthought in analysis) more so than something like a flight-fighter stuck on line-passing manuevers. While no process is perfect, however, a system like this is likely to improve overall gain. In cover of the system’s weakness, as mentioned before, a sensor specialist giving a hand-sweep of all incoming inputs can filter and remove targets and sources that should be ignored, as well as offering usual hand-controlled division of resources during the flow.
I’ll be spending a chunk of our downtime running simulations of different vessels running this system against a wide assortment of scenarios before devoting any funds to implimenting the potential, but I’ll be demonstrating results as I go in the meantime.