Author Topic: Missile Hit Optimization  (Read 1722 times)

0 Members and 1 Guest are viewing this topic.

Offline ndkid (OP)

  • Warrant Officer, Class 1
  • *****
  • n
  • Posts: 86
  • Thanked: 4 times
Missile Hit Optimization
« on: October 05, 2010, 04:25:30 PM »
I just did a quick search of the board to see if anyone had already worked on this problem, and I couldn't find anything in-depth, so I thought I'd share my recent computational work.

I came to Aurora some months ago (near the beginning of this year, so I still feel like a n00b), and tended toward creating laser-centric races. It's only since the inclusion of the invaders and some fixes Steve has made that allow me to get farther into a game without hitting constant errors/interrupts that I've really been pushed toward building missiles. And, as someone who often finds computation a relaxing exercise, the various equations related to missile design became interesting to me.

I realized, shortly into my missile-design career, that I was almost always working with a total size, warhead size and fuel size that could be treated as constant... I knew the range I wanted the missile to have (which was a function of fuel and size) and the damage I wanted it to do (which was a function of warhead). Thus, the only real questions to be answered when designing my missile was: what is the proper amount of engine and agility?

I started by approaching this question by rote. I'd make a guess as to the proportion I wanted. Then I'd fiddle engine up and agility down an equal amount. I'd check to see how my hit odds changed. If it was good, I'd fiddle up more. If bad, I'd fiddle down from the baseline instead. Wash, rinse, repeat.

Now, while I like grunt math work, I must admit that I find doing the *same* computational process over and over again with few variable changes somewhat uninteresting. This led me to ask: couldn't I just plug numbers into a spreadsheet? Obviously, I could: hit%, as defined in the missile screen, was a function of missile speed, target speed, and agility. Agility was a function of agility size, agility tech, and missile size.

So, I did some algebraic substitution, and I came to my first (surprising) realization:
Missile Engine Technology does NOT affect the proportion of engine to agility needed to maximize hit%
I was expecting a function where both engine tech and agility tech affected the proportion of engine to maneuver. It turned out that only maneuver tech mattered; engine tech, in essence, just multiplies your chance to hit in a linear way. (For the really-math-inclined, I realized this when I was rearranging the function to solve for Agility space, and got to
V(X-A)(10+MA)/S
where V is Missile Engine Tech value (in points of Engine Power per MSP), X is the total space given over both engines and agility (in MSP), A is the space used for Agility (in MSP), and M is the Agility Tech value (in points of Agility per MSP).
To continue with the math-geek portion for a bit: since the function above becomes a negative quadratic, I could trust that there would be one critical point and that it would be the maximum. Taking the first derivative with respect to A and setting the equation equal to zero, I got:
A = (X/2) - (5/M)
Or, in English, that the space I should use for Agility is less than half of the total engine+agility space I have available, and as my Agility Technology goes up, the closer the amount I should use for agility gets to half the total.

I wrote up a quick google doc that did that part of the math for me and spit out the resulting engine and agility space. For a while, I thought I was done. Until I came to my second realization:
Since Aurora rounds values off to whole numbers, the equation isn't continuous.

Once I realized that, I immediately started in on the obvious next step: how do I fix the equation to cover the rounding problem? At first, I approached it as I had initially approached missile design: manually fudge. I quickly came to recognize that Aurora was doing a fairly simple rounding. So, in practice, I really wanted my missile's total agility to be something .5. My brain started creating rules to get this to happen: for size 1 missiles, get the agility points to end in .5; for size 2 missiles, get the agility points to be odd; for size 4 missiles, get the agility points to be an even number not divisible by 4. In general, I would start with my equation's optimized number, then check the "rounded-solved" values above and below it, and see which was better.

And, repeating my original cycle, I did this for a while, and then decided that I really ought to just refine my equation so that it could do the grunt work for me. That turned out to be trickier than the calculus I used to get the original equation...

To Be Continued... (assuming there's interest)
 

Offline Vanigo

  • Lt. Commander
  • ********
  • V
  • Posts: 295
Re: Missile Hit Optimization
« Reply #1 on: October 05, 2010, 04:49:47 PM »
Of course, you need to consider that for anti-ship missiles, hit chance is not the only relevant number. Higher missile speed makes your missiles more likely to get through enemy point defense, so you have to balance the need for raw speed with the need for higher hit percentages. Countermissiles, of course, are all about accuracy.
 

Offline ndkid (OP)

  • Warrant Officer, Class 1
  • *****
  • n
  • Posts: 86
  • Thanked: 4 times
Re: Missile Hit Optimization
« Reply #2 on: October 05, 2010, 04:56:49 PM »
Of course, you need to consider that for anti-ship missiles, hit chance is not the only relevant number. Higher missile speed makes your missiles more likely to get through enemy point defense, so you have to balance the need for raw speed with the need for higher hit percentages. Countermissiles, of course, are all about accuracy.

Against enemies using Anti-missile missiles, that does provide another factor to consider. Against ships using beam defenses, to extra point to consider is mostly the speeds at which the enemy may get an additional round of fire if moving directly away from incoming missiles. But if, for example, your hit% is 50 when you go all speed, and 100 when you maximize hit%, then the enemy would have to be able to shoot down at least half your salvo for it to be better to go with the all-speed variant. I can certainly do another analysis that tries to take into account enemy speed, enemy weapon range, enemy hit%, and number of shots.
 

Offline UnLimiTeD

  • Vice Admiral
  • **********
  • U
  • Posts: 1108
  • Thanked: 1 times
Re: Missile Hit Optimization
« Reply #3 on: October 05, 2010, 05:27:51 PM »
There was, somewhere on this forum, I can't find it anymore. Nor do I know who did it.
I'll attach it here, but I only got the Excel version, maybe it is convertable?
Rename it to .zip to unpack it.

As you'll quickly see, at higher tech levels high hitratio might not be that important anymore.
When you can easily get a missile to hit a target moving at 25k, no enemy line ship will likely move faster, and speed becomes everything.
Also, it is easily possible on anti-missiles to have the optimal hitratio at a point where the missile is slower than it's target.
 

Offline Vanigo

  • Lt. Commander
  • ********
  • V
  • Posts: 295
Re: Missile Hit Optimization
« Reply #4 on: October 05, 2010, 05:58:13 PM »
Against ships using beam defenses, to extra point to consider is mostly the speeds at which the enemy may get an additional round of fire if moving directly away from incoming missiles.
How do you figure that? Raising the speed of your missiles directly reduces the accuracy of enemy point defense, both missiles and beams.