Gamestudio Links
Zorro Links
Newest Posts
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (AndrewAMD), 1,089 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 3 1 2 3
Doing it full 3D or 2.5D (crazy whining...) #288828
09/08/09 23:15
09/08/09 23:15
Joined: Jul 2001
Posts: 6,904
H
HeelX Offline OP
Senior Expert
HeelX  Offline OP
Senior Expert
H

Joined: Jul 2001
Posts: 6,904
Hi guys,

yes, I am currently NOT WORKING on anything caused by stupid things like regular life. That sucks! Though, I have written and actually drawn a lot of things down for Razor for my Valentine now and then :-)

Maybe you've seen the old prototype trailer years ago on YouTube & Dusmania (http://www.youtube.com/watch?v=9kVnwHQFeTA), well, the whole game was full 3D and I ran into *serious* (and I can't stress this enough) performance issues due to high entity count (enemies, weaponary, blood effects and environment). There was nearly 0% CPU time spent on collision, only the backlight shader, no hires textures no real next gen eye candy and stuff.

Also the amount of enemies was way below the rate I ever wanted it to be. So, I played AoE 2 and Stronghold again these days and I asked myself: "your perspective is relatively fixed and far away - why don't you show your characters/objects as animated sprites/particles as 2.5D elements in a 3D environment mesh?" -- this way (along with DDS compression and a nifty tool chain) I guess I could render hell-a-lot more characters on screen even on lower machines.

I don't know why but this is really appealing to me. What do you think?

Cheers,
Christian

Last edited by HeelX; 09/08/09 23:22.
Re: Doing it full 3D or 2.5D (crazy whining...) [Re: HeelX] #288832
09/09/09 00:35
09/09/09 00:35
Joined: Oct 2005
Posts: 4,771
Bay City, MI
lostclimate Offline
Expert
lostclimate  Offline
Expert

Joined: Oct 2005
Posts: 4,771
Bay City, MI
dumb question, but are you making non moving objects static?

Re: Doing it full 3D or 2.5D (crazy whining...) [Re: HeelX] #288836
09/09/09 00:44
09/09/09 00:44
Joined: Mar 2006
Posts: 3,538
WA, Australia
J
JibbSmart Offline
Expert
JibbSmart  Offline
Expert
J

Joined: Mar 2006
Posts: 3,538
WA, Australia
About the style: Awesome. I'm a huge AoEII fan (with the Conquerors expansion). Between me, my Dad, my two brothers and a couple of friends of ours we used to have regular 3-on-3 battles until recently when we lost the CD. That's why I'm making an RTS laugh But yeah, I think of that time when there were a decent amount of games made like that was great. Stronghold was very good-looking, and those 2.5D games or even completely 2D games looked way better than the full-3D games of that time.

About the framerate: I guess the framerate drop isn't the amount of 3D entities, but the amount of vertices being animated on the CPU. jcl expressed willingness to add a flag that allows for animation on the GPU, and hopefully that comes out soon.

Of course, we generally aren't meant to develop with updates in mind since updates are uncertain.

The style you describe would be awesome laugh Some really cool effects could be done, I reckon.

Jibb


Formerly known as JulzMighty.
I made KarBOOM!
Re: Doing it full 3D or 2.5D (crazy whining...) [Re: JibbSmart] #288853
09/09/09 05:24
09/09/09 05:24
Joined: Jul 2001
Posts: 6,904
H
HeelX Offline OP
Senior Expert
HeelX  Offline OP
Senior Expert
H

Joined: Jul 2001
Posts: 6,904
Quote:
are you making non moving objects static?


Yes I do but there were less objects static than you might think. All grass, plants and trees are for example animated (GPU, CPU). I also converted my originally bone animated entities into vertex animated entities. I spent a fair amount to get it running on my laptop that time. It actually run on it with ~24 fps and I originally intended to improve on the graphics much more... Everything that happened frustrated me, though. By the way, I am NOT considering taking the old codebase and project framework for the renewal.

Quote:
yeah, I think of that time when there were a decent amount of games made like that was great. Stronghold was very good-looking, and those 2.5D games or even completely 2D games looked way better than the full-3D games of that time


The original motivation comes from the Settlers 3/4. BlueByte managed to make only with 2D and a 3D Terrain a vivid, wonderful world with lots of animations without trying to drive on the wave of coolness other strategy games drove on taking it to 3D. I would also have to do the assets in 3D and make an automatic tool that creates from it from certain angles a frame series of animations. Could be tricky to mix everything together (animations, angles, appearance states like blood splatter on the face when nearby some flesh has been chopped off.. ya know).

Quote:
I guess the framerate drop isn't the amount of 3D entities, but the amount of vertices being animated on the CPU. jcl expressed willingness to add a flag that allows for animation on the GPU, and hopefully that comes out soon.


I actually noticed a HUGE drop when using much bone animated entities (like 75-200 characters visible at the same time). So I would always prefer vertex animation when you can use it. Though, a GPU processed animation could indeed speed things up.

Re: Doing it full 3D or 2.5D (crazy whining...) [Re: HeelX] #288875
09/09/09 08:41
09/09/09 08:41
Joined: Apr 2008
Posts: 2,488
ratchet Offline
Expert
ratchet  Offline
Expert

Joined: Apr 2008
Posts: 2,488
Why not simply using LOD ?
Caus making characters 2D ans their animation will perhaps be a too much amount of work (even in coding) !


You can quickly made LOD models by removing vertexes, using low res textures at certain point !

You can make your own LOD for characters by code also, using 5 or more LOD steps will allow better performance and good transition between them difficult to notice if well done!

-For plants , trees, use simple billboard at some distance (Far Cry was a great example)
-Even for buildings you can use billboards like in Guild Wars game where it is oubviously used and the transition is ok caus they do a fade in , fade out transition by transparency.
-Oblivion alos use progressive fade in with transparency to make very near objects appear, and caus you play and it is very smooth , you even not notice it grin

If it do not speed try some other 3D engine (even free like Ogre3D or non free like C4 engine) ? (A7 is not the more powerfull for heavy scenes and effects) !

Re: Doing it full 3D or 2.5D (crazy whining...) [Re: ratchet] #288928
09/09/09 12:25
09/09/09 12:25
Joined: Jun 2004
Posts: 655
to your left
BoH_Havoc Offline
User
BoH_Havoc  Offline
User

Joined: Jun 2004
Posts: 655
to your left
This is just a guess, but i think it's not the number of effects or shaders that drops the fps, but rather the high amount of entities.
When i started with my Idon Beat Player, i used one entity for each cube and then scaled/moved it based on the music's spectrum.

Belive it or not, but 400 cubes, just scaling/moving dropped my fps to ~70fps. And i had NO effects, NO shaders, NO nothing. Just the cubes, moving around.
So i ended up creating an array of cubes in 3dsmax and then animated it by moving it's vertices via ent_getvertex / ent_setvertex. The code is much more complex as it was in the first version, but now it runs at ~450fps, WITH effects, WITH shaders. The "only" difference is that there's only 1 model being rendered, and not 400.

So yeah, unless you find a way to cluster your entities and use 1 model instead of ~10, don't expect better performance, just by using 2D Sprites instead of 3D models.

However, as you are thinking about using sprites, you might want to code yourself a simple instancing algorythm. The vertex stream the cpu has to send to the gpu for each entity can get pretty high once you have lot's of entities. Instancing tries to send one big vertex stream instead of many small ones. There are many tutorials on instancing out there, maybe that helps.
Or maybe you can "hack" the particle functions and create your 2D characters out of particles, as these are instanced in A7 Pro and you can render hugh amounts of it.


Of course, a high amount of entities is not the only fps hit, shaders, polygons, textures, skills, flags, etc are of course also part of the fps eating. But you know that yourself wink


Shade-C EVO Lite-C Shader Framework
Re: Doing it full 3D or 2.5D (crazy whining...) [Re: BoH_Havoc] #288933
09/09/09 12:54
09/09/09 12:54
Joined: Apr 2008
Posts: 2,488
ratchet Offline
Expert
ratchet  Offline
Expert

Joined: Apr 2008
Posts: 2,488
Lot of ennemies is really needed ? try to make less ennemies to fight also perhaps it will be a really easy way.
Btu if you really want to have lot of 3D characters, A7 is not an engine sepcialized in that, but perhaps you can do something with instancing ?

Re: Doing it full 3D or 2.5D (crazy whining...) [Re: BoH_Havoc] #288990
09/09/09 19:44
09/09/09 19:44
Joined: Jul 2009
Posts: 36
S
SomebodyNew Offline
Newbie
SomebodyNew  Offline
Newbie
S

Joined: Jul 2009
Posts: 36
Quote:
Belive it or not, but 400 cubes, just scaling/moving dropped my fps to ~70fps. And i had NO effects, NO shaders, NO nothing. Just the cubes, moving around.

Do you have a number in mind that you would consider a reasonable amount of entities for the 3dgs engine?
I sorf of ran into the same problem (using to many entities). The obvious thing to do is to scale everything down a bit. But it doesn't really solve the problem since it also scales down the epic feeling of having entities everywhere.

I don't mean to hijack your topic but how do you about the engines weaknesses and strengths? 3dgs beeing really fast with particles for example (just an example - don't know whether that is true or not).

It happens quiet often that there are many different ways you can go when trying to code something. Of course I want to go the way that consumes the least CPU/engine ressources - but I frankly don't know what factors determine the engines speed.

Testing... well there are way to many factors to take care of. Doing A might work in Situation B but would be horrible in C as well as cause difficulties if used in combination with...etc...
The engines documentation doesn't really talk about that (aside from: particles are faster than sprites, etc.).
Where do you pros know all those things from???
*bibber* plz don't say from experience laugh

Re: Doing it full 3D or 2.5D (crazy whining...) [Re: SomebodyNew] #288999
09/09/09 20:52
09/09/09 20:52
Joined: Jul 2001
Posts: 6,904
H
HeelX Offline OP
Senior Expert
HeelX  Offline OP
Senior Expert
H

Joined: Jul 2001
Posts: 6,904
@Ratchet

Quote:
Why not simply using LOD? Cause making characters 2D and their animation will perhaps be a too much amount of work (even in coding)!


Did you watched the video? The playfield is almost 90% visible all the time and there is not much depth in the scene. So, LOD changes, if too hard, are very visible to the eye. I don't think that doing the sprites is much work, though. In fact I would also do a 3D character with shading and all the fancy stuff. A tool must be indeed made, that takes the model, a fixed viewpoint and a schedule of how fine the angle degree and what animations should be capture at which speed. Then, all possible states will be rendered and cropped automatically. This is a pretty straightforward task to create such a tool, not really hard to do.

All your other points depend on scenes with a very dynamic viewpoint. Mine is somehow restricted and some kind of fixed, so it doesn't apply to my case. The engine argument is a good one. Though, I am very familiar with Gamestudio so as long as I think I can do anything with it, I'll do it! :-)

Quote:
Lot of ennemies is really needed ? try to make less ennemies to fight also perhaps it will be a really easy way.


more enemies = more blood = more fun :-)


@BoH_Havoc

Quote:
Belive it or not, but 400 cubes, just scaling/moving dropped my fps to ~70fps. And i had NO effects, NO shaders, NO nothing. Just the cubes, moving around.


This is exactly the same thing I experienced.

Quote:
However, as you are thinking about using sprites, you might want to code yourself a simple instancing algorythm.


In that case, I would ask JCL if this will come into the engine in the near future or I would pay someone who is able to this in a decent manner.

Quote:
Or maybe you can "hack" the particle functions and create your 2D characters out of particles, as these are instanced in A7 Pro and you can render hugh amounts of it.


Yeah, I have particles in mind, too. Though, I have to check the sorting first. I will most certainly use 1-bit alpha masks and need no rotation, so this will might work. I don't think that I will have a speed boost due to instancing because of the many frame states a character can have but for grass, foliage and flowers this might become a reasonable advantage.


@somebodynew

Quote:
Where do you pros know all those things from??? *bibber* plz don't say from experience


From experience :-) yeah, there are certainly some rules of thumb in general for games, 3D games and special situations but most certainly you have to get intimate with the things you are used too like in real life to know the weaknesses. If I would do an indoor shooter I wouldn't be frighted because I could take advantage of BSP tree compilation for instance (just to name one rule of thumb).



I'm just interested if anybody ever tried this with Gamestudio? Though, I am suprised in a positive manner from your replies!!!

Cheers -- and have a beer!
- Christian

Last edited by HeelX; 09/09/09 20:54.
Re: Doing it full 3D or 2.5D (crazy whining...) [Re: HeelX] #289027
09/10/09 02:55
09/10/09 02:55
Joined: Mar 2006
Posts: 3,538
WA, Australia
J
JibbSmart Offline
Expert
JibbSmart  Offline
Expert
J

Joined: Mar 2006
Posts: 3,538
WA, Australia
You're not using c_move between all those enemies, are you? There are cheaper ways to have them avoid each other and just use c_move or c_trace for the razors. I've never had trouble with hundreds of entities, provided I optimised their actions.

If you don't mind:
How many entities do you have on-screen (or, how many do you want to have?)?
How many of those are enemies (or other moving objects)?

Jibb


Formerly known as JulzMighty.
I made KarBOOM!
Page 1 of 3 1 2 3

Moderated by  checkbutton, mk_1 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1