- 1 Introduction
- 2 Before anything
- 3 Creating your mission
- 4 Performance impact table
- 5 What else?
- 6 Performance Diagnostic tools
- 7 See also
This article will try to be a general guide about improving your mission's performance.
As usual, moderation is the key; do not expect to find a magical solution that makes it possible to run thousands of AI at 144 FPS on this page. Everything comes at a cost, the tweaks on this page will simply allow you to calibrate your mission properly.
Before optimising anything, make sure you do not have any performance issue running the game itself:
- Open the editor, place a unit in the area you like and test your computer.
- You can get current FPS in Arma 3 by going into video options or using diag_fps
- Steam allows you to display FPS in a screen corner, in Settings > In game > FPS Counter
- Use (unofficial) Performance Guides to get better performances:
- Play your mission in singleplayer. If your mission runs fine, its network messages might very well be the issue. See Multiplayer Scripting for good practice tips.
- Usual bottlenecks:
- Lower your graphical settings (resolution, textures). If you get way better performances, at least your GPU limits you.
- If the game keeps having low FPS when running @ 1024×768/low textures then your CPU is most likely the issue. Mission scripts may be performance-hogging too.
This can make or break performance for the client.
Creating your mission
- Be sure to create your scripts with the latest available commands and functions.
- Use the available frameworks and functions for each topic, unless you replace them by third-party ones:
Performance impact table
- means a heavy impact on performance
- means an average impact
- means little to no performance impact.
AI unit quantity
If you own more than one average computer, you could consider Headless client to offload AI from the server.
|The less objects, the more FPS you will have.
Only the on-screen objects will strongly impact GPU.
General script mistakes
|Having too many scripts running is a cause for severe performance issues and execution delays in singleplayer as well as multiplayer.
|Checking a condition too often is usually a source of poor performance. Does your code execution need to be frame-perfect, or can you afford a delay of a few seconds?
All of the mission-related calculation (objectives, completion distance, etc.) must be done server-side. Local effects should be calculated client-side.
High-frequency network messages
|Unscheduled code can have a high impact on the framerate, as such code is not subject to the scheduler's management (as its name suggests) and will run without limitation. Cyclic unscheduled low-performance code can make the game unplayable, up to freezing it.
See also Where code starts unscheduled.
If you have applied all these recommendations and your mission still doesn't run well in multiplayer (but does in singleplayer), it might be caused by mods that you are running which could be badly, or not at all, optimised.
If you want to be sure, run the same mission with and without mods. If you have a big difference in performance, look no further.
Performance Diagnostic tools
- #monitor 5
- Shows performance information of the server. Interval 0 means to stop monitoring.
- #monitords 5
- Shows performance information in the dedicated server console. Interval 0 means to stop monitoring. (since Arma 3 v1.64)
|All builds||Diagnostic build only|