LOCAL
Object locality - Guide - UNITAF Force Manual (FM)




Object locality
This block is not in a published chapter and should not be relied upon.



Current Version (19 days ago)

Guide
FM/BG-747.V1.00 - Object locality
Guide

Every object in Arma has a locality: the client that owns it. This can be the server, a headless client or a player client. The locality of the object determines where the following calculations happen for that specific object:

  • Hit registration
  • Physics (vehicle steering, collisions,…)
  • AI behaviour (movment, spotting,…)

 

Why care about locality

All objects that are non-local (except for a special type called "local only" objects) have to be synchronized to all other clients to exist. This means they need to be sent to the server, and then from the server to all other clients. The longer this takes, the more “out of sync” the object becomes on other clients, causing issues like bad hit registration and teleporation.

Another thing to keep in mind is that some scripts require to be run where the object is local to work, or some only work when the locality is the server. This is the reason for the three options:

  • Global execution: run on all clients
  • Local execution: run on the client that owns the object
  • Server execution: run on the server

 

Headless clients

As stated above, AI behaviour runs on the client that owns the AI object. This explains how headless clients help achieve better server performance, as the AI calculations can be offloaded to another client.

However with this performance boost, comes a tradeoff: it takes longer to sync the object to the player clients, as the sync path is now HC<->server<->player instead of just server<->player. To minimize the impact of this, headless clients need to be run on the same physicial machine as the server, so that network latency is nearly 0.

Published by Sgt Jochem on 15/11/2024 at 15:56

Previous Versions

There are no previous versions of this block.
This page generated 0.91MB in 0.0506 seconds.