Jump to content
stick_hogue

how to overcome dynamic simulation of STATIC objects?

Recommended Posts

Background:
I decided that since Arma 3 is stable now I should try to revamp my StickSub scripting (and remove Nimitz mod dependency using USS Freedom objects instead, and other important improvements).

General implementation:
The sub is a static object ("Submarine_01_F") instantiated on the server, and controlled by a master loop script. Clients make changes via dialogs which use setvariable commands to change the commanded speed, commanded depth, and commanded heading of the sub. The helm/pilot's dialog includes cameras attached to various positions on the sub, and the NavINT dialog creates a Remote Designator object attached to the sub for use as a periscope. Each client creates 2 local markers in elliptical shape to represent the submarine, and those markers are constantly updated to the position of the sub.

The immersion works like this: when you board the sub, you are SETPOSed to the theatrical set off map (USS Freedom interior). When you open your map, it centers on the sub. When you exit the sub, you are SETPOSed back to it. It doesn't take much smoke and mirrors - you immediately feel like this is all real and you're getting on and off the sub like it's a real boat.

All that works splendidly with hosted server. I only recently gained local dedi testing capability.

Problem:
Dedicated server and hosted server behave completely differently in one way: on hosted server, the static object is synched with the clients even if they are far away from it on the theatrical set, and so the markers also correctly move in synch with the location of the sub, and the remote cameras attached to the sub show it moving through the world.
But on dedicated server the static object is not synched with clients who are on the theatrical set far away, and so the markers also never move, and the remote cameras show the sub not moving.
The moment I exit the sub and am SETPOSed to it, the game updates its position to my client, and so the markers update, too, and the cameras reflect the new position (when I return to the theatrical set and open the helm control dialog), but then they remain frozen in the new position again.

What's been tried:

EnableSimulationGlobal true

EnableDynamicSimulation false

SetTargetAge "Actual"

Reveal
EnableDynamicSimulationSystem false


Hell, I even created an AI diver, set it to TriggerDynamicSimulation true, and attached it to the sub, and still the sub is not synched with clients who are far away (although I can see the diver marker on the map).

All the setvariable data sent out by the server's control loop is fine, and the setvariable based info in the dialogs correctly reflect its movement, but the object location never updates for clients who are far from it on the theatrical set.

My theory:
There seems to be an in-built dynamic simulation system for static objects that's independent of the one for 'live' units controlled by the above-listed commands.  I've seen comments that seem to confirm this, but nothing substantive.

Does anyone know of a way to force a dedicated server to broadcast a static object's data to clients who are far away?  Is this just a fundamental game optimization that can't be beaten?

thanks in advance,
Stick_Hogue

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

×