Hi!
We´re trying to set up multiple instances in parallel on a High-Performance-Cluster with the goal of model validation and reinforcement learning.
So basically a specific vehicle model drives the same rout over and over autonomously.
In the basic headless mode this works so far, but still requires a computation node with graphics. These are less common on our cluster.
So the solutions should be the headless mode with the gfx null flag, see here:
Disabling the GFX came with multiple problems, the most basic one is the not rendering of the street, so the vehicle drives directly on the height map. (Driving behaviour on hills is important for us). But you cant physically drive on the height map, due to the resolutions and therefore steps in the “road”.
After some reading and testing Claude and we came to following summary:
The architectural root cause
BeamNG’s Game Engine — which is the closed-source C++ core responsible for 3D rendering — has a primary update loop that runs every graphics frame. This is separate from the physics core running at 2000 Hz.
That matters enormously: when
-gfx nullis active, there are no rendering frames. The physics tick still runs, but any asset-loading or scene-registration work that happens during the game engine’s frame loop is either not fired or deferred indefinitely. Collision mesh registration for world objects passes through this path.In Torque 3D (BeamNG’s base engine), the
GFXNullDeviceis explicitly documented as being intended for dedicated servers that process simulation events without rendering — not for full world physics with collision geometry.
Also Flowgraph does not work.
First question: Do you agree with the statement above?
If so: I can not see any real usecase for the gfx null option, can you imagine any?
Witch brings me to my final question: how to solve the basic problem:
- Parallization of BeamNG for usecase
- no gpu on a typical High Performance Cluster
- No driving vehicles/physics without the GFX steps in the engine
Thank you,
will keep you updated, if we find anything in the meantime!