Development:Performance
Current (23:43, 20 June 2006 (PDT)) test performance:
(VS Windows Test-rig):
- 1K fighters in 1 group, all friendly: playable, sufficient
- 10K fighters split into 10 groups, all friendly: sub-par, semi-playable
- 9K fighters in 9 groups, friendly. 100 Nicander vs. 100 Lancelot: <10 fps (comms on) <25 fps (comms off)
- 9K fighters in 9 groups, friendly. 500 Nicander vs. 500 Lancelot: <10 fps (comms off)
- Fix bolt collision speed
- inc and dec take half the time... 1/4 taken by Apart (may be SSEized if necessary--and aligned to 16 bit, etc) and the last fourth is in the actual collision function which inlines the rest.
- AI ... irregularities in AggressiveAI::Execute
- Potential fix applied-- not yet verified
- Fix Order::GetEffectiveRelationship to use hash table and no while loop
- Will not be easy since Comm AI's and Fire is not guaranteed to be first order in order queue, etc. may need to promote hit stats up higher to unit fields :-/ Difficult to keep optimization apart from interfering with modularity
- Fix loading times
- Pressing 'd' (dock) key can completely pause the game for a noticeable amount of time, even when docking does not occur (e.g. target random fighter far away. press 'd')
Addressed:
- Fix repair function cost to not be proportional to the time of a physics frame
- Make targetting cheaper--especially when no target is able to be selected
- some progress on this front - at the very least, it decays gracefully now. Heuristics and vegastrike.config constants likely need some pondering. Abject pauses appear to be removed.
- 23:43, 20 June 2006 (PDT)
- Fix Communication
- 23:43, 20 June 2006 (PDT)
- Fix Target acquisition backoff
- 23:43 1 July 2006