3D Rad - Free 3D game maker - Forum

This forum is now archived!

This forum is locked, and is a read-only version. A new community-ran forum can be found at classdev.net

News:

The 3DRad community can be found at classdev.net.

Pages: 1 [2] 3

Author Topic: Scripting and a skinmesh question  (Read 3692 times)

« Reply #15 on: March 07, 2010, 05:52:02 PM »
which is a pretty elegant way to say "the limit 3drad can handle without killing itself".

short way to say "the limit that your system can process without breaking something, in 3drad which is bad, bad, bad". The limit *may* depend on system specs, not 3drad limitations alone.

actually shortway would be "this sucks!", but hey, is not my fault if is not possible to do a game with more than 200 objects in there.  ;)

The limit *may* depend on system specs, not 3drad limitations alone, yes, that's possible true... but I think the system specs part is quite insignificant here (like when you said "hey, textprints can load faster on faster systems"... yeah right! like 0.001 seconds faster on a 3 years from now new computer :D)


----------------------------

When you have hundreds of objects in a project, the overhead caused by internal messages (that are always exchanged, even for objects that do apparently nothing) can be bigger than the overhead caused by rendering or script processing.

internal messages are exchanged only if the objects are linked?
or that isnt taken in account?
« Last Edit: March 07, 2010, 05:57:19 PM by loop »
Crashing Boxes - winner of the 3d games category at the 5th Uruguayan video game contest
get a copy for your iPad/iPhone!
« Reply #16 on: March 07, 2010, 06:05:12 PM »
I was hopeing that wouldn't be the answer Fernando  :'(, that means I might not be able to make my game in rad, which is a shame as it's so intuitive. but I suppose limits are limits. if nothing can be done is there any way 3Impact will ever catch up to 3drad as the features and similarity to 3Impact is why this would have been great, but Rads object limit is way to low to make my game as this would'nt be an issue in 3Impact.

if nothing can be done I'm going to have to move on unfortunatley. nuts. if nothing can be done Fernando which is probably the case I have converted the paralax shaders I can give to the community though would need 6.44 to fnnish them off. as for the gpu particle editor I'll wrap that up this week with it's current abilities and give put that up for the community aswell though need 6.44 to finnish that off aswell. so if you want to trade before I move on that's cool but only if this looks like it can't be worked around.thanks Fernando.
using 3Drad 7.22

system specs:
Windows 7 Home Premium 64-bit
Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz (4 CPUs), ~3.2Ghz
8 gig ram
Geforce GTX 650 1024 MB GDDR5
DirectX 11
« Reply #17 on: March 07, 2010, 07:27:02 PM »
I dont know if this might actually help, but I noticed ,atleast in my project, that setting skinmesh animation speed below 1 actually kills framerate. I dont know if this is a bug or not, so i dont know if you have any skinmeshes with the speed set below that ?
Roll out!
http://www.youtube.com/watch?v=VD8MvMaPNO4

Do you have kids between the ages of 3 and 9?

http://www.amazon.com/dp/B007K1EFC6
« Reply #18 on: March 08, 2010, 06:58:00 AM »
The last thing I want is seeing a member like you leaving genetransfer  :o . It would be a huge loss for the 3drad community!

As I said I will use your test project to see if this particular limit can be pushed a bit up by optimizing something. Behind the scenes, in 3drad, a lot of stuff happens. This is what makes 3drad easy to use. These procedures are highly optimized already, but I will do my best to see if something can be done to optimize further.

internal messages are exchanged only if the objects are linked?
or that isnt taken in account?

Depending on the objects, messages can be exchanged always, between the object and the system, even if it isn't linked to anything. Certain messages are only necessary when rendering the Virtual Editor (this is why in play/compiled mode framerate is usually better).

actually shortway would be "this sucks!", but hey, is not my fault if is not possible to do a game with more than

of course, loop, of course. Still what I said is that the limit may depend on the system specifications. So, we may not be able to say that the limit is 200 skinmeshes, as this may be 100 or 300 on another system.

Of course there are limits in the software and of course it's not your fault. That's entirely my fault, because I'm bad, bad bad too, like 3drad  ;D


I dont know if this might actually help, but I noticed ,atleast in my project, that setting skinmesh animation speed below 1 actually kills framerate. I dont know if this is a bug or not, so i dont know if you have any skinmeshes with the speed set below that ?

Thanx Weapon121, I tried with the two projects below but animation speed didn't seem to make a difference on the PCs I tried them on. Could somebody please try and see if framerate changes for the test projects I attached below?
« Reply #19 on: March 08, 2010, 07:35:13 AM »
The frame rate drop only ocurrs in a "Realworld" situation where you have plenty of scripts, EOL etc., especially when you compile it as maximized. I dont think its the case though  :)
Roll out!
http://www.youtube.com/watch?v=VD8MvMaPNO4

Do you have kids between the ages of 3 and 9?

http://www.amazon.com/dp/B007K1EFC6
« Reply #20 on: March 08, 2010, 07:55:17 AM »
Of course there are limits in the software and of course it's not your fault. That's entirely my fault, because I'm bad, bad bad too, like 3drad  ;D

see, satirize my comment dosnt really help the facts.
Crashing Boxes - winner of the 3d games category at the 5th Uruguayan video game contest
get a copy for your iPad/iPhone!
« Reply #21 on: March 08, 2010, 08:29:07 AM »
The frame rate drop only ocurrs in a "Realworld" situation where you have plenty of scripts, EOL etc., especially when you compile it as maximized. I dont think its the case though  :)

I agree. The slowdown reported by genetransfer is almost certainly caused by the internal messaging system which gets overloaded.

Still you may have found a different issue. Animation speed isn't supposed to make any difference under any circumstance, as the algorithms don't change when animation speed changes. If it does there must a be a problem somewhere.

I will need to be able to reproduce the issue before I can see if a bug exists, though  :-\

see, satirize my comment dosnt really help the facts.

I agree about the facts. Software is limited. But solutions don't come by snapping fingers. You make your comments as if I'm always bent on hiding something and sorry but this is getting a bit funny when not annoying.
« Reply #22 on: March 08, 2010, 08:52:23 AM »
oh, Im sorry.

Quote
What you are getting is probably the limit that your system can process without breaking something.

I guess you are right, Im a little over the top and the reason you omit "3drad" in there is a happy coincidence, or just the fate that is implied.

anyhow!!  ;)

I'll try my best to do not annoy you so much with my totally uncall remarks about elegance.
« Last Edit: March 08, 2010, 08:57:37 AM by loop »
Crashing Boxes - winner of the 3d games category at the 5th Uruguayan video game contest
get a copy for your iPad/iPhone!
« Reply #23 on: March 08, 2010, 10:31:01 AM »
@genetransfer, I tried your test project and, depending on the system, it may fail to complete loading with a crash, a freeze or an error message, or it may complete loading and freeze on rendering.

When it fails to load the cause is apparently that the system cannot provide enough 'un-fragmented' memory for the SkinMesh object strucutures. When you run out of memory really weird things can happen, like the bizarre 000_shadow.x error message.

When the system can provide sufficient memory, the slowdown/freezing is caused by messages overloading the memory buffers used to convey them.

So, in practice, what we have is that, at least for SkinMesh, the limit is on average a couple hundreds object per project, due to causes that depend on system specifications.

I'm afraid the only workaround is designing your game to avoid having too many SkinMesh objects in a project. Where SkinMesh imposters and frame-by-frame animation cannot be used to achieve this, the ability to split your game to different levels (projects) may be the only alternative  :-\


the reason you omit "3drad" in there is a happy coincidence

well :D that we are talking about 3drad on this forum should be understood by now. The reason of the problem reported by genetransfer is that, based on system specifications, something breaks. What it breaks exactly and after how many SkinMesh objects, depends on how much memory your system can allocate for 3drad resources.
« Reply #24 on: March 08, 2010, 10:51:27 AM »
Im not sure this happen only with skinmesh but I think is more related to objects, no matter what kind of object.

at least in my case, the number of skinmeshs is really low in comparision with other things, like eventOnwhatever, scripts or RBs (sphere RBs by the way, which I suppose shouldnt be very expensive...).

just trying to round the idea, because limit the skinmesh number to, per say... 200, wont save your neck when you really gonna need probably at least 3 or more times that number of objects for other functions.

I have a question,
why so such simple skinmesh as quads eat so much memory being a lot, when you can load without problems at all a single skinmesh with thousands of polys??
I just dont understand that...  ??? ???
Crashing Boxes - winner of the 3d games category at the 5th Uruguayan video game contest
get a copy for your iPad/iPhone!
« Reply #25 on: March 08, 2010, 01:55:43 PM »
3D Rad can run out of system resources for various reasons. Each object has its own resource requirement, and these resources, for each object, may vary depending on how it is used in the project.

So, depending on how your project is, you can reach the limit without using Skinmeshes at all. For example you can maxout by just using a lot of sprites, or scripts.

As for skinmeshes with one single triangle versus hi-poly models, this is possible because Skinmesh objects need some data space just for being there. Space for polygons, textures etc is extra.

The rule is always conceive your projects with the minimum amount of objects possible. Keeping the ability of using multiple projects 'connected' with the ExitFade object in mind is recommended, when drafting your games.

psikotropico

« Reply #26 on: March 08, 2010, 02:35:29 PM »
The rule is always conceive your projects with the minimum amount of objects possible. Keeping the ability of using multiple projects 'connected' with the ExitFade object in mind is recommended, when drafting your games.

agree... I'm optimizing my game by this way: "less as possible". And now I'm getting great results... levels with 150/200 objects made some time ago can be done with only 40/50 objects now.. the secret: game design. I.e., you can do a complete game with only one or two textprints, if you design your game thinking on that...

OPTIMIZE YOUR GAME
« Reply #27 on: March 08, 2010, 03:04:40 PM »
Gene, do you need all 300 skinmeshes in the rendering window at once, or just 10,20,30 of them ?
I was just thinking that in my treeLOD and unlimted flight terrain I use imposters and check if iSphereVisible on imposter location, if not stay hidden (uses no proscessing power). For regular skinmeshes you should be able to do the same using an array.

In my current unlimted terrain project I create 6000 imposters, most of them are always hidden.

PS! Skinmeshes and imposters outside the rendering window uses processing power, hidden ones does not.
So my best tip would be to use iObjectHide/Show or iObjectImposterHide/Show on every skinmesh or imposter by testing if iSphereVisible, this way you can handle thousands.

« Reply #28 on: March 08, 2010, 03:56:28 PM »
Shadmar, maybe Im wrong, but I think you may be not getting it.

it dosnt matter if the skinmesh/objects are hidden or not started.
is the fact you have them sitting there in the object list (because you may need them later, in the same level -so you cannot exitfade  ;)) that gonna screw you.
the "uses no processing power" is true... under certain circumstances, and the problem we are facing here is beyond those circumstances.

psikoT, sometimes you cannot optimize "MORE".
realize that you can instance skinmesh (and particles but it dosnt matter) only, so you need to multiply objects for each thing you have there, in example: enemies. so how many enemies objects your enemies need? and how many you want in your game? 3? 4? hehe...
« Last Edit: March 08, 2010, 03:58:53 PM by loop »
Crashing Boxes - winner of the 3d games category at the 5th Uruguayan video game contest
get a copy for your iPad/iPhone!
« Reply #29 on: March 08, 2010, 04:26:13 PM »
@Fernando, yeah I didn't think anything could be done due to limitations of the overhead of Rad. I just did a test in my 3rd person shooter by just adding the another player so I had an extra 60 obhects, extra bodies,shadows,joints etc... and by adding this one extra player charactor bringing the total to 210 objects, frame rate was horrible, due to as you described all the behind the scenes stuff. the overhead is too much for a game like I want to make with ragdolls etc... as I've had 25 ragdoll's worth of objects not to mention weapons etc.. in 3Impact and it doesn't flinch so this is the trade off I suppose for makeing 3drad. which is great but I see now that it just isn't good making bigger games.no one to blame there it's just how it is.

if 3Impact had all the imposter features and the view/projection matrixs I'd be able to go back no problem but those extra features is why I decided on rad and it's similarity to 3Impact and ease of scripting.

well that looks like it for me...wish everyone the best and thank everyone who helped me out. And Big thanks Fernando for all your effort that you put out everyday to help the community it's truely inspirational. cya everyone.

Quote
Im not sure this happen only with skinmesh but I think is more related to objects, no matter what kind of object.
@loop, yes I found this also.

Quote
agree... I'm optimizing my game by this way: "less as possible". And now I'm getting great results... levels with 150/200 objects made some time ago can be done with only 40/50 objects now.. the secret: game design. I.e., you can do a complete game with only one or two textprints, if you design your game thinking on that...
@psikoT, I've optimised(and am using bare minimum objects) as much as possible though for what I want to achieve, 3drad can't handle it, 3Impact can but the overhead in rad prevent's it, unless I cut out the things that make it interesting. It's not the end of the world but I'm glad I understood this now before I did any more.

Quote
Insert Quote
Gene, do you need all 300 skinmeshes in the rendering window at once, or just 10,20,30 of them ?
I was just thinking that in my treeLOD and unlimted flight terrain I use imposters and check if iSphereVisible on imposter location, if not stay hidden (uses no proscessing power). For regular skinmeshes you should be able to do the same using an array.

In my current unlimted terrain project I create 6000 imposters, most of them are always hidden.

PS! Skinmeshes and imposters outside the rendering window uses processing power, hidden ones does not.
So my best tip would be to use iObjectHide/Show or iObjectImposterHide/Show on every skinmesh or imposter by testing if iSphereVisible, this way you can handle thousands
@shadmar,great Idead there shad, but it's not just the skinmeshes it's all the other objects working aswell as them and with them.
even though I'm not useing any imposters, I tried hideing 90% of all visuals and it was still juttering all over the place as if nothing had changed. as for needing all 300 skinmeshes, no but 300-400 objects yes. it's really the combination of the two.
using 3Drad 7.22

system specs:
Windows 7 Home Premium 64-bit
Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz (4 CPUs), ~3.2Ghz
8 gig ram
Geforce GTX 650 1024 MB GDDR5
DirectX 11
Pages: 1 [2] 3