Jump to content


Photo

Coding for the new 3D system....


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

#51 paul23

paul23

    GMC Member

  • Global Moderators
  • 3987 posts
  • Version:GM:Studio

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

Posted Image


#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.

Screw everyone who puts my quotes in his signature to make fun out of me.

#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
String Distortion (Now Staff Picked!)

The .gmx format disassembly

I'm always happy to help with a problem or question you have regarding Game Maker. Feel free to ask me anything you want!

#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.

Screw everyone who puts my quotes in his signature to make fun out of me.

#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

Posted Image


#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.

Screw everyone who puts my quotes in his signature to make fun out of me.

#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.
Screw everyone who puts my quotes in his signature to make fun out of me.

#59 CloverGruff

CloverGruff

    GMC Member

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

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

"There is a fundamental difference between religion, which is based on authority, and science, which is based on observation and reason.
Science will win because it works." -Stephen Hawking


#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

Posted Image


#61 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 06:27 PM

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

Some people always want to have the last word :D Thanks for yor advice.


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

........ nor animate it like one. Commercial games use advanced Shaders, and complex animation systems. GM d3d has no support for either.

Mike.Daily@ there is still one way to silent these gm-conspiracy theory people. You add a 3d animation system in it.

Really on this 3d animation subject i cannot defend game maker. We really need a system that can addopt MAX, MAYA, or blender 3d animations.

Edited by Arial, 06 May 2011 - 06:28 PM.

Screw everyone who puts my quotes in his signature to make fun out of me.

#62 Manuel777

Manuel777

    InvaderGames

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

Posted 06 May 2011 - 06:31 PM

Really on this 3d animation subject i cannot defend game maker. We really need a system that can addopt MAX, MAYA, or blender 3d animations.

XNA does..
  • 0

#63 thatshelby

thatshelby

    GMC Member

  • GMC Member
  • 3823 posts
  • Version:GM8

Posted 06 May 2011 - 06:35 PM

Arial ~


GameMaker is not a tool for making 3D games such as Resident Evil and Splinter Cell. While it is being optimized greatly, it may never compare to tools like Unity (BTW, free mostly) or others. GameMaker was designed for 2D games and it will always be best for making 2D over 3D.
  • 0

#64 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 06 May 2011 - 06:40 PM

XNA does..

To bad i do not own XNA i have gm8.1

Arial ~
GameMaker was designed for 2D games and it will always be best for making 2D over 3D.

Not if Mike Daily adds a 3d animating option in it.

Edited by Arial, 06 May 2011 - 06:45 PM.

Screw everyone who puts my quotes in his signature to make fun out of me.

#65 Phantom107

Phantom107

    Graphics Enthusiast

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

Posted 06 May 2011 - 06:54 PM

Really on this 3d animation subject i cannot defend game maker. We really need a system that can addopt MAX, MAYA, or blender 3d animations.

Do you know how complex that is? This is not something you just "add" easily.

If you need animations and shaders then use GM OGRE, but don't complain about it here. GM is primarily for 2D games.
  • 0

GMCsig.png


#66 Manuel777

Manuel777

    InvaderGames

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

Posted 06 May 2011 - 07:34 PM


XNA does..

To bad i do not own XNA i have gm8.1

Too bad, huh?
  • 0

#67 Docopoper

Docopoper

    You are observant!

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

Posted 06 May 2011 - 07:38 PM

how does GM store texture data? Is it compressed or does each 1024*1024 texture use 4 megs?
  • 0

The first thing I would do with infinite power would be to make myself a cave where I could look at my shadow forever.

 

The destination is much harder to reach when you don't want to walk towards it.


#68 scream681

scream681

    Nick Larin

  • New Member
  • 1152 posts

Posted 06 May 2011 - 07:58 PM


Arial ~
GameMaker was designed for 2D games and it will always be best for making 2D over 3D.

Not if Mike Daily adds a 3d animating option in it.


Yes Mike, please. :P

Also while you are at it add a 3d level editor with radiocity lightmaps baking, and PhysX support. Oh yeah, shaders, dont forget shaders!

Edited by scream681, 06 May 2011 - 08:00 PM.

  • 1

Posted Image


#69 mcoot

mcoot

    GMC Member

  • New Member
  • 387 posts

Posted 06 May 2011 - 08:57 PM

To bad i do not own XNA i have gm8.1


XNA is free. So is Unity. If you're honestly advanced enough that a lack of 3D animation is a problem, and for some reason you can't use GMOGRE or the like, try Unity.

Not if Mike Daily adds a 3d animating option in it.


A 3D animating 'option'? Do you have any idea of the work needed to produce a 3D animating system. It isn't something you can just add instantly.

Besides, seeing as how 'easy' it is: why don't you write your own 3D animation system in Game Maker. Good luck getting it to work and perform at a reasonable framerate!

Not if Mike Daily adds a 3d animating option in it.


Also while you are at it add a 3d level editor with radiocity lightmaps baking, and PhysX support. Oh yeah, shaders, dont forget shaders!


And would it be too much trouble to do a make_game(awesomeness,profits) function? One that automatically generates commercial-quality 3D graphics and makes full use of the DirectX11 API while still being compatible with Windows, Mac, Linux, iOS, Android, and my toaster?
  • 1

Ultimate Healthbars - Easy healthbars in shapes from circular to sine wave

The obligatory (anti)religious signature message: Irreducible complexity is a stupid argument - what seems absurd is not a valid guide in science


#70 FredFredrickson

FredFredrickson

    Artist

  • Global Moderators
  • 9210 posts
  • Version:GM:Studio

Posted 06 May 2011 - 09:02 PM

Alright guys, you've made enough fun of Arial. Cut it out, and let's keep it on track, please.

That means no more posting novice questions or bashing people for doing so.
  • 0

#71 Rani_sputnik

Rani_sputnik

    GMC Member

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

Posted 07 May 2011 - 02:11 AM

@ Mike I noticed on your blog that you said that if we want to draw a model in a different colour we'd probably be better off creating two whole models and baking the draw colour on. This is really interesting, why is that? That seems quite counter intuitive to me... does it have anything to do with the way the static are defined?
  • 0

My games - Boy Goes to Space, Proleague (Facebook & Kongregate), Making WayJam Tart (GMCJam#14) and Seal Fighter

Currently working on FloxGM - All-in-one backend for leaderboards, scores, cross device saves and analytics

Check out my website: ryanloader.me, or follow me: twitter.com/RaniSputnik


#72 amd42

amd42

    GMC Member

  • GMC Member
  • 269 posts
  • Version:GM8

Posted 07 May 2011 - 02:42 AM

@ Mike I noticed on your blog that you said that if we want to draw a model in a different colour we'd probably be better off creating two whole models and baking the draw colour on. This is really interesting, why is that? That seems quite counter intuitive to me... does it have anything to do with the way the static are defined?

Unlike the info about which texture to use, blending color data is actually stored in the model vertices. Which means that dynamically changing the blending color would require re-generating the whole model...not a very fast operation.

The only way around this AFAIK would be to use a shader, which GM doesn't (and probably won't) support.
  • 0
"Computers in the future may weigh no more than 1.5 tons." - Popular Mechanics, 1949

#73 xot

xot

    GMC Dismember

  • GMC Elder
  • 4777 posts
  • Version:GM:Studio

Posted 07 May 2011 - 02:51 AM

... or use different textures for your coloration.
  • 0
GMLscripts.com, rise from your grave!

#74 michael pw

michael pw

    GMC Member

  • GMC Member
  • 1488 posts
  • Version:GM8.1

Posted 07 May 2011 - 03:04 AM

im looking forward to this, i really hope it is out soon :D! but one thing, i know you said about there being less than 1000 poly's and it doesnt work as well. just to say if you used standard draw functions, would the game run much faster, so for example if you did that huge mass of cubes in the demo by doing repeat 27000 { d3d_draw_block(..,..,..,..,..,..,)} how much slower would it run than if you just had a model which contained 27000 blocks in one model?
  • 0

Known as MishMash on the internet, If only my username could be changed :D?

Posted Image

Working on Sharp Edge, a 3D Level designer which exports to GMMOD and textures, with a vast toolset, and fancy GUI. ( So far, software is only going to be distributed with my game, in the future, it will be up for public use and with the ability to customise the software using the Plugin System to suite your games needs.)
Also working on 3D Multiplayer FPS Global Anarchy Denied Operations.


#75 snake5

snake5

    GMC Member

  • GMC Member
  • 71 posts

Posted 07 May 2011 - 05:58 AM

Skin your models - even buildings and terrain. This allows large sections of a world to be rendered in one go, rather than a brick at a time.

I didn't really understand what's meant here - skinning for me is making a skinned mesh (adding bone data, vertex weights/indices etc.). :P
  • 0

#76 Rani_sputnik

Rani_sputnik

    GMC Member

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

Posted 07 May 2011 - 08:55 AM

how much slower would it run than if you just had a model which contained 27000 blocks in one model?


I second this question but I think it would be how much faster would it run? :) Unless I have COMPLETELY the wrong end of the stick...
Also I have another question. I get the fact that we want to be grouping as much into a single model as possible to keep it to one draw call, but I'm a little lost on the dynamic models.
Say for instance we are drawing billboarded sprites, keeping in mind we don't want to be drawing two triangle or a single quad at a time... what should we do? Is it still faster to do this

for (i=0; i<bcount; i+=1)
{
    d3d_draw_wall(  bx[i,0],by[i,0],bz[i,0],  bx[i,1],by[i,1],bz[i,1]...)
}

Over this?

draw_primitive_begin(pr_trianglelist)
for (i=0; i<bcount; i+=1)
{
    d3d_vertex(  bx[i,0],by[i,0],bz[i,0]  )
    d3d_vertex(  bx[i,1],by[i,1],bz[i,1]  ) 
    d3d_vertex(  bx[i,2],by[i,2],bz[i,2]  ) 

    d3d_vertex(  bx[i,1],by[i,1],bz[i,1]  ) 
    d3d_vertex(  bx[i,2],by[i,2],bz[i,2]  ) 
    d3d_vertex(  bx[i,3],by[i,3],bz[i,3]  ) 
}
draw_primitive_end()

(Ignoring the fact that the second option would require slightly more math)
Because I'm assuming the CPU sends a the draw request once a primitive is ended, where as the first option would send the request each loop. UNLESS of course, the intention is that the request is generally sent after the script is ended... Apologies for any clumsy terminology, I don't have a very insightful understanding of hardware :/

EDIT:

Unlike the info about which texture to use, blending color data is actually stored in the model vertices. Which means that dynamically changing the blending color would require re-generating the whole model...not a very fast operation.


Thanks for that explanation, I did not know that! I thought there would be a pass similar to the one a pixel-shader does that would multiply the built in model colour with the current drawing colour on a per-vertex basis, but hey! that's why I'm an idiot haha :)

Edited by Rani_sputnik, 07 May 2011 - 08:59 AM.

  • 0

My games - Boy Goes to Space, Proleague (Facebook & Kongregate), Making WayJam Tart (GMCJam#14) and Seal Fighter

Currently working on FloxGM - All-in-one backend for leaderboards, scores, cross device saves and analytics

Check out my website: ryanloader.me, or follow me: twitter.com/RaniSputnik


#77 Arial

Arial

    GMC Member

  • Banned Users
  • 580 posts
  • Version:GM8

Posted 07 May 2011 - 09:06 AM

What will happen now? More importend what will happen us?


So sad. I whish I could import these type of animations in gm....
http://www.youtube.c...h?v=BpttBAzzo70
Or will new 3D function be added in gm8.2?

Edited by Arial, 07 May 2011 - 09:47 AM.

Screw everyone who puts my quotes in his signature to make fun out of me.

#78 Manuel777

Manuel777

    InvaderGames

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

Posted 07 May 2011 - 12:15 PM

Alright guys, you've made enough fun of Arial. Cut it out, and let's keep it on track, please.

That means no more posting novice questions or bashing people for doing so.

Should i...? :unsure:

Edited by manuel777, 07 May 2011 - 12:15 PM.

  • 0

#79 Desert Dog

Desert Dog

    GMC Member

  • GMC Elder
  • 6409 posts
  • Version:Unknown

Posted 07 May 2011 - 12:23 PM

epeat 27000 { d3d_draw_block(..,..,..,..,..,..,)} how much slower would it run than if you just had a model which contained 27000 blocks in one model?


You may need to re-read the OP.

Programming in GM's d3d, or probably any 3d, is all about cutting down draw_calls. so 27000 draw calls per step is waaay too much.

1 draw call.. even if the model is big, will be far, far, far, far, faster. You can't even compare the to, really.

Posts by mike you may want to read:
http://gmc.yoyogames...dpost&p=3748511

Also, by scream681:
http://gmc.yoyogames...dpost&p=3749330

Where he talks about how his game was slowing down.. not from the polygons being drawn, but by the amount of draw calls he had to make.
  • 0
HTML5 games for mobile:
HexDogs Bugz Burn! Captain George Golfing Block Memory

Games for Androids
*NEW* Word Dog - Published by Dangerous_Dave


Code: General Array Functions - GM-S friendly. sorting, shuffling. Includes a quicksort.
Use the quicksort to sort ds_lists 10-18 times faster than ds_list_sort()!

#80 michael pw

michael pw

    GMC Member

  • GMC Member
  • 1488 posts
  • Version:GM8.1

Posted 07 May 2011 - 12:54 PM

oh kk, so just to check something that i want to know,

if you had a level designer that outputs code in gml, then can you make a model using d3d_model_block (i have never really used the model functions) but what i mean is say if you had

global.My_level = d3d_model_create();

repeat 27000{

 d3d_model_block(global.My_level,...,...,..);}

d3d_model_save(global.My_level,"Level.gmmod");
(a level editor would use the with() statement)



then later used:

global.level = d3d_model_load("Level.gmmod")

d3d_model_draw(global.level,...,...,..,)

Could that potentially draw a level with 200000+ without lag poly's using the New 3d system?

  • 0

Known as MishMash on the internet, If only my username could be changed :D?

Posted Image

Working on Sharp Edge, a 3D Level designer which exports to GMMOD and textures, with a vast toolset, and fancy GUI. ( So far, software is only going to be distributed with my game, in the future, it will be up for public use and with the ability to customise the software using the Plugin System to suite your games needs.)
Also working on 3D Multiplayer FPS Global Anarchy Denied Operations.


#81 Mike.Dailly

Mike.Dailly

    Evil YoYo Games Employee

  • Administrators
  • 4399 posts
  • Version:GM:Studio

Posted 07 May 2011 - 01:09 PM

There will be no animation system in GM 8.x, we might add one some day, but that's a long way off IF it ever comes.

Arial: As has already been said. GM isn't a 3D package, if your after that... your probably in the wrong program. It has simple 3D to let you get to grips with it, but for now we certainly aren't thinking about extending what's already there. Importers/exporters/converters take considerable time and resources, and we have enough to do. Sorry.
  • 0

#82 Desert Dog

Desert Dog

    GMC Member

  • GMC Elder
  • 6409 posts
  • Version:Unknown

Posted 07 May 2011 - 08:09 PM

Could that potentially draw a level with 200000+ without lag poly's using the New 3d system?


In Mike's blog he mentions that the test he released for us has '19,683 cubes merged into a single 236,196 polygon mesh at 96fps rather than 4'

I'd expect it to be even faster in a level where you could implement a lot of culling/won't be drawing poly's behind the camera and that sort of stuff.

So yes, you would be able to have a (comparatively) very high poly levels, with mike here is encouraging us basically to try have higher poly models, too (and cut down on those draw calls!)

I imagine now that animation would be faster to have different 'frames' of each animation model saved, rather than the draw 8 parts transformed&stacked to move together.
  • 0
HTML5 games for mobile:
HexDogs Bugz Burn! Captain George Golfing Block Memory

Games for Androids
*NEW* Word Dog - Published by Dangerous_Dave


Code: General Array Functions - GM-S friendly. sorting, shuffling. Includes a quicksort.
Use the quicksort to sort ds_lists 10-18 times faster than ds_list_sort()!

#83 mcoot

mcoot

    GMC Member

  • New Member
  • 387 posts

Posted 08 May 2011 - 11:24 AM

Alright guys, you've made enough fun of Arial. Cut it out, and let's keep it on track, please.


Or will new 3D function be added in gm8.2?


Must... resist...



Anyway...

So, in short, with the addition of static modelling, we should:
  • Use static models in preference to dynamic (obviously)
  • Make large (static) models in preference to more smaller models
  • Make two models in preference to one model colour-blended in two ways
Any other points in particular (I'm sure I missed most of them)?
  • 0

Ultimate Healthbars - Easy healthbars in shapes from circular to sine wave

The obligatory (anti)religious signature message: Irreducible complexity is a stupid argument - what seems absurd is not a valid guide in science





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users