Archive 17/01/2023.

Speeding up Urho on older computers

smellymumbler

Do you guys recommend any tweaks or changing compile time options to speed up the engine on older computers?

S.L.C

How old? And this depends on the game itself too. Because you can make a game/application with Urho that even new hardware has trouble running it. So is it old and weak or is it old but powerful? Does it lack full support of necessary features? (performs some form emulation internally to achieve that) Give an example of such “old” hardware and so that people can have a base.

But most of the time. Most of the performance can be gained from the game assets and effects.

smellymumbler

Yes, it depends on the game, that’s why I’m focusing on speeding up the included samples. The one I’m using right now is CharacterDemo. By choosing this as a base, I know how fast things can run and keep policing myself when adding new content, handling scenes, etc.

How old: any i3 laptop with generic Intel GMA.

smellymumbler

Some data: Today this demo runs at ~110 FPS. I wanted 200+.

FYI: 42_PBRMaterials runs at 30 FPS.

slapin

Have you enabled profiler and found where all the performance go?

Eugene

What’s the point of speeding up samples?
You won’t play samples, you will play games.
What’s the point of wanting 200 FPS?
You won’t see more than 60 FPS.
If you want to use 120+Hz display with such old hardware, you are doing things wrong,

Some hints:

  • Forward Render path
  • Accurate Octree setup
  • No scripts
  • Less active physic objects
  • Less logic components
  • Less node updates
  • Less drawables, more manual batching for small static objects
  • Less custom geometries
  • Less shadows
  • Less lights (if I implement lightmapping in nearest future)

You see, these are quite obvious. If you want to make things faster, compute less.

smellymumbler

Can you elaborate on this?

fnadalt

My PC is about to celebrate its 10th birthday…
4.17.2-1-ARCH
AMD Athlon™ 64 X2 Dual Core Processor 4600+
NVIDIA Corporation MCP61
Cedar [Radeon HD 5000/6000/7350/8350 Series]
HD SATA 1
2GB RAM!!!

I tried other proprietary and open source 3d engines and Urho3D surprised me

Eugene

Default Octree size is 2k*2k, it’s ok default size, but could be tuned better.
Also don’t make your scene bigger than Octree bbox, all objects that don’t fit the Octree are culled one-by-one.

smellymumbler

Thanks! How can I tweak this option? What’s the rule of thumb here, the octree should be about the same as total scene size?

Eugene

Scene bounding box shall be as small as possible and contain most of the objects.
Play with Octree parameters (max depth and BBox) and check what’s better. It may give you small benefit during scene update.