Its been a while since our last update.
We have been hard at work fixing issues and sometimes completely reworking systems that were identified as problematic during our first alpha.
With all of these issues fixed we are now approaching alpha two.
Information about that can be found here
Major Changes
Local player spawning rework
Previously the handling of the local player entity was very different from other synced entities.
That was mostly due to how the game expects certain conditions to be met until it transitions into gsmState_SessionActive.
We had to patch multiple crashing systems without proper checks if the player entity actually exists to make this work.
This allows us to create player entities through the same path through which remotely simulated entities were already created.
Below is an example of what is now possible in scripting:
[image: 1783190754136-carbon-1.png]
Sync tracking
We reworked our server state tracking logic from individual field tracking to component wide tracking.
This has resulted in a substantial reduction of memory usage.
Below you can see the memory usage of a 32 player server:
[image: 1783191893357-9a2d7fc4-bea1-49f8-b734-f45e33aba2ec-image.jpeg]
(Please note that most of the required memory is pre-allocated at server startup, so an empty server roughly reflects a full one)
An example of how the new tracking logic integrates into our ECS setup (code edited for readability):
[image: 1783192626542-carbon-3.png]
Changelog
New sync tracker logic on the server for better batch processing of updates
Fixed broken player state after forced vehicle dismounts if vehicle entity gets force deleted
Fixed various issues with handling of EntityStub tracking from different spawn sources
Initial elevator sync
Improvements to app termination to prevent deadlocks during net teardown
The game will now force terminate after 5 seconds, even if termination blockers have not responded yet
Local player creation rework. Merged with existing general entity spawning path
The local player entity is now created through the same logic as remotely synced entities
Various improvements to customization sync. Fixed another potential appearance leak
Vehicle occupant sync. Drivers and passengers of population cars are now synced
Parked crowd sync. Ambient cars on parking spots are now synced
Static entity migration improvements
Improve network packing density of vehicle updates to reduce network load
Fixed a loading screen hang. Pause menu during teleport will no longer cause issues
Improve scripting stability with tick filtering during loading phases
Client bundles will no longer tick or receive events during teleport, fast travel or other loading phases
Events are delivered after the game session is in a good state again
Improve scripting stability with event queues
Scripting events are now delivered in a more predictable matter
Fixed an occasional scripting crash related to handle destruction
Various build system improvements regarding speed and correctness
LLVM 22.1.8 upgrade
CEF 149.0.6 upgrade