On Game Maker and 3D

Posted by Rusky on Feb. 12, 2011, 8:24 p.m.

So, I'm doing some simple 3D graphics for my latest project. They're not strictly required but they make it look more interesting- it's essentially a top-down game, I just pulled the camera back a bit.

However, d3d_start() flips the handedness of the coordinate system. This flips the room editor upside down, which was okay for testing and I suppose for regular level design. I could have flipped the camera to the other side, but that would have screwed up depth.

Depth is effectively a built-in z variable which also happens to be used for drawing order, which works perfectly until you do anything slightly non-trivial (like flipping the camera to the other side of the z-axis). That was nice until I needed to sort drawing order independently of z value, for alpha blending and anti-aliasing.

Now I'm stuck with upside-down rooms even though I have separate z and depth. I should probably just go through with flipping the camera around by reversing all the signs again, but urgh. Why couldn't Game Maker just not flip the coordinate system so it could use depth as the z coordinate?

On a less hateful note, the lessons I'm taking from this are 1) always separate z and depth in GM 3D and 2) my own engine will not just tack on 3D as an add-on to the 2D stuff.

Also, I haven't been able to upload anything because my games are either too big or the connection is too slow for the server to get the whole thing before giving up.

Comments

Castypher 13 years, 9 months ago

Yeah, GMOgre is decent. There are other GM addons that are decent too. But there are licensing issues (I think, Ogre3D is a commercial product) and comprehension issues (X3D is incredibly complicated). You'd still be better off doing 3D in something else.

colseed 13 years, 9 months ago

Ogre3D is open-source and free for both personal and noncommercial use, so no issue there.

(I think it's LGPL-licensed or something like that.)

I'd be more inclined to just use Ogre3D without Game Maker, personally.

Castypher 13 years, 9 months ago

That's kind of the point I'd like to make. Game Maker is merely a crutch anyway. The sooner you move from it, the better. That doesn't mean you can't still use it of course.

colseed 13 years, 9 months ago

For 3D at least, yeah.

I know I still use GM for 2D stuff quite a bit.

'sides, C++ is easy once you know how to code in GM. :D

Alert Games 13 years, 9 months ago

GMOgre3D seems interesting.

And I like to use Game Maker simply for the simplicity of it to make games(hence the point). But yeah, pretty much is limited to 2D games as that is what it was designed for.

But yeah if you want to be a game designer, get off Game Maker haha.

Carlos508 13 years, 9 months ago

As far as prototyping stuff, nothing beats GM. By now theres a dll out there for nearly everything, so you can just throw stuff together and visualize an idea completely in a few days no matter how complicated. Hell, I use GM to prototype apps and honestly I don't see myself prototyping in anything else…ever.

If you wanna make 3D games tho, like everyone else says, use something else. 3DGameStudio is pretty neat and features DnD like GM to help get you started. They have a lite version which is free as well. You can get ideas put out almost as quickly as in GM, and is a nice first step in 3D. Havent used it in years but thats how I got started in 3D.

I'm fairly fluent in C++ and a few others, but really, I only use it when I have to make weird calculations for school and need the speed (engineering). Even then I prob favor Java. Unless you are doing things that require speed, need direct low-level access to the OS, or creating a commercial product then C++ is prob overkill. I used GM with VBScripting to create my LISA project, you know of effin long that would have taken me to do in C++?!

Rusky 13 years, 9 months ago

3D in GM, if badly designed, isn't all that bad. If you can get past the issue in this blog and figure out depth sorting, it works pretty well for the extremely simple wrapper it is. Define your own z and flip the camera to get a sane coordinate system for the room designer, and then set depth to distance from the camera (or some approximation thereof) to fix alpha/aa and voila.

I would use GMOgre or some other DLL, but as has been said in that case you may as well just use the language the backing library was written in. The problem with that, in this case, is that C++ takes longer to get a game working with, there isn't as much time left this year before the competition and I don't have a prior C++ project or engine I could start from that would negate the first problem.

For all its faults, GM is still (sadly) the easiest way to hack out a game in a short time. Hopefully I can change that. :)

Carlos508 13 years, 9 months ago

"GM is still (sadly)"

Nothing wrong with GM man, I swear by it.

Rusky 13 years, 9 months ago

There's plenty wrong, but that doesn't mean you can't use it. Just think of all the times you've been annoyed with it or thought something wasn't worth bothering because of how it's set up- surely you can imagine a better tool for doing what GM does?

JID 13 years, 9 months ago

Thanks Cyrus.