Hey everybody ! We’re just back from our end-of-year vacation and wish you a happy new year. As you can imagine, development has slowed down in the past 2 weeks, but I started to work on a bunch of experimental changes that were on the todo list for a while.
The interception algorithm was redesigned. The old algorithm wasn’t anticipating well enough where a moving target would lead and lagged behind. The new algorithm takes that into account. You can see the difference in the following picture ( click to zoom in ); the red object is moving from top-right to top-left with a constant velocity, and the green object starting on the bottom right tries to intercept it. As you can see, the new algorithm immediately leads towards the future position of the red object and intercepts it twice as fast as the old algorithm…
The interception code is currently in use in various systems, so all of these will benefit from the improvement: bots AI, flight assist ( formation modes ) and missiles/torpedoes.
On the topic of AI improvements, I’m currently working on rewriting the bots AI. Battles ( especially the large ones involving 100+ targets ) are too chaotic. Now, chaos in battles is somewhat expected and desirable, but our AI code basically ignored any teammate. The new AI will take teammates positionning into account. For this, I took inspiration from “boids” algorithms. If you don’t know what a “boid” is, just google the term and look videos for “flocking simulations”. Here’s a video where you can easily see what it looks like:
Those algorithms are used to recreate the natural behavior of animals ( or fishes underwater ) flying together as a crowd from a set of very simply physical rules.
My goal is to have battles form structures: ships flying together, in formation and covering for each other, and only breaking formation during dogfights with a specific target. Then regrouping after the fight is over. The result is that we should see “clumps” ot ships flying together much more frequently.
Another important change that I’m working on is having a clear start / end to battles; At the moment, battles randomly start all over the world without any clear indication on what’s happening. In the next update, the AI commander will accumulate credits on a per-location basis, instead of a global pool, and schedule fleet battles accordingly once a credits pool for a given strategical insllation target is reached. Once scheduled, a timer will appear, letting all the players know that a battle will start at location X in 5 minutes. The AI will also stop reinforcing once credits are exhausted, resulting in a clear loss for a side after a while. If I have time, I also want to give the ability to bots to attack enemy structures… which as you can imagine, will cut down the match duration by a lot.
Flight model experiments
The next patch will also introduce a bunch of very experimental changes related to the flight model and weapons range. Before Christmas I tried to reduce ships accelerations by half, but didn’t like the result ( it felt like there wasn’t enough difference in acceleration power between some ships ). I settled on a reduction of ~20% for the interceptor, ~15% for the bomber and ~10% for the corvette, and no change for the capital ships, as a starting point for the new patch. I also reduced accordingly some of the weapons projectile speeds, and introduced a “soft” cap speed for all the ships ( basically, the target / throttle maximum speed cannot exceed 10 seconds of acceleration. This makes more sense than a bar that goes up to 50 km/s, which nobody used ). Note that you can still go over the cap temporarily by manually accelerating.
There is still a lot of work to do for the next patch, so I’m not sure when it’ll be released, but we’ll probably have a better idea next week.