Feature #29345

Several possible performance improvements

Added by Tupolov almost 3 years ago. Updated over 2 years ago.

Status:Rejected Start date:03/13/2012
Priority:Normal Due date:
Assignee:wolffy.au % Done:

20%

Category:Performance
Target version:MSO v4.4
Component:CORE Reproduced by another DH user:No
Close Reason: I am using some Mods:No
Affected Version:

Description

Testing indicates that MSO struggles when many players attempt to join the mission at initialisation. Testing also seems to indicate that anymore than 12 players and server FPS drops to < 5 making it unplayable.

Suggested performance improvements include:

1. Enemy modules initialise after 5-10 minutes (random for each module)
2. AI should be limited to < 100 units per client, 150 units on server and say a suitable number in total (1000?)
3. Caching should be more aggressive at FPS drops
4. Enemy generation modules should be exclusive
5. Ambience should be scaled back based on server FPS (dynamically)
6. Time sync should be randomized for each player (so not all players are synched at the same time)

History

Updated by wobbleyheadedbob almost 3 years ago

I've actually been thinking about this in terms of the Service Bus that Wolfy spoke about some time ago. Initialisation may benefit from a similar approach.

My idea is something along these lines:
1. Using a method similar to the way I did the MHQ module using PV's to send a broadcast request to the server.
2. Each request is an update to a single PV that the server listens for.
3. The Server accepts each request and adds it to an array queue.
3.1 We could set a max size for the array queue, when full, all requests are denied with an appropriate short response, then its up to the relevant requesting module to respond internally.
4. The server processes the array 1 element at a time with pre-set time-delayed intervals.

I haven't actually tried putting this into practice yet so I'm not sure if this just adds more overhead than it solves(most likely), stop me now if you think this is a completely fubar solution.

I even drew a cheezy picture :)
http://code.google.com/p/worldbrotherhood/downloads/detail?name=Service%20Bus%20Sequence%20Diagram.png&can=2&q=

Updated by Tupolov almost 3 years ago

  • Assignee set to wolffy.au
  • Target version changed from MSO v4.6 to MSO v4.3
  • Component set to CORE

Updated by Tupolov almost 3 years ago

  • Status changed from New to In progress

Updated by Tupolov almost 3 years ago

  • % Done changed from 0 to 20

Updated by highhead almost 3 years ago

WICT is not spawning anything if count allgroups > maxAIgroups (which can be setup in mission parameters). If you want me to limit maxAIgroups, just tell me. I think its ok for WICT since mission-starter can adjust it in parameters

Updated by Tupolov almost 3 years ago

  • Target version changed from MSO v4.3 to MSO v4.4

Updated by Tupolov almost 3 years ago

  • Description updated (diff)

Updated by Tupolov almost 3 years ago

  • Description updated (diff)

Updated by Tupolov over 2 years ago

  • Status changed from In progress to Rejected

Also available in: Atom PDF