On this page
Shipping

Measure and improve performance

Goal: find what makes your game slow, decrease that cost, and examine the result on the device that you plan to support.

Before you start

First, make one vehicle drive correctly. Performance changes can change handling, sound and appearance. Keep a copy of your working settings.

Two terms:

  • Frame rate (FPS) is the number of pictures that the game draws each second.
  • Frame time is the time that one picture takes. Occasional long frames cause stutters, even when the average FPS is good.

An RCCP vehicle has no fixed cost. The model, the wheels, the effects, the damage setup and the number of vehicles all have an effect.

Use realtime reflections

Open RCCP Settings > Optimization > Realtime reflections. To capture the environment around the active player vehicle, enable Realtime reflections. The included RCCP Settings asset enables this feature. One probe serves the player, also after a vehicle change. If there is no player, there is no capture.

Setting Included settings asset Use
Reflection resolution 512 The resolution of each cubemap face. Higher values increase the render cost and the memory use.
Reflection update interval 0.05 s The minimum time between captures. A new capture waits until the previous capture is complete.
Time slicing No Time Slicing Completes each capture in one frame. To spread the capture work across frames, select Individual Faces.
Reflection render distance 80 m The maximum distance that the probe captures.
Reflection layers All layers, with exclusions The probe always excludes the standard vehicle, wheel, detachable-part, UI and Ignore Raycast layers.

These are saved asset values. A new settings instance can have different values. An existing project can keep its own values. Examine the imported settings before you test.

In Built-in, enable Project Settings > Quality > Realtime Reflection Probes for the active quality level. If Unity disables realtime probes, RCCP shows an Inspector warning. RCCP also logs one runtime warning until the configuration changes. When the warning applies, the Inspector shows Open Quality Settings.

For URP, use Select Active Render Pipeline Asset to examine the active pipeline asset. URP 17 shows Probe Blending and Box Projection. The asset has no separate realtime switch. These controls do not replace the Unity realtime probe setting. RCCP does not change project settings automatically.

Keep vehicle meshes on the standard RCCP vehicle layers. Custom meshes on other layers can show in their own reflection. The probe excludes all vehicles on these layers, including traffic. To exclude more effects or small props, change Reflection layers.

The included settings use No Time Slicing. Captures do not include shadows. Each capture keeps one position until all faces are complete. In Time slicing, select No Time Slicing, All Faces At Once or Individual Faces. No Time Slicing can cause frame spikes. A change applies when the next capture starts, after the current capture is complete.

Fast motion or lighting changes can make the reflection update visible. This feature gives environment reflections, not rearview mirrors. Measure the performance with the feature enabled and disabled. Use the same scene, camera view and target device.

Measure a repeatable test

  1. Open the Unity Profiler from Window > Analysis > Profiler.
  2. Drive a short route that includes the problem, for example a crowded road, a long skid or a crash.
  3. Find the area of the large cost: rendering, physics, scripts or audio.
  4. Change one setting from the matching section below.
  5. Drive the same route again with the same number of vehicles.

Check: the measured cost is lower, and the vehicle still looks, sounds and handles at an acceptable level.

For the last comparison, use a build on your target device. Editor performance alone does not predict the performance on a phone or in a browser.

First changes to test

Problem First change to test
Many vehicles make the scene slow Add LOD to the vehicles far from the player.
Crashes cause stutters Decrease the denting and panel-relighting cost.
Lights are expensive Try the vertex-light options in RCCP Settings > Optimization > Lights.
Long skids become expensive Decrease the skidmark detail.
Many collision effects are expensive Decrease the sparks and disable the impact flashes.
Physics is expensive Profile the wheel system and examine the physics rate of the project.
Too much audio plays at the same time Use LOD to mute distant vehicles.

The sections below give the tradeoffs. This table is a start order for your investigation, not a performance ranking for all games.

Reduce distant-vehicle work with LOD

LOD means level of detail. The RCCP LOD module disables vehicle systems at a distance. The module does not replace the vehicle mesh with a simpler model.

RCCP_Sedan01 also has a Unity LOD Group with three geometry levels. The original deformable panels and light surfaces are shared across these levels. The last level keeps the vehicle visible. Camera clipping still applies. This geometry system is independent of the RCCP LOD module, with one exception. If the player vehicle has the LOD module, the module keeps its LOD Group at the first geometry level.

  1. Stop Play Mode and select a vehicle that is not the player vehicle.
  2. In its module grid, add LOD from the Optimization group.
  3. Click Play. Drive toward the vehicle, then drive away from it.
  4. Watch Current LOD level. Find the distance where the effects and the audio stop.
  5. Adjust LOD distance factor until the change is acceptable. Write down the value.
  6. Stop Play Mode and apply the value again to keep it.

Check: near vehicles keep the presentation that you need, and distant vehicles do less work.

Level What changes
0 LOD restores the components that were enabled when the vehicle started.
1 Wheel models stop following their wheels, and skidmarks stop. Particle effects (including damage smoke and fire), exhaust smoke and flames, and wheel blur are disabled. Audio stays enabled.
2 / 3 The same changes as level 1. Audio is also disabled.

LOD changes only what you see and hear. Physics, driver aids, aerodynamics, damage and lamps operate at all levels. A distant vehicle drives and takes damage the same as a near vehicle. Thus, LOD does not decrease the cost of a crash. To decrease the denting cost, refer to Reduce crash and effect cost.

Systems that are disabled at startup stay disabled at full detail. LOD uses that startup state again at later transitions.

Use Always full detail for a player vehicle that has LOD, or when you examine a feature that distance disables. Always reduced detail forces the cheapest level. A lower LOD distance factor makes the effects stop nearer to the camera.

Reduce crash and effect cost

If realtime shadows are disabled, use Fake Shadow for low-cost ground contact on mobile and WebGL. The module supports Built-in and URP without a renderer feature.

Reduce denting cost

Do the changes in the table from top to bottom. Test after each change. Damage owns the denting switches. The Deformation Solver owns the soft-body quality and preparation.

Change Tradeoff
Disable Recalculate normals on Damage. Saves the normal recalculation, but the lighting can follow the changed shape less well.
Increase Relight interval on the solver. Updates the lighting less frequently. A frame that does the update can still be expensive.
Decrease Solver passes. Less work, with soft-body motion that is less stable or less accurate.
Decrease Detail cap per panel. Coarser deformation and less memory.
Disable Soft-body denting. Uses classic denting instead of the soft-body solver.
Disable Dent the bodywork. Disables mesh denting. Separate lamp, part and wheel damage can continue.

Keep Keep bent panels visible enabled. If the bounds are not correct, a dented panel can disappear from some camera angles.

For spawn stutters, examine Async island build and Panels prepared per step on the solver. RCCP Settings also has a Panels prepared per step budget for the full scene. Lower preparation quotas spread the work across more steps, but full soft-body readiness occurs later.

In Deformation budget in RCCP Settings:

  • Limit soft-body denting lets RCCP simplify vehicles that are not the player vehicle when necessary.
  • Denting budget limits the shared time budget for soft-body work.
  • Denting memory cap sets when eligible vehicles that are not on the screen release memory.

Before you change more solver settings, read Damage.

Reduce skidmark and particle cost

Where Change to test
Skidmark prefab assigned to a ground surface For shorter trails, decrease Max Marks. For fewer trail sections, increase Min Distance. The value is a squared distance: 0.04 puts a section every 0.2 m.
Individual wheel Disable Draw skidmarks before the vehicle starts. Tire smoke continues. LOD keeps that startup selection.
Vehicle Particles component Decrease Extra sparks on a big hit and disable Flash on impact.
Vehicle Particles component If these effects are expensive, decrease Scrape build-up, Tire smolder or Smolder smoke.

Use multithreading in RCCP Settings moves the skidmark buffer preparation to background threads on supported platforms. The included RCCP Settings asset disables this option. Set this option before Play Mode.

Web builds, single-core devices and worker failures use the main thread. Mesh uploads stay on the main thread. Vehicle physics and deformation jobs use separate controls. Test the setting on your target device.

Threaded skidmarks copy a stable snapshot on the main thread before the worker rebuilds the mesh. Include the cost of this copy when you profile.

Refer to Surfaces and Effects.

Check the target platform

Tests on a phone or tablet

  1. Configure the touch controls with Mobile.
  2. In RCCP Settings, test Headlights as vertex lights, Brake lights as vertex lights, Reverse lights as vertex lights, Indicator lights as vertex lights and Other lights as vertex lights.
  3. If the device is slow, decrease the collision flashes and the denting.
  4. Add LOD to distant vehicles and AI vehicles.
  5. Select a frame-rate target that your device can keep. For example, enable Cap the frame rate and try Frame rate cap = 60.
  6. For Android audio, if it is applicable to your clips, run Tools > BoneCracker Games > Realistic Car Controller Pro 2 > Maintenance > Audio > Apply Android Audio Overrides.

The audio command writes Android compression overrides. The command does not apply an iOS or WebGL override. Read its confirmation before you apply it.

Check: play for a sufficient time to see slowdowns that heat causes. Examine the touch controls, the audio and the frame pacing on the real device.

Tests in WebGL

The RCCP WebGL build disables background preparation for the deformation solver. The general RCCP threading support also uses the main thread.

Limitation What to test
Soft-body preparation uses the main thread. Disable soft-body denting, decrease the panel detail, or decrease the preparation quotas.
Threaded mesh work uses the main thread. Measure long skids and crashes in the browser. Use multithreading does not start background workers in Web builds.
The RCCP mobile audio command does not include WebGL. Examine the playback with the default import settings of the clips.

Check: test the built game in the browser that you plan to support. A smooth Editor session does not test this fallback.

Physics and audio settings

Wheel system cost

The wheel system batches contact queries and solves the wheels of all registered vehicles. Burst is optional. The wheel jobs use Burst when the Unity Burst package is available. The same jobs also have a managed C# path. Use multithreading controls supported mesh work separately.

A desktop test with 20 vehicles measured these mean times for each physics step:

Execution path Mean time per physics step for all 20 vehicles
Burst 0.514 ms
Managed C# 1.52 ms

WebGL has no Burst. A WebGL build runs the managed C# path on one thread. No phone measurement is available. Measure your full game on the target device.

The wheel system selects its internal substeps automatically. For wheel tuning, refer to Wheels and tires.

Change the physics rate and frame cap

Open RCCP Settings:

Setting Meaning
Override Fixed Timestep Lets RCCP override the physics timestep of the project when a scene loads.
Fixed Timestep The seconds between physics updates. A smaller value gives more updates and more CPU work.
Cap the frame rate Lets RCCP apply its frame-rate limit when a scene loads.
Frame rate cap The frame-rate limit when Cap the frame rate is enabled.

For example, 0.02 seconds gives 50 physics steps each second. 0.01 gives two times as many steps. After each change, test the handling again. A larger timestep saves CPU work, but it can make fast or stiff vehicles unstable.

Reduce audio cost

Engine layers and wheel sounds add many audio sources to each vehicle. LOD level 2 disables the Audio component of the distant vehicle.

For older RCCP audio imports, run Tools > BoneCracker Games > Realistic Car Controller Pro 2 > Maintenance > Audio > Reimport All RCCP Audio Clips. This command applies the RCCP import rules again. Before you remove layers from a sound that you want to keep, read Engine Audio.

Checks before release

In RCCP Settings > Interface & logging, disable the development aids that you do not need:

  • Show the telemetry panel
  • Show the input panel
  • Extra console messages

The telemetry panel shows vehicle values. The panel does not show where the frame time goes. Use the Profiler for that.

Final check: after you apply the final settings, do your driving, crowded-scene, crash and audio checks again in the target build.

Next step

  • Mobile — touch controls and device layout.
  • Damage — select the deformation quality.
  • Troubleshooting — find the cause of behavior that is incorrect, not only slow.

Back to the guide

BoneCracker Games · Realistic Car Controller Pro 2Back to top ↑
Document details

Generated from: 21_performance_and_platforms.md
Date: 2026-11-09 21:50
Generated by md-to-html