VB6 Aurora > Newtonian Aurora

A Dilemma on Interception Mechanics

(1/9) > >>

Steve Walmsley:
I have just encountered a problem that I should have foreseen and I am interested in opinions on how I should resolve it.

In Newtonian Aurora, one of the whole points of the game is the inability for fast moving objects to easily change course. This means that missile guidance needs to be based on intercepting the future position of an object rather than simply moving toward its current position, as in Standard Aurora. So take the example of a missile trying to intercept a ship. Based on a combination of the contact information (which provides the current location of the target, its current speed, its current heading and its current acceleration rate) and the missile's own location, speed, heading and acceleration rate, the missile guidance code works out where the two objects will intercept, assuming constant acceleration. The missile then expends delta-V over time to make the necessary course change, adjusting as it goes. As the target changes speed, heading and acceleration, the missile calculates a new interception point and corrects its course (also taking into account that vs other missiles the other missile may not have moved yet in the current sub-pulse). This is tricky :) but it is working. Now the problem:

The underlying mechanics of Aurora are

a) Advance time by an increment from 5 seconds to 30 days
b) Move objects several times during an increment (using anything from 1 to 60 sub-pulses)
c) Within those sub-pulses, objects are moved one at a time using a initiative system, with all missiles moving after ships.
c) Resolve any interceptions, etc.

This is easy in Standard Aurora because objects can change direction and speed at any time. The problem for Newtonian Aurora is that although the missile guidance code puts the missile on the correct course, unless the position of the missile and the ship happen to coincide at the end of a sub-pulse, the ship moves first and then the missile moves through the path of the ship and passes behind it. This is because the missile is expecting to find the ship at the point in its path where the courses intercept but of course that point could be 2.47 seconds into the increment, rather than 5 seconds. Not a problem in Standard Aurora because the missile would just change course but in Newtonian Aurora the course change is not even close to possible. If both objects were moving simultaneously, or with really tiny sub-pulses, the missile would hit. So without changing the fundamental mechanics of the whole movement system - how do I fix this. I have considered four options so far:

1) Change the interception code so the missile will only aim for a location which the target will be in after an amount of time divisible by 5 seconds. This might cause some slight course swapping and additional delta-V use by the missile

2) Add much smaller sub pulses (perhaps 0.1 seconds or less). However, besides the perfomance implications during the increment, any potential missile hits will have to be calculated before the increment begins so the appropriate fractional sub-pulses can be used. This type of thing is done already on a large scale. The major problem though is that all times anywhere in the program are currently assumed to be integers so I could try changing this but there is a risk of a screw-up.

3) Calculate the closest point of both missile and the target during the sub-pulse, based on their movement paths (this is a calculation of both time and space as their paths may cross but it depends on where they are along that path). Detonate if on target or within detonation range and note the exact time of detonation during the sub-pulse. Then check the paths of all objects and resolve damage based on their distance from detonation at that exact point in time during the sub-pulse (so where was every ship 3.16 seconds into the sub-pulse and how far where they from the blast at that exact moment).

4) Calculate closest point of both missile and target during sub-pulse, as in 3). However, actually detonate the missile that distance from the ship on a direct path from the start location of the missile to the end location of the ship rather than the actual detonation point, then assess area damage based on adjusted detonation location and the position of nearby ships at the end of their movement. The difference between this and 3) is that it will be more obvious to the player which ships were in the blast radius.

I would also welcome any other ideas - apart from "entirely rewrite the way Aurora handles movement" :)

Steve

UnLimiTeD:
Do 3 and 4 work with kinetic kill vehicles?

I think the option of calculating where it will hit, and then detonating it there in the pulse, seems good enough.

TheDeadlyShoe:
If it's going to be a 'close pass' situation where a ship and missile are likely to intercept in a 5s increment (or in a 1s subpulse?) you could game it out as skill-based evasive maneuvers - crew grade/movement initiative/ECM VS thrust and homing ability of the missile. However, that may not really get what you want in terms of determining where the big ol kaboom occurs.  

I favor 3.  4 is more clear but it seems ...futzy? gamey?   Worst case you could generate a graphic for each missile detonation...lol :D

Steve Walmsley:

--- Quote from: UnLimiTeD on December 09, 2011, 03:39:35 PM ---Do 3 and 4 work with kinetic kill vehicles?

I think the option of calculating where it will hit, and then detonating it there in the pulse, seems good enough.

--- End quote ---

Once I solve this for missiles, I will use it for railguns as well.

Steve

Steve Walmsley:

--- Quote from: TheDeadlyShoe on December 09, 2011, 03:42:04 PM ---If it's going to be a 'close pass' situation where a ship and missile are likely to intercept in a 5s increment (or in a 1s subpulse?) you could game it out as skill-based evasive maneuvers - crew grade/movement initiative/ECM VS thrust and homing ability of the missile.

--- End quote ---

These are objects moving at over 1000 km/s so there are extremely few 'close passes' with 5 or even 1 second increments. They can easily miss by 3000 km/s or more. Think of an area of twenty-five million square kilometers. Two objects dash across it from different directions and pass through in less than five seconds. How often will they pass within detonation range, which is maybe one kilometer for nukes and 50-100 km for laser heads.

Steve

Navigation

[0] Message Index

[#] Next page

Reply

It appears that you have not registered with Aurora 4x. To register, please click here...
There was an error while thanking
Thanking...
Go to full version