BenchMark 4. Motel Exterior

This test is done in UE5.2 and creates a Hotel facade like the demonstration videos, just without the randomization.

There are 20 levels, and 54 sections in each level making 1080 sections. Each section has 26 different meshes and 46 instances – total of 49,680 instances. Each section also has a light and a decal actor.

These tests use the rdBuildBuddy multi-level wall builder to create the levels – it’s testing the speed of creation and editing of these rather than the individual editing like the other tests.

1. Actors

There is no test just for actors – it’s just not feasible at this amount.


2. Epic Prefab

The first test is by using a Prefab build with the “Create Blueprint from Selection” tool in the Epic Blueprint button.

The resulting level is extremely slow to edit, load/save and play.

Timings:

Render: 14.29 milliseconds (69.98 FPS)
Build: 11.958 seconds
Load: 46.9 seconds
Save: 30.36 seconds
Play: 62.89 seconds
Stop: 21.07 seconds

Ratings:

Rendering: 3/5
Build: 1/5
Playing: 1/5
Variety: 1/5 (potential to add variety with custom blueprints/c++)
Interact: 1/5 (potential to add interaction with custom blueprints/c++)

Average: 1.4/5


3. BatchedInstances

Timings:

Render: 12.53 milliseconds (79.80 FPS)
Build: 5.722 seconds
Load: 17.77 seconds
Save: 7.86 seconds
Play: 10.13 seconds

Ratings:

Rendering: 4/5
Build: 3/5
Playing: 3/5
Variety: 1/5 (potential to add variety with custom blueprints/c++)
Interact: 1/5 (potential to add interaction with custom blueprints/c++)

Average: 2.4/5


4. MergedMesh

Timings:

Render: 9.48 milliseconds (105.52 FPS)
Build: 0.17 seconds
Load: 3.2 seconds
Save: 2.16 seconds
Play: 2.81 seconds

Ratings:

Rendering: 5/5
Build: 5/5
Playing: 5/5
Variety: 0/5 (cannot introduce variety into a static mesh)
Interact: 0/5 (cannot interact with individual components of a static mesh (easily))

Average: 3/5


5. Merged into a PackedLevelActor

The PackedLevelActor got everything except the FireExtinquisher Decal, so close enough. It did have problems with the Mobility, I had to go it with the “Set Mobility” tool in rdBPtools and set everything to Static (Moveable works too).

Timings:

Render: 15.36 milliseconds (65.09 FPS)
Build: 2.803 seconds
Load: 17.2 seconds
Save: 4.88 seconds
Play: 8.33 seconds

Ratings:

Rendering: 3/5
Editing: 4/5
Playing: 4/5
Variety: 1/5 (potential to add variety with custom blueprints/c++)
Interact: 1/5 (potential to add interaction with custom blueprints/c++)

Average: 2.6/5


6. rdBPtools prefab with default instancing

Timings:

Render: 11.94 milliseconds (83.78 FPS)
Build: 5.574 seconds
Load: 12.1 seconds
Save: 6.55 seconds
Play: 10.07 seconds

Ratings:

Rendering: 4/5
Editing: 3/5
Playing: 3/5
Variety: 5/5 (randomization build into rdBPtools Prefab classes)
Interact: 1/5 (potential to add interaction with custom blueprints/c++)

Average: 3.2/5


7. rdBPtools prefab with rdInst instancing

Timings:

Render: 9.14 milliseconds (109.42 FPS)
Build: 0.511 seconds
Load: 3.07 seconds
Save: 4.56 seconds
Play: 4.12 seconds

Ratings:

Rendering: 5/5
Editing: 5/5
Playing: 5/5
Variety: 5/5 (Randomization built into rdInst – fast c++)
Interact: 5/5 (rdInst has tools to convert instances to actors (and actor pooling) and back to instances)

Average: 5/5