Jump to content


Photo

Gm 8.1 super speed. 30 FPS with High poly models.


  • Please log in to reply
84 replies to this topic

#1 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 27 April 2011 - 08:23 PM

Today i am so much happy that i kiss all moderators and staff of this communeti. :D

I cant believe it for the first time i had high poly 3d models with hd texture running at 30 FPS. And guess what. I used game maker.

At first i think gm 8.1 sucks like all the previous versions releases.
Since quality models where slow in gm 6.1 gm7 gm8 to my surprise i relised i can clone Splinter Cell with gm 8.1. What a high frames per second.

GM Version 8.1.9 is almost like XANA-SHIVI-UNITY-SOURCE

Still one problem loading High poly video game quality models in GM 8.x takes ages.
Mike.Daily confirmed that in version 8.1 until 8.9 this problem will not be fixed.
But still we have to be thanking him and his friends forever for fixing the mess



Mike@ and all those behind the scenes of gm8.x Thank you!
You almost have the best gamemaking tool.

Good luck and keep up the good work game maker representitive's. I looking forward to gm 8.2.

Edited by Arial, 16 May 2011 - 01:34 PM.


#2 Phantom107

Phantom107

    Graphics Enthusiast

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

Posted 27 April 2011 - 08:30 PM

Uhmm... what.

You still can't clone Splinter Cell due to the lack of pixel shaders, vertex shaders, AA, AF, mipmapping, and a ton of other required features I can come up with.

But it doesn't matter as long as YoYo games keeps speeding up GM while keeping support for GM OGRE intact.

edit Oh and you're complaining about slow loading speed when you're using a non-supported custom model loading script? Right.

Edited by Phantom107, 27 April 2011 - 08:32 PM.

  • 0

#3 thatshelby

thatshelby

    GMC Member

  • GMC Member
  • 3823 posts
  • Version:GM8

Posted 27 April 2011 - 08:43 PM

Posted Image
  • 1

#4 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 27 April 2011 - 08:47 PM

Uhmm... what.
Not understand english?

You still can't clone Splinter Cell due to the lack of pixel shaders, vertex shaders, AA, AF, mipmapping, and a ton of other required features I can come up with.

I have lots of scripts in plain old GML if you need for all the things and futures you mentioned.



edit Oh and you're complaining about slow loading speed when you're using a non-supported custom model loading script? Right.

First of all its a d3d script withouth extend dlls or other plug-ins.
And i am not complaining. Complaining is for cry babies.

I am encourging game maker team to speed up loading time.

A massage to the makers of game maker 8.1=
So i say again keep up the good work. The FPS is enough for professional quality games. Just increase the loading speed for 3ds models or gm primitive scripts. I tested you guys did reduced the d3d model loading time 4x compared to gm6.1 but it is not enough.

Edited by Arial, 27 April 2011 - 08:54 PM.


#5 Desert Dog

Desert Dog

    GMC Member

  • Global Moderators
  • 6409 posts
  • Version:Unknown

Posted 27 April 2011 - 08:53 PM

Heh, yeah, one of thing things they mentioned was 3d is a lot faster. I probably should re-out all my games in GM8.1

Or make a new, epic 3d breakout game! BD

Good luck with your project,
~DD
  • 1

#6 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 27 April 2011 - 09:00 PM

Heh, yeah, one of thing things they mentioned was 3d is a lot faster. I probably should re-out all my games in GM8.1

Or make a new, epic 3d breakout game! BD

Good luck with your project,
~DD

Yeah Compared to gm 6.1 the fps in 3d is almost 4-5x faster. And loading 3d models is 3-4x faster.
I believe that FPS is enough just the loading speed needs to be doubled or loading time should be halfed.

You also good luck and hope you and me and all others finally finish are 3d games.

Edited by Arial, 27 April 2011 - 09:05 PM.


#7 Desert Dog

Desert Dog

    GMC Member

  • Global Moderators
  • 6409 posts
  • Version:Unknown

Posted 27 April 2011 - 09:11 PM

Hah, well I don't use loaded models in-game very often, but I've read that it isn't such a good idea to load .obj types.. what your doing here, is loading up the model, then converting it to GM's model type.

You want to convert the model to GM's model type yourself, really, then load it up in GM.

So use GMmodelfix. I've never used it, but should speed up model loading by about 3-4 times, at a guess.

Edited by Desert Dog, 27 April 2011 - 09:12 PM.

  • 0

#8 NakedPaulToast

NakedPaulToast

    GM Studio/Mac/Win

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

Posted 28 April 2011 - 01:59 AM

Tuning up a Ford, doesn't make it a Ferrari.
  • 5

#9 superjoebob

superjoebob

    YM2612

  • New Member
  • 1515 posts

Posted 28 April 2011 - 06:12 AM

You still can't clone Splinter Cell due to the lack of pixel shaders, vertex shaders, AA, AF, mipmapping, and a ton of other required features I can come up with.

I have lots of scripts in plain old GML if you need for all the things and futures you mentioned.

Alright I'm pumped, post up some hardware based shader scripts written in plain old GML for me so I can get started. You should also post up some GML based skinning and 3D physics for me, I can't wait to start programming Crysis in Game Maker since you totally can now.
  • 4

#10

  • Guests

Posted 28 April 2011 - 06:29 AM

Tuning up a Ford, doesn't make it a Ferrari.


Yeah, but adding some Nitro will make it much more fun! :)

If I manage to get the next boost done you should be able to draw much bigger batches (depending on your gfx card), as it should pretty much fall right through to the GPU - almost like a bought one!

#11 mcoot

mcoot

    GMC Member

  • New Member
  • 387 posts

Posted 28 April 2011 - 06:47 AM

I have lots of scripts in plain old GML if you need for all the things and futures you mentioned.


Good luck making pixel shaders work using plain GML scripting...


Really, though. If you want high quality 3D in GM right now, go download GMOGRE, or some other 3D engine wrapper.

It is good to see it improving though.
  • 1

#12 Phantom107

Phantom107

    Graphics Enthusiast

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

Posted 28 April 2011 - 09:11 AM

Good luck making pixel shaders work using plain GML scripting...

Exactly right. It's impossible.

Using the surface fix you can get some effects to work, but real shaders are tons faster and have a million features.

For example, yesterday I programmed my first nVidia Cg shader. It fades away the alpha component of vertexes over camera distance. In "plain old" GML that would be impossible to do it at very high performance. Let alone to do normal mapping, specularity, etc.
  • 0

#13 MasterOfKings

MasterOfKings

    The True Master

  • GMC Member
  • 4888 posts
  • Version:GM8

Posted 28 April 2011 - 09:47 AM

Why doesn't YYG just throw in a DX11 wrapper... Then everyone will complain that GM doesn't run. You'll get fast 3D. But a very small audience.

Yeah Compared to gm 6.1 the fps in 3d is almost 4-5x faster. And loading 3d models is 3-4x faster.
I believe that FPS is enough just the loading speed needs to be doubled or loading time should be halfed.

GM6.1 is years old.. GM still uses DX8, which is even older. The professional quality games you refer to, mostly use DX9 (for compatibility).

-MoK

PS: By high-poly, how many triangles are we talking about? On my laptop, GMOgre can push 500,000 triangles before I get any sort of slowdown (although, my FPS is glitchy). What can GM8.1 D3D push?
  • 0

#14

  • Guests

Posted 28 April 2011 - 10:42 AM

PS: By high-poly, how many triangles are we talking about? On my laptop, GMOgre can push 500,000 triangles before I get any sort of slowdown (although, my FPS is glitchy). What can GM8.1 D3D push?


I have no idea yet as I've not finished! I'd guess for a single model it should be like any other engine, as it'll just send the whole thing to the GPU and let it get on with it. Technically, you should submit using index-tri lists, but due to the way GM works, it'll be TRILISTs instead; so that might hurt, we aren't sure yet. in the past indexed tri-lists were faster, but these days with hundreds of vertex shaders, that might not be true any more.

What I expect to happen is that you'll get the same number of models, but the poly count you can use to go through the roof. Does that make sense?

Oh...changing the global draw colour between renders of a model WILL now hurt, although it should still be quicker than before, but it'll really hurt compared to what you COULD do without it.

Thats the theory... lets see if it actually happens.....

#15 Phantom107

Phantom107

    Graphics Enthusiast

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

Posted 28 April 2011 - 10:54 AM

Mike, this isn't a matter of "just sending it to the GPU". You have be extremely careful with the different ways of how you send stuff to the GPU. If you are sending models one-by-one to the GPU to render, you would be lucky if you could get even 35% compared to the performance MasterOfKings stated. The key is in object batching so you send large collections of models that use the same material, so the GPU can process it in one go. All modern GPUs are optimized for this. Big commercial engines such as Bungie's Halo engine and Unreal Engine 3 rely heavily on object batching.
  • 0

#16

  • Guests

Posted 28 April 2011 - 11:11 AM

Actually... that's not quite true.

First, you can't do that without shaders.
Second, the way GameMaker currently works is SO bad, that this WILL give a major speedup.
Third, while it's true that object batching will help you draw many more models at once, what I said is that you'll probably KEEP the object count to what you have now, but be able to UP the number of polys in a model. currently, you create a mesh, and then submit that mesh with a texture. This (by definition) is batching large meshes with a single render call. GameMaker doesn't currently do that. In fact... GM's model drawing is SO bad, this should be a major speed boost. I'd be really surprised if you can't up the geometry in a mesh by a factor of 10-100.

Depending on what you draw, and HOW you draw, this will provide plenty of power. Not having multi-texturing is a bugger, but if you can submit large parts of a world in a single call, then you have far more chance of keeping up your frame rate when you have to draw it several times.

I've done nice terrains before using a single (large) texture using around 320K polys, where it runs quite happily at hundreds of FPS. This would be much better than the current 1-2K polys you currently have. On top of this, the speed you get back from having to continually build the model, you can spend doing other things - possibly even drawing more models....who knows.

Also, having done quite a few tests on "instancing" not long ago, I can tell you that unless you pre-can a whole load of data, CPUs are now fast enough to submit almost as many models. This isn't to say GPU batching isn't better, just that you really REALLY have to know what your doing in order to get the speed up, and folk using GameMaker (on the whole) won't. So this should be just fine. :)

This won't be a magic bullet, but it should be a big boost for "large" models.

#17 MasterOfKings

MasterOfKings

    The True Master

  • GMC Member
  • 4888 posts
  • Version:GM8

Posted 28 April 2011 - 01:13 PM

I have no idea yet as I've not finished!

And why not? :P

-MoK

PS: Yes, that is the only line I've taken the time to comment on.
  • 0

#18 NakedPaulToast

NakedPaulToast

    GM Studio/Mac/Win

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

Posted 28 April 2011 - 01:51 PM


Tuning up a Ford, doesn't make it a Ferrari.


Yeah, but adding some Nitro will make it much more fun! :)

If I manage to get the next boost done you should be able to draw much bigger batches (depending on your gfx card), as it should pretty much fall right through to the GPU - almost like a bought one!


Yup.

On FredFredrickson's (Martin C) 3D example I already see a dramatic improvement in performance. I seem to recall you mentioning somewhere about applying a Vista/Win7 scheduling fix.

On GM8.0 it runs at 170 FPS
On GM8.1 it runs at 340 FPS

And this is without your continued efforts at optimizing the 3D, so yeah a little Nitro would do the trick.

And BTW, on the same hardware the same program is running at 33FPS using GM4Mac.
  • 0

#19 Tepi

Tepi

    GMC Member

  • Global Moderators
  • 4203 posts
  • Version:GM8.1

Posted 28 April 2011 - 03:18 PM

Damn.. Now I'm really annoyed that my game is dependent on amd42's Surface fix (which atm is incompatible with 8.1)! Can't wait to try it out. :)

(Why wasn't the surfaces-don't-work-with-D3D -bug fixed, anyone know?)
  • 0

#20

  • Guests

Posted 28 April 2011 - 03:28 PM

(Why wasn't the surfaces-don't-work-with-D3D -bug fixed, anyone know?)


It's on our list....




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users