Sprite Render Test

Community Forums/Showcase/Sprite Render Test

Nack(Posted 2008) [#1]
Was doing a sprite rendering routine for my engine, just to show my progress =]



massive sprite with no slow down and all camera angle friendly =]


TaskMaster(Posted 2008) [#2]
What is this written in? Are those actually 2D sprites and you are scaling and drawing them to appear farther away?


plash(Posted 2008) [#3]
Thats really clever. I like the sprite style too :)


Mortiis(Posted 2008) [#4]
Lovely! now make a new medieval total war (first one) :)


Nack(Posted 2008) [#5]
@TaskMaster
Its written in Blitz3D. And no its pure 3D, its more of the lines of ragnarok online or seomthing.

@Plash
Thanks =]

@Mortiss
You just gave me an idea for a stress test :D

nack


mtnhome3d(Posted 2008) [#6]
looks cool


MGE(Posted 2008) [#7]
This is a showcase section not a graphics showcase, let's see an exe so we can verify the no slowdown statement. ;)


Doggie(Posted 2008) [#8]
http://www.jameskett.dsl.pipex.com/splatterfest.zip

Similar if not the same


Nack(Posted 2008) [#9]
@JGOware
I was getting to that ;)

@Doggie
Its similar.....yet completely differnet. My approach would be faster i presume since it use sprites while splatterfest use mesh. Plus the way my system handle everything is different.

Help me test =]


See if there are any slow down or lag.


MGE(Posted 2008) [#10]
Can you make it run full screen, say in 800x600x32 mode? Or better, allow a choice for which res to use at start up. Fraps does't like B3D in windowed mode.


johnnyfreak(Posted 2008) [#11]
no slow down or lag. it shlould be useful also a FPS counter.

:P


Nack(Posted 2008) [#12]
@johnnyfreak
hehe coool ^^ thx for trying. Dunno how to get a FPS counter....have to write a custom routine for that rite?

@JGOware
Updated version with simple custom resolution

*link below

Arrows key to move
Space key to generate dude
Mouse right click to move camera
Mouse wheel to zoom in

This version also support npc movement!! Please try again =]


MGE(Posted 2008) [#13]
"Updated version with simple custom resolution"

How can I make it run full screen?


MGE(Posted 2008) [#14]
Also, perhaps just holding down space instead of clicking would be better. It's taking a long time to get up to 1000 sprites! :)


_33(Posted 2008) [#15]
So you can give it a 3D coordinate and it will place itself properly with correct scaling and priority? Great! That is some nice work. So you z-sorted your spites or Blitz is doing it for you?


Nack(Posted 2008) [#16]
@JGOware
oh my bad, uploaded wrong version
Below is the new one.

@_33
thx! It will automatically be place and will switch the graphic accordingly. Its as simple as "PositionEntity"
I z-sorted it myself. Quite annoying in the beginning lol

http://www.4shared.com/file/46195963/877035e0/mainv3.html
This time you are started off with a pop of 300 =] nice number to start off hehe


Ross C(Posted 2008) [#17]
Is it using single surface quads? Or copyentity on sprites?


_33(Posted 2008) [#18]
But Nack, what is the FPS when you're at 1000 sprites? Are you using FastImage? I'd be pretty curious to see how you figured out the sprite priority! Are you using a list of them, like a Type list, and you're shuffling them in that list?


Nack(Posted 2008) [#19]
@Ross C
Its use sprites. Its just createsprite cmd. Would probaly be faster if i use copyentity. but with createsprite i can create unique graphics for each actor (sprites).

@_33
No, not using FastImage. Dont think it helps in this case. By priority u mean how i manage them? Its type list. A very well structure list, using a few data structure techniques. It only loop thru entity when necessary. Still trying to find way to boost speed up. My FPS is 59-62. My comp is crap, mite be even faster.




johnnyfreak(Posted 2008) [#20]
up to 1650 spirtes in movement no slow down

resolution:1024x768, fullscreen

on windows Xp, intel core duo 1,83 Gh 1Gb RAM NVIDIA GeForce Go 7400




Nack(Posted 2008) [#21]
1650! perfectt.

I made some more improvements and speed is faster. Here is the stress test version.

Starts off with p 500, space bar increment pop by 200. Added fps counter as well. My comp is crap so my max without slow down would be 1500. Been trying to improve that , want see how it runs on other system. This is a critical part of my engine, so dun want too much resource wasted on this. cus once the game logic is thrown in, fps goes down hill haha

http://www.4shared.com/file/46293944/88ddefb3/stresstest.html


Yahfree(Posted 2008) [#22]
2500 sprites before I drop below 60 fps

NVIDIA geforce 9600GT / P4 3 Ghz processer


Gabriel(Posted 2008) [#23]
By priority u mean how i manage them?

I think he means how you decide which ones are drawn on top of which others.


degac(Posted 2008) [#24]
1700 Sprites
In movement 53-56 FPS
Stopped 62-63


Ross C(Posted 2008) [#25]
Surely then, using single surface would speed things up more, than the createsprite() command? Looks pretty cool!


johnnyfreak(Posted 2008) [#26]
1900 -> 59fps
2100 -> 56fps


Bremer(Posted 2008) [#27]
moving 2900 before getting under 60fps
non-moving 3300 before getting under 60fps

Quadcore 2.4ghz and 2x 8800gt sli setup.


MGE(Posted 2008) [#28]
2000 on my dev kit at 20fps. I get very similar results using Blitzmax and my own sprite engine. The no slowdown remark had me curious, that's for sure. ;) This is a cool test, but nothing new as far as B3D sprite render speed. I think a sprite candy test might even yield better performance.


Nack(Posted 2008) [#29]
oh thx for everyone for testing.
@Gabriel
Ohh, in that case, its kinda a custom formula thing that "prebake" its location before hand. So the system will know which one goes first etc. and thus major speed. However, since this little process can be done in real time, it really doesnt matter. haha

@Ross C
ohh i should make a test then lol

@ JGOware
now i am curious in ur sprite engine =D Too bad i have no sprite candy, would really want to try it here. Heard great things about it. But anyhoo, in the end, what i am trying to archive is not a sprite engine. Its just first part of my project. I just want to see how much it can render before it 'breaks'. apparently a lot hehe. I dun want something so small to hog resource, i need room for other system and logics lol.


MGE(Posted 2008) [#30]
Dont get me wrong, your performance is fine and typical of B3D. The first thing I read was "massive sprite with no slow down" and I was instantly curious. ;) Sprite Candy with it's single surface rendering would give you a speed increase, especially on lower end configurations. My Blitmax sprite engine is typical and nothing unique, I'm actually in a holding patten because I'm deciding to either stick with Bmax or move over to B3D. ;)


Ross C(Posted 2008) [#31]
I think it really depends on your language needs. Is blitz3d's language limiting you? If not, then maybe you'd best sticking to it. If so, then blitzmax has alot more advanced programming capabilities.


_33(Posted 2008) [#32]
You can always pull off some tricks to increase the speed of your programs. You have to know the weaknesses of a language in order to circumvent them, and you have to know the strengths.