Jump to content


Coding for the new 3D system....


  • This topic is locked This topic is locked
82 replies to this topic

#41 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 11:13 AM

There are lots of solutions in the 3D section to save FPS. Note that all the discussion is about more frames per second and not about saving loading time.

please make a topic about loading time reduction or give some possible solution or sample

i use global.model to speed up FPS but the loading time increases sometimes i wait for 15 minutes for the game to run.I noticed with the option global.model or global.texture the loading time takes longer.

For me the biggest concern now is loading time. Then i promise you i will produce something with GM that is close to SplinterCell.

Edited by Arial, 06 May 2011 - 11:17 AM.


#42

  • Guests

Posted 06 May 2011 - 11:21 AM

In GameMaker this is true, but for big 3D engines? No sir.


Sorry, thats just wrong. Large 3D engines (and I've written a few!) don't render QUADs unless they have to. Things like particles are batched into "dynamic" vertex buffers. This means we go through and add a QUADs in world space into the buffer, then when a renderstate changes (blend mode, texture etc.) then the last batch is submitted. This avoids the issue of having to draw 20,000 QUADs. D3D and graphics card DO not like doing this.

I'll say this again, graphics cards WANT to draw 20,000 triangles (well..large numbers of polys). graphics card dev support gets VERY upset if you complain a game is slow, and they discover your drawing 2 or 3 polys at a time.

What your getting confused over is the difference between static and dynamic vertex buffers. Static buffers are ones you create, and then never change. Dynamic buffers are ones you can create each frame, but these tend to be about a third the speed of static ones. But... you ALWAYS batch things if you can, and certainly with particles etc. you HAVE to. Oh...and GameMaker doesn't even use proper Dynamic buffers either... :(

If you want to see the history of this... you USED to submit individual triangles, back in DX5 and DX6 days. Then we moved onto tri-strips (still DX6 days). When DX7 came out, we had hardware T&L for the 1st time, and at this point, this rule came into effect. To get the best from it, you had to batch render using vertex buffers, and we had to get used to static/dynamic models. Before this, there was ONLY dynamic meshes, because everything was submitted by the CPU a triangle or 2 at a time.

So really... trust me. You DON'T ever want to submit quads if you can possibly avoid it. Some times you can't help it... but a lot of the times you can.

As to draw call speed. it should be faster as the CPU will now not spend AGES making the models over and over again, it just throws it very quickly at D3D and returns. So should be better all round.


EDIT: Arial: Model Loading time is nothing to do with us... it's up to the extension. We won't be changing loading time that much, and to be honest most of it is in Audio setup, and it stalls inside DirectX Sound initialisation, which is again nothing to do with us; it's driver related.

#43 Phantom107

Phantom107

    Engineer

  • GMC Member
  • 2600 posts
  • Version:GM:Studio

Posted 06 May 2011 - 11:25 AM

OK, thanks for the explanation. I'm going to compare what you said to the documents on nVidia Developer Zone. If I don't reply to this matter then it's good.
  • 0

#44 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 11:27 AM

As to draw call speed. it should be faster as the CPU will now not spend AGES making the models over and over again, it just throws it very quickly at D3D and returns. So should be better all round.

Yeah but waiting 15 minutes to load my resident evil 4 clone with the same 3d models used in resident evil 4? While loading the original resident evil 4 takes only 2 minutes.

Please take this loading time issue also serious. Thanks

Edit: Sorry for my bad english. I try to explain the solution to this problem....To throw the d3d model like that without having to load it over and over. Then you have a better gamemaking program then Unity, Shiva and all the ohter non offerdable engines.

Edited by Arial, 06 May 2011 - 11:47 AM.


#45 Aragon

Aragon

    GMC Member

  • GMC Member
  • 138 posts

Posted 06 May 2011 - 02:06 PM

What is the problem of loading time? Just add a loading screen and thats all, people just have to wait. In the intro of your game you could really load 30% of the whole game, so I don't see the problem. And using models of 2mb is way to much for GM because it can't handle the models.

My biggest suggestion, add frustum culling not only backwards-culling it will save a lot, and create LOD system.
  • 0

#46 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 02:43 PM

And using models of 2mb is way to much for GM because it can't handle the models.

Today you have proven that you do not try to clone 3d games like splinter cell or resident evil.
And for sure you do not experiment with real good looking 3d models in gm8.1.

I have 3d models of 0mb which lower the fps of older gm version. You know why it was 0mb because I made the model very small so the computer gave 0mb file size. But the polygons stay the same. So if a 2mb impressive model of splinter cell is 200000 poly. When file size is reduced to 0mb the poly is still 200000. So it is not about file size of the model but about polygons and vertex and quads.

But for you to wake up the isseu of frames per second was solved whith the release of gm8.1. Trust me I experiment everyday with 3d models in gm. The frames per second produced in gm8.1 are reasonable speed.

The only major problem remaining is that the loading time is to much it should be at least 3x faster. Imagine you buy resident evil 6 but when you try to load and wait almost 20 minutes I think you will take cd out and never play it again.

Edited by Arial, 06 May 2011 - 02:46 PM.


#47 scream681

scream681

    Nick Larin

  • New Member
  • 1152 posts

Posted 06 May 2011 - 02:47 PM



As to draw call speed. it should be faster as the CPU will now not spend AGES making the models over and over again, it just throws it very quickly at D3D and returns. So should be better all round.

Yeah but waiting 15 minutes to load my resident evil 4 clone with the same 3d models used in resident evil 4? While loading the original resident evil 4 takes only 2 minutes.

Please take this loading time issue also serious. Thanks

Edit: Sorry for my bad english. I try to explain the solution to this problem....To throw the d3d model like that without having to load it over and over. Then you have a better gamemaking program then Unity, Shiva and all the ohter non offerdable engines.


There is no way GM would be able to handle Resident Evil 4 graphics, I'm surprised it loads at all... And loading models is the least of the issues you will encounter. You are talking about things GM was never intended for (or not yet at least).
  • 0

#48 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 02:51 PM

There is no way GM would be able to handle Resident Evil 4 graphics, I'm surprised it loads at all... And loading models is the least of the issues you will encounter. You are talking about things GM was never intended for (or not yet at least).

WTF? Did you ever tried to run a ripped model of resident 4 in gm? If no please do it. Then you will see the truth capabilty of GM. Some guys are brainwashed and believe what others say. And blindling you will not try out if gm can run impressive 3D models.

Edit: please try out something before you reject it

Edited by Arial, 06 May 2011 - 02:53 PM.


#49 Aragon

Aragon

    GMC Member

  • GMC Member
  • 138 posts

Posted 06 May 2011 - 02:56 PM


And using models of 2mb is way to much for GM because it can't handle the models.

Today you have proven that you do not try to clone 3d games like splinter cell or resident evil.
And for sure you do not experiment with real good looking 3d models in gm8.1.

I have 3d models of 0mb which lower the fps of older gm version. You know why it was 0mb because I made the model very small so the computer gave 0mb file size. But the polygons stay the same. So if a 2mb impressive model of splinter cell is 200000 poly. When file size is reduced to 0mb the poly is still 200000. So it is not about file size of the model but about polygons and vertex and quads.

But for you to wake up the isseu of frames per second was solved whith the release of gm8.1. Trust me I experiment everyday with 3d models in gm. The frames per second produced in gm8.1 are reasonable speed.

The only major problem remaining is that the loading time is to much it should be at least 3x faster. Imagine you buy resident evil 6 but when you try to load and wait almost 20 minutes I think you will take cd out and never play it again.

Today i will show you a pic of my 3D online fps

http://g2f.nl/1705f1
http://g2f.nl/jhsa0n [just the blood haha old pic]
Yes it is made with u3d not the normally D3D. Oké your right it is not about the size of the file, but just create the model before your ingame, It is the same method, in U3D i've got the same problems either but i've loaded and create the models before joining the game just a simple code like this could help it:

if start_game=false{
draw_sprite(0,0,spr_wholescreen)
draw_text(display_get_width()/2,display_get_height()/2,"Loading")
}
and after you load/create everything set start_game to false, and play.
Oké thats just to simple i know the have to be some other codes but it isn't that bad...
Besides this topic is about coding the new 3D system, not complaining about loading time. Of course is should be faster but i think you have to wait about that. There a bunch of things that have to be done!

Edited by Aragon, 06 May 2011 - 03:00 PM.

  • 0

#50 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 03:10 PM



And using models of 2mb is way to much for GM because it can't handle the models.

Today you have proven that you do not try to clone 3d games like splinter cell or resident evil.
And for sure you do not experiment with real good looking 3d models in gm8.1.

I have 3d models of 0mb which lower the fps of older gm version. You know why it was 0mb because I made the model very small so the computer gave 0mb file size. But the polygons stay the same. So if a 2mb impressive model of splinter cell is 200000 poly. When file size is reduced to 0mb the poly is still 200000. So it is not about file size of the model but about polygons and vertex and quads.

But for you to wake up the isseu of frames per second was solved whith the release of gm8.1. Trust me I experiment everyday with 3d models in gm. The frames per second produced in gm8.1 are reasonable speed.

The only major problem remaining is that the loading time is to much it should be at least 3x faster. Imagine you buy resident evil 6 but when you try to load and wait almost 20 minutes I think you will take cd out and never play it again.

Today i will show you a pic of my 3D online fps

http://g2f.nl/1705f1
http://g2f.nl/jhsa0n [just the blood haha old pic]
Yes it is made with u3d not the normally D3D. Oké your right it is not about the size of the file, but just create the model before your ingame, It is the same method, in U3D i've got the same problems either but i've loaded and create the models before joining the game just a simple code like this could help it:

if start_game=false{
draw_sprite(0,0,spr_wholescreen)
draw_text(display_get_width()/2,display_get_height()/2,"Loading")
}
and after you load/create everything set start_game to false, and play.
Oké thats just to simple i know the have to be some other codes but it isn't that bad...
Besides this topic is about coding the new 3D system, not complaining about loading time. Of course is should be faster but i think you have to wait about that. There a bunch of things that have to be done!

Like the pics cannot open.

We all know lots of things are missing in gm8.1 regarding 3d programming for example very importend animations as Phantom107 mentioned. But whats the point to fix the small bugs and add other functions even if they are importend, when the base is wrong.

With base I mean the start up. Start up is the first thing what happens in a game. And if the user gets angry at the start up and trows the game away then you have failed. If you have to wait almost 20 minutes to load a good looking game there is no need to add new futures in gm and fix the bugs.

I know if I play game it has to load quickly, but if it takes longer then 3 minutes I may give up.
Anyone wanting to wait almost 20 minutes or more for a game to load?

Edited by Arial, 06 May 2011 - 03:19 PM.


#51 paul23

paul23

    GMC Member

  • Global Moderators
  • 3368 posts
  • Version:GM8

Posted 06 May 2011 - 03:24 PM

Maybe load things threaded/not at once?

In any decent game you'll have to navigate through menus anyways, handling menus shouldn't take much processing power, and no hard-drive reading at all. So you could use this time (20+ seconds of processing time a menu) to load the basic models.

Now during a world you can also load models as you go: you won't always need to have all models at once.

You think those AA games load everything at game start? 2GB of data reading from HDD and loading over the bus is simply impossible. Heck most games use more hard drive memory than my RAM can handle, and then parts on HDD can be compressed.
  • 0

#52 scream681

scream681

    Nick Larin

  • New Member
  • 1152 posts

Posted 06 May 2011 - 03:34 PM



There is no way GM would be able to handle Resident Evil 4 graphics, I'm surprised it loads at all... And loading models is the least of the issues you will encounter. You are talking about things GM was never intended for (or not yet at least).

WTF? Did you ever tried to run a ripped model of resident 4 in gm? If no please do it. Then you will see the truth capabilty of GM. Some guys are brainwashed and believe what others say. And blindling you will not try out if gm can run impressive 3D models.

Edit: please try out something before you reject it


You cannot run a model. I don't rip models, I can make my own. Resident Evil 4 models are made for an engine using Shaders and complex animation system, GM does not support any of those. What capabilities are you talking about? You probably just imported a static model with a texture.

Before going into WTF, BBQ, OMFG and other stuff. I have actually made a game with GM D3D, not just importing a ripped model.

I rejected what you said, because its plain wrong. You can't render Resident Evil 4 quality Graphics using GM without using a 3D engine wrapper. Do you even know what a shader is?
  • 0

#53 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 03:44 PM

I own 3d max 2011.

Edited by Arial, 06 May 2011 - 03:52 PM.


#54 Dark Matter

Dark Matter

    RPG Expert

  • GMC Member
  • 3196 posts
  • Version:GM:Studio

Posted 06 May 2011 - 03:46 PM

I own 3d max 2011.

And that is relevant, how?
  • 0

#55 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 03:51 PM


I own 3d max 2011.

And that is relevant, how?

I never said i stole models from resident evil 4. I download resident evil 4 models in max format. And really i do not see any different from the original in gm. I convert it to OBJ and run it gm8.1 with moisac scripts which converts them in d3d.

So i done nothing wrong. But thanks to max i managed to run real game models of resident evil4 in gm.

Edited by Arial, 06 May 2011 - 03:54 PM.


#56 scream681

scream681

    Nick Larin

  • New Member
  • 1152 posts

Posted 06 May 2011 - 04:10 PM



I own 3d max 2011.

And that is relevant, how?

I never said i stole models from resident evil 4. I download resident evil 4 models in max format. And really i do not see any different from the original in gm. I convert it to OBJ and run it gm8.1 with moisac scripts which converts them in d3d.

So i done nothing wrong. But thanks to max i managed to run real game models of resident evil4 in gm.


Resources from games you didn't make, especially commercial ones, are always copyright protected. It doesn't matter what program you used, or how you got them. I wasn't talking about the models themselves anyway.

Lets stop this discussion because that's not what this topic is about.
  • 0

#57 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 05:10 PM




I own 3d max 2011.

And that is relevant, how?

I never said i stole models from resident evil 4. I download resident evil 4 models in max format. And really i do not see any different from the original in gm. I convert it to OBJ and run it gm8.1 with moisac scripts which converts them in d3d.

So i done nothing wrong. But thanks to max i managed to run real game models of resident evil4 in gm.


Resources from games you didn't make, especially commercial ones, are always copyright protected. It doesn't matter what program you used, or how you got them. I wasn't talking about the models themselves anyway.

I also only wanted test if gm could display models like a commercial game not intentind to sell it.

Lets stop this discussion because that's not what this topic is about.

AAgree

Edit: Back to topic people

Edited by Arial, 06 May 2011 - 05:11 PM.


#58 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 05:21 PM

Sorry Mike.Daily @ just noticed.

EDIT: Arial: Model Loading time is nothing to do with us... it's up to the extension. We won't be changing loading time that much, .

Brother Mike@ same was said before for gm 8.0 about frames per second. But now in gm8.1 frames per second have become faster. Thats why I believe that it should be possible. Just for your information the same 3d model which load in gm6 after 12 minutes, does load in gm8.1 after 5 minutes.

This means that gm8.1 loads 3d 2x faster then gm6. Thats all I wanted to tell you thanks any way.

and to be honest most of it is in Audio setup, and it stalls inside DirectX Sound initialisation, which is again nothing to do with us; it's driver related

Since you are a more expirenced programmer then me I will accepet what you say.

#59 EanFox

EanFox

    GMC Member

  • GMC Member
  • 58 posts

Posted 06 May 2011 - 05:22 PM





I own 3d max 2011.

And that is relevant, how?

I never said i stole models from resident evil 4. I download resident evil 4 models in max format. And really i do not see any different from the original in gm. I convert it to OBJ and run it gm8.1 with moisac scripts which converts them in d3d.

So i done nothing wrong. But thanks to max i managed to run real game models of resident evil4 in gm.


Resources from games you didn't make, especially commercial ones, are always copyright protected. It doesn't matter what program you used, or how you got them. I wasn't talking about the models themselves anyway.

I also only wanted test if gm could display models like a commercial game not intentind to sell it.


Ok, I know You just said get back to the topic, but I can't help myself.

As far as I can tell, there is pretty much nothing wrong with You using resources from commercial titles for testing something or as placeholders, as long as You don't actually include that stuff in the final product. I find it somewhat funny how a lot of people use resources from other games, thinks it's fine until they find out it's not quite ok, and then they simply explode when they see someone doing the same thing.

A future advice from me - You can use models from other games for testing, just don't tell anyone about it! ;)

Edited by EanFox, 06 May 2011 - 06:33 PM.

  • 0

#60 scream681

scream681

    Nick Larin

  • New Member
  • 1152 posts

Posted 06 May 2011 - 05:47 PM

I also only wanted test if gm could display models like a commercial game not intentind to sell it.

It can't show it like a commercial game, nor animate it like one. Commercial games use advanced Shaders, and complex animation systems. GM d3d has no support for either. You don't need tests for something that's not there.

Lets stop this discussion because that's not what this topic is about.

AAgree

Edit: Back to topic people


Please. :)
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users