BGE performance nuances UPDATED with benchmark!!!

High and stable framerate is really important especially for complex games. So it will be very helpfull if we got more information about BGE performance, issues, tip and tricks etc. Lets share the information!!! I offer to write all replies in similar maner.

- Post template -

PERFORMANCE(first of all system and performance part. post here you system info and benchmark results. if you see that someone already describe system and results similar to yours - just skip it)
I made a simple benchmark from my old blender work. So you need to do next steps:

  • Download benchmark-file - benchmark_0.1.blend (916 KB)
  • Restart your computer. Dont run any application for clear result. Open downloaded file with latest version of Blender.
  • Select model and go to Edit Mode (Tab), select all polys (A)
  • Press W -> Subdivide Smooth -> Ok
  • Press W -> Subdivide Smooth -> Ok
  • Press W -> Subdivide Smooth -> Ok (I can upload already subdivided mesh but it will be around 16Mb)
  • Now character have 85k polys. You can see that in the top string of Blender screen (Fa:85760-85760). But we need a triangles so press Ctrl+T. Now character have 150k triangles.
  • Press Tab for Object Mode. Then press P to run Blender Game Engine. It can take some time start with those amount of triangles - be patient.
  • Watch the demo 10-20 secs and note the average fps. You find it at the top-left corner of the screen.

If your computer goes very fast with 150k triangles, you can subdivide model more (notice that in results). Every new subdivision increase amount of polygons in 4 times! Blender can stuck or even crash cause of this.

Dell XPS m1530 laptop
CPU - Intel Core 2 Duo 2.2 Ghz ()
RAM - 2 Gb
Video - NVidia GeForce 8600 GT 256Mb
Screen Resolution - 1280x800
Blender version - 2.49b
150k triangles - 60 fps (sometimes BGE starts slower and give just 30 fps)

TIPS AND TRICKS(something about how to increase framerate or what can decrease it. if you dont know anything about this - just skip it)

  1. triangulate your mesh - it can give you a few fps.
  2. shadows can eat a lot of frames! dont use it if you can.
  3. Seems like material nodes do not reduse framerate so much. At least a simple nodes =). So use it freely.

QUESTIONS(ask any questions and dont be shy =). no questions? skip it.)

  1. I use one mesh data used in many different objects. Can it be useful to save some RAM or video memory?
  2. Sometimes BGE startup in weird maner. It looks like framerate limited with 30 fps and perfomance much lower than usually (scene and parameters same). Why is this happen?

-End of post-

PS. Moderators, please make this thread sticky if this possible. I think those statistic and information can be really usefull for many blenderheads.

PPS. Dont be shy to ask questions and share optimization methods. I`m sure this is really important for making better complex games and for overall BGE improvements.

Windows Vista home Premium stationery computer
CPU - Intel Core 2 Duo 2.2 Ghz ()
RAM - 2 Gb
Video - NVidia GeForce 8600 GT 256Mb
Blender version - 2.49a

30 fps - 97k quads (GLSL, one lamp, no shadows)
7 fps - about 400k quads (GLSL, one lamp, no shadows)

Our computers are very alike, and you got a laptop, how can you get better frame rate than me? :confused:

EDIT: OOps, they were quads…

Windows Vista home Premium 32-bit(thought id add that in)stationery computer
CPU - Amd Anthlon 64 X2 2.6Ghz ()
RAM - 3 Gb @ 800MHz
Video - ATi Radeon 4890 1GB
Blender version - 2.49a

85 fps - 100k tris (GLSL, one lamp, no shadows)
50 fps - 400k tris (GLSL, one lamp, no shadows)

I could possibly get a higher fps if i had a better motherboard, i currently have pci-e X16 1.0 port, but the video card is built for 2.0.

Also i think i got decent fps at 400k tris is because i have 1GB video card memory.

Windows 7 RC Ultimate 64-bit
CPU - Amd Phenom 9750 2.4 GHz
RAM - 4 Gb DDR2 800MHz
Video - GeForce GTX260 896 MB
Blender version - 2.49a

60 fps - 196k tris (GLSL, one lamp, no shadows)
20 fps - 589k tris (GLSL, one lamp, no shadows)

I use two different computers. The first one is:

Windows Vista Home Premium 64-bit
CPU - Intel Core 2 Duo @ 2.0 GHz
RAM - 4 Gb
Video - Nvidia GTX 260M 1GB
Blender version - 2.49a

29 fps - 3000k tris (GLSL, one lamp, no shadows)
Note: it takes about 50 seconds to load 3 million triangles into memory. =|

The second computer has:
Windows XP Home 32-bit
CPU - Pentium 4
Video - Intel Integrated Graphics Chip
Blender version - 2.49a

39 fps - 1k tris (no GLSL, one lamp, no shadows) (Not GLSL compatible)
19 fps - 100k tris (no GLSL, one lamp, no shadows) (Not GLSL compatible)
12 fps - 200k tris (no GLSL, one lamp, no shadows) (Not GLSL compatible)

39 fps - 1k tris (no GLSL, one lamp, no shadows) (Not GLSL compatible)

You know 1k is 1000 tris right? 39 fps???:eek:

Don’t have my computer now, but I’d like to make a suggestion:

Use a standardized blend file, perhaps with separate scenes for different number of triangles. Not all triangles are created equal! Not to mention the differences between GLSL, Texface, and Multitexture. If you want actually useful information, then you have to control as many conditions as you can.

Parhelion, maybe you can post a blend file that you used to test?

In general, other ways to keep results reliable:

Restart your computer and run Blender with no other programs open.
Always run in the same mode (GLSL, Multitexture, Texface) or post results for all 3.
Always run from the same viewpoint (a specific camera in the blend would work fine).

This CAN be useful data, but only if conditions are controlled.

I’ll also note that the YoFrankie has done something similar to this…
http://www.yofrankie.org/optimizing-glsl/

-Sam

You know 1k is 1000 tris right? 39 fps???:eek:
Of course I know 1k = 1000 triangles. =P

And yes, (with an integrated graphics chip) 1k runs at 39 fps… but then again, the default scene can’t run faster than 41 fps.

Windows XP 32 Bit
CPU - Intel Core2Duo 3.17GHz
RAM - 3.25Gb 800MHz
Video - AIT Radeon 4870 512MB
Blender version - 2.49a

all GLSL - one lamp - no shadows - texture mode
80 fps - 200k faces 2 X 100K Cubes
55 fps - 400k faces 4 X 100K Cubes
55 fps - 400k faces 1 X 400K Cube

to All
Guys, forgive me my stupidness =) please edit yours posts with new results from benchmark file.
And i create this thread first of all for TIP AND TRICKS. Benchmark is just dessert =).

Zarnik, i think not only quads can be a reason of this. It can be OS (i use win7 32 beta), videomemory (my is DDR3, your can be DDR2), screen resolution (my is just 1280x800 if yours bigger it takes much more video memory). Use the benchmark and here my screenshot -


TheSambassador, thank you! I will update first post with yours advises.

QWESTIONS
How you get results higher than 60 fps? I`m limited with 60 =(


If that does’nt work you have to change your settings via a control center or w/e.

You should turn display lists on.
And All frames on.

Without Display Lists I get 100fps
With Display Lists I get 720fps

Windows Vista 64 Bit
CPU - Q6600 2.4
RAM - 8GB
Video - GeForce GTX 275 1.8 GB
Blender version - 2.49a

Windows XP 32 Bit
CPU - AMD 64 3200+ SINGLE CORE @ 2,4GHz
RAM - 2Gb 800MHz DDR2
Video - ATI Radeon 4890 - 1GB
Blender version - 2.49b

Res: 1600x1200 / 32bit
GLSL with standard file setup ( back lamp left in)
“enable all frames” and display lists ticked
3 x W ok, ctrl t — 151296 Faces, 226944 Edges
137 fps avg, stable

one more W ok, , ctrl -t gives 605184 faces and 907776 edges
131 fps avg, stable

5th w and blender crashes

switching display lists off results in half the framerate

This is a pure Game(-engine) rig, therefore the “prehistoric” CPU. However it even runs Crysis smoothly ( DX9, 20-50 fps, avg. 33 fps, everything on high, not kidding) and i’m still using my old 400W PSU (gets only handwarm, no ingame crashes at all).

What are all these cores for :wink: ?

@3d-penguin

if you had more cores you could get an even higher fps in crysis, your cpu is realy capping ur nice graphics card

@3d-penguin

if you had more cores you could get an even higher fps in crysis, your cpu is realy capping ur nice graphics card
Yes, i know my friend. But this one gives the very best “bang for buck”. Look at other crysis benchmarks with killer CPUs on the net. Not much better. I can still update the CPU, if i have some spare cash. But for all the games i play now: Smooth is smooth and even smoother is nice but not economic. EDIT: Apart from that: Upgrading the CPU would certainly make me also buy a new PSU (750 W just to make sure). Ouch.

I guess your right in some ways, the graphics will be smooth if there isnt any physics stuff going on, but if theres a huge realtime explosion and theres bits flying everywhere your game would lagg because your CPU cant keep up(unless its magical). anyway i thought this thread was dead lol?

Nope, like i said: Minimum 20 FPS using Crysis CPU benchmark. Brutal graphics power rules.

Nice stats here :slight_smile:

exactly what I wanted to base my games,
btw, here are my specs :

Windows XP 32 Bit
CPU - Intel Core2Duo 3.17GHz
RAM - 2Gb
Video - NVIDIA GeForce 8800 GT
Blender version - 2.49b

all GLSL - one sun - no shadows - texture mode
60 fps - 200k tris
57 fps - 300k tris
35 fps - 400k tris

Interesting… 4 year old laptop gets 85fps with the basic benchmark and 45fps with a further level of subdivision (605k triangles). :eek:

Blender 2.49b
Vista Home Premium
2Gb RAM
Nvidia 7600 Go GPU (128Mb)
1.66MHz Intel Core2 Duo

Resolution: 1280 x 1024

The game engine really has improved. :slight_smile:

Edit: “Generate diaplay lists” was enabled. Without this, frame rate was down to 20fps for the 605k triangle test. Game start time was about 7 seconds without generating display list and about 10 seconds with generate disply lists selected.

OMG hi FunkyWyrm, im from derby!

oh and also if i set the priotirty in task manager to realtime i get about 10 frames more. oh and i also noticed the rasteriser is only at like 10 and the overhead is at like 80, what does overhead mean?