Automation - The Car Company Tycoon Game

Automation - The Car Company Tycoon Game

DMAN010 Jul 14, 2018 @ 12:42am
Exported car rendering performance in BeamNG
The performance of the cars exported from Automation into BeamNG is less than optimal. When I exported a vehicle and played around with it in BeamNG I noticed strangely low performance compared to the vehicles provided by BeamNG (I am aware that a computer created car will not be as optimized as one created by an artist). For example the Gavrial D-Series truck gives me around 120 fps in the pure grid map while a car produced by the exporter gives me only around 52 fps.

Perplexed by this discrepancy, I investigated why this happens and noticed that the GPU Present Delay was a shockingly high at 13 ms in game but a more reasonably 0.4 ms when alt-tabbed. This lead me to believe that the cars that Automation exports have a very high amount of draw calls which I confirmed in RenderDoc. Capturing two frames, one with the Gavrial and one with the Automation car, showed that there were 5392 and 13416 events respectively. This ratio matches up with the frame rates mentioned above which would mean that this is probably the bottle neck.

Exploring deeper into the problem I discovered that the majority of the events that Automation cars use is spent on the engine. So much so that I think an Automation car would perform better than a BeamNG car if the engine was skipped in rendering altogether. I suggest that instead of exporting the engine in parts as it is now, you join the engine into one mesh (or one mesh per material if BeamNG requires) at export time. This should drastically decrease the amount of vertex and index buffer changes and draw calls that a Automation car needs to render in BeamNG.

System Information:
CPU: i7 3930k@3.5ghz
RAM: 16GB
GPU: GTX 680 w/2GB vram

BeamNG settings:
Resolution: 1920 x 1080 119Hz
V-sync: off
Borderless
AA: SMAA
Mesh: High
Texture: Normal
Lighting: Normal
Shader: High
PP: Custom
AF: x16
Grass: 100%
Shadows: All
Assume settings not mentioned to be off.
< >
Showing 1-1 of 1 comments
[CAMSO] Caswal  [developer] Jul 14, 2018 @ 2:17am 
The engine is a low hanging fruit for optimisation. For Automation it is a hero Asset, so it is naturally expensive.

We will probably take a stab at reducing the engine cost next week. UE4 has some good tools to use.

We do also have a material filtering system and collapsing system, the next update is going to be a bit more aggressive at culling them out. (e.g. replacing all the Engine Brass with Chrome). Not exporting all meshes that have the nut, bolt, bolt thread materials on them.
< >
Showing 1-1 of 1 comments
Per page: 1530 50

Date Posted: Jul 14, 2018 @ 12:42am
Posts: 1