Author Topic: Python based MissileOptimizer  (Read 3715 times)

0 Members and 1 Guest are viewing this topic.

Offline imaginary (OP)

  • Able Ordinary Rate
  • i
  • Posts: 3
  • Thanked: 3 times
Python based MissileOptimizer
« on: June 26, 2020, 12:53:29 AM »
Hi all

I wrote a small python script for missile optimizations in case someone is interested: https://github.  com/jjermann/aurora4xMissiles
The optimizer really tries to check all possible missiles and allows arbitrary sorting of the results.
« Last Edit: June 27, 2020, 12:39:40 PM by imaginary »
 
The following users thanked this post: Dutchling, Lemmingwave, skoormit

Offline Dutchling

  • Lt. Commander
  • ********
  • Posts: 200
  • Thanked: 5 times
  • Baby Snatcher!
Re: Python based MissileOptimizer
« Reply #1 on: August 11, 2020, 01:48:25 PM »
Thanks, this looks like a great tool!

I have one issue though, it suggested a missile with 330% Engine Power Modifier despite me having set
Code: [Select]
calcContext.maxPowerFactor = 2
See this image:


Am I doing something wrong or is this a bug?

Also, I have suggestion: currently it looks like you can set a range for damage with only a set size. However, due to square damage being optimal, it might be useful to allow the user to choose for a set damage and a range in size.
 

Offline Iceranger

  • Registered
  • Commander
  • *********
  • I
  • Posts: 391
  • Thanked: 229 times
Re: Python based MissileOptimizer
« Reply #2 on: August 11, 2020, 07:21:38 PM »
Thanks, this looks like a great tool!

I have one issue though, it suggested a missile with 330% Engine Power Modifier despite me having set
Code: [Select]
calcContext.maxPowerFactor = 2
See this image:


Am I doing something wrong or is this a bug?

Also, I have suggestion: currently it looks like you can set a range for damage with only a set size. However, due to square damage being optimal, it might be useful to allow the user to choose for a set damage and a range in size.

I guess it depends on how the maxPowerFactor is defined. If it is the same as in game, i.e., you engine boost tech, then 2x max boost for ships means 4x max boost for missiles.
 
The following users thanked this post: Dutchling

Offline Dutchling

  • Lt. Commander
  • ********
  • Posts: 200
  • Thanked: 5 times
  • Baby Snatcher!
Re: Python based MissileOptimizer
« Reply #3 on: August 11, 2020, 07:23:49 PM »
Ah, my bad then. I only have 100% max power so I should have set it to 1 and not 2.

didn't realize missiles worked differently so by looking at the missile design screen I thought I was at 200%.
 

Offline imaginary (OP)

  • Able Ordinary Rate
  • i
  • Posts: 3
  • Thanked: 3 times
Re: Python based MissileOptimizer
« Reply #4 on: October 10, 2020, 03:04:08 PM »
Quote from: Iceranger link=topic=11709.  msg139846#msg139846 date=1597191698
Quote from: Dutchling link=topic=11709.  msg139834#msg139834 date=1597171705
Thanks, this looks like a great tool!

I have one issue though, it suggested a missile with 330% Engine Power Modifier despite me having set
Code: [Select]
calcContext.maxPowerFactor = 2
See this image:


Am I doing something wrong or is this a bug?

Also, I have suggestion: currently it looks like you can set a range for damage with only a set size.   However, due to square damage being optimal, it might be useful to allow the user to choose for a set damage and a range in size. 

I guess it depends on how the maxPowerFactor is defined.   If it is the same as in game, i.  e.  , you engine boost tech, then 2x max boost for ships means 4x max boost for missiles. 

Yes, you have to fix the size.  You can choose the sort order though, for example:

Code: [Select]
topMissiles = example.printTopMissiles(sortFn = lambda m:m.getRange())
Code: [Select]
topMissiles = example.printTopMissiles(sortFn = lambda m:m.engineSetup.ep)
Code: [Select]
topMissiles = example.printTopMissiles(sortFn = lambda m:m.getSpeed())

instead of just

Code: [Select]
topMissiles = example.printTopMissiles()

Usually I fix the range and first figure out the damage and then I tweak the speed/Cth.
Ordering by ep usually gives a good result regarding speed/cth.
« Last Edit: October 10, 2020, 03:48:11 PM by imaginary »