Thanks IndiePath for the BlitzMax version! hmm... I'm seeing a disturbing trend. We seem to be getting better performance on our own machines compared to running on other machines. IndiePath stated speeds better than DOUBLE my engine on his machine, yet on my machine the BlitzMax version runs slower than the 2 previous demos. The attached screen grab shows it running at 36fps. "FYI, I can run 10,000 Sprites in BMAX at 60FPS." I got 10,000 at 10fps on my box.
More Results: (This is my highest end machine that I dare develop on.) AMD Sempron 3100+ 1.8ghz Geforce 4 MX 4000 2000 Sprites Full Screen BMax: 76fps DXGame: 68fps Undersan: 46fps
I think I know why my initial results were very high. BMAX will use TnL if it's available, if not then it falls back to the standard HAL renderer (thanks Tim). The card on this machine supports TnL, my second test machine does not.
It seems your machines like your engines the most undersan I think you have a bug , when It says 4 sprites I see 3, when it says 8 I think I see 6, when 2 - 1 and when 2000 I see 1978 sprites ps. joking about the last one
I tried various numbers: At 2,000 sprites: Blitz - 506 DX -103 Undersan - 423 At 1,000 sprites: Blitz - 885 DX -227 Undersan (1,024 sprites) - 620 At 500 sprites: Blitz - 1430 DX -346 Undersan (512 sprites) - 680 At 100 sprites: Blitz - 2750 DX -603 Undersan (128 sprites) - 720 At 10,000 sprites on the Blitz demo, I got 104fps. My system specs are 3.2 Ghz Pentium (dual CPUs), 4 Gig ram, 256M nVidia geForce 6800.
I just made a version for OpenGL (in Delphi), but I can't disable vsync and use double buffering at the same time, so I made two different versions. The version without double buffering blinks all the time, but the other one runs at your desktop refresh rate. www.wieringsoftware.nl/tmp/sprites.zip Results: Code: 100 500 1000 2000 4000 ------------------------------------------------------------- VB window 460 226 140 80 n/a (dxgame) full 428 216 138 80 n/a ------------------------------------------------------------- C++/DX 8.1 * window 512 250 155 86 46 (undersan) full 808 312 173 94 50 ------------------------------------------------------------- BlitzMax window 636 342 216 126 68 (indiepath) full 1150 462 266 144 76 ------------------------------------------------------------- OpenGL window 912 408 240 133 70 (wiering) full 950 425 252 139 73 ------------------------------------------------------------- Java (princec) full 760 280 158 85 45 ------------------------------------------------------------- * 128/512/1024/4096 instead of 100/500/1000/4000 IndiePath, maybe you could compile your version for OpenGL and see if that makes a difference.
This is all very interesting. This has shown me that at least my rendering methods are not taking advantage of certain hardware abilities in some video (newer??) cards. But while on older cards, onboard cards, the overall performance in all of the demos seems to be relatively level.
Just did a fresh reboot from my main dev box for updated results: Intel OnBoard Extreme Graphics Celeron 2.93ghz 2000 Sprites Undersan (C++/DX8): 36fps IndiePath (BlitzMax/DX7): 35fps DXGame (VB6/DX8): 34fps Wiering(Delphi/OpenGL): 28fps
Hey, give this Webstarted one a test: Java sprite test with LWJGL (Should run on Windows, MacOS PPC & Intel, Linux x86) Cas
Interesting. That's a whole 'nother metric to test now... the speed of the built-in text rendering methods in various engines.
I thought the point was comparing higher-level engines? I really don't want to be forced to worrying about things like this... that's why I'm using PTK (or BlitzMax, PopCap) to begin with!
Thanks to everyone who has contributed! To anyone posting results, I'd appreciate it if you'd specify your video card (most of you have). princec, can you double-check that your app is using 32-bit color throughout? I notice some banding on the little blue-and-pink tile. Here are my results: Code: windowed/fullscreen framerates for 2000 32x32 sprites nt = not tested by me for wiering, I used sprites.exe. Radeon 9600 Pro dxgame 91/91 undersan 204/234 indiepath 210/232 wiering 171/188 princec 165/165 Geforce4 Ti 4400 dxgame 100/98 undersan 183/216 indiepath 201/220 wiering nt/nt princec nt/nt Geforce2 GTS dxgame 70/72 undersan 54/60 indiepath 75/91 wiering 72/82 princec nt/91 I agree. It would be nice to see some commercial engines here. As far as indiepath's BlitzMax-powered app, I'm unclear whether he's using his customized version of BlitzMax, or the "stock" version.
I think step 2 now is to use sprites from 4 different textures (randomly) and have them all rotating and moving with floats. And animate each sprite each frame to use a frame from each texture one at a time in sequence Cas