Jump to content
Sign in to follow this  
zorrobyte

ZBE_AILoadBalance - Automatic zero-config AI load balancing

Recommended Posts

Overview and Goals

To create a addon and script to automatically load balance AI groups between localities that is compatible with every major addon/script. Locality can be defined as any available computing source such as the server, clients and headless clients. Automatically is defined as with no user intervention or code changes to other mission addons/scripts

Why?

I've been interested in AI performance in Arma for quite some time (see here for a document I authored a year or two ago) and would love to see the rebirth of CooP in Arma 3 as a popular gamemode. ZBE_Cache is my attempt at the most addon/script/mission compatible caching module and has been successful in terms of popularity.

How?

Well, here is my scratch space while I work on a proof of concept. Ideas/suggestions/improvements welcome!

b8a8205366.png

WIP FSM:

fdd7c6d736.png

Misc Notes:

  • AI are transferred back to server on client disconnect
  • How is AI peformance on clients with poor ping/bandwidth?
  • How is server netcode/desync with high amounts of AI?
  • What is the "maximum" number of AI at a specific playercount even if offloaded to multiple HC?
  • Should ZBE_AILoadBalance focus on only HC offloading or include connected clients/both?
  • Would publicMessageServer be better for efficency to report FPS? If so, how to implement?
  • Are there any compatibility issues with setGroupOwner regarding other scripts/addons? - edit, seems eventhandlers break

Impulse 9 reported that AI's FSMs will reset upon locality change which can have jarring effects if players are near, as AI will act strangely.

Edited by zorrobyte

Share this post


Link to post
Share on other sites

Will be watching this one with great interest ! Well done for keeping the hope of good FPS alive !

Troubling about the AI FSM reset ... perhaps a way to smooth things out ?

Share this post


Link to post
Share on other sites
Will be watching this one with great interest ! Well done for keeping the hope of good FPS alive !

Troubling about the AI FSM reset ... perhaps a way to smooth things out ?

I'm planning to hook this into ZBE_Cache so AI do not change localities unless cached so players do not notice the effect.

Even with HC, caching is still mandatory as:

144 groups on server = 4 server FPS

144 groups on server and HC joins = 4 HC FPS (even with all AI still on server)

144 groups are transferred to HC from server = same old 4 HC FPS

Strange thing is, one can enablesimulation false on HC for remote units (units on other machines but HC) and the FPS improves dramatically so there are potential fixes in script - I just wish Physx was handled better on HCs as it isn't needed for remote AI.

It's coming along:

05a60f2b13.png

Edited by zorrobyte

Share this post


Link to post
Share on other sites

Please think about an option to disable changing of locality for some groups. Some features and scripts do not work correctly if the locality changed.

Beside that, good approach!

Share this post


Link to post
Share on other sites
Please think about an option to disable changing of locality for some groups. Some features and scripts do not work correctly if the locality changed.

Beside that, good approach!

Should be as easy as *unit* setvariable ["ZBE_HC", false, true]; once I get this out there

56c946d475.png

7017bd2ffc.png

665c2b454b.png

HC performance issues I need to account for: http://feedback.arma3.com/view.php?id=22676

Share this post


Link to post
Share on other sites

Hey mate, just came across this thread and wondering if this will do what we are trying to achieve in our missions.

We have the missions created in 2d editor, and when the missions starts we would like all AI transferred evenly across the 3 HCs.

We know how to load the HCs manually by scripting the groups to spawn on them but an automated system would be awsome...

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×