• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Asset - Extension z3d engine

csanyk

Member
Z3D Engine is a fake-3d engine designed for simplicity, efficiency, performance, and ease of use. Z3D engine provides position, motion, collision detection, and depth sorting/draw order for your 2.5D games. Suitable for games where you have a static, 3/4 view of the world, where the side and top of objects are visible, like The Legend of Zelda, Double Dragon, River City Ransom, TMNT The Arcade Game, etc.

Easy to use, fully documented, and the source code is expressive and well commented.

Full documentation + demo included.

Primarily intended for use with GMS1.x, I have not yet tested with GMS2, but I will eventually be updating it for use with GMS2.x as well.

In a 2D GameMaker room, x and y coordinates are used for positions in the 2D space. 3D requires a third variable for the third dimension, z. In the z3d engine, x and y are used to represent the "floor" plane as viewed from a top-down perspective, from a forced perspective that gives the viewer a full view of one side and top of objects, while z is used for altitude.

Marketplace
Full Documentation
Play-before-you-buy Demo (HTML5) - Arrow keys to move, Z to jump, Backspace to restart room.
 
Last edited:
R

Regius

Guest
Hello, I've been trying to find the demo to play around it before buying but I can't seem to find it?
 

csanyk

Member
Hello, I've been trying to find the demo to play around it before buying but I can't seem to find it?
The demo room that I referred to is part of the asset package. It's included to show you how to use the extension, not as a "try before you buy" type of demo. But that said, I think that would be a good idea to help potential buyers know what they're going to get, so here you go:

Play-before-you-buy Demo (HTML5) - Arrow keys to move, Z to jump, Backspace to restart room.
 
Last edited:
L

Lonewolff

Guest
Out of interest, what sort of 3D is this?

Looks more like orthographic with the attempt at some front on depth.

 

csanyk

Member
Out of interest, what sort of 3D is this?

Looks more like orthographic with the attempt at some front on depth.

I call it "Fake 3D"... I'm not sure what a mathematician would call it. I'd actually like to know myself. You basically see the full side and the full top of the objects, flattened and without perspective.
 
Last edited:

kburkhart84

Firehammer Games
The "projection" is considered a simple view angle(maybe 3/4), not anything special like "isometric" or anything. What is more special to me is the math implementation you have letting your objects get on top of other objects like in 3d space(despite being a 2d engine), which is part of the fake 3d effect of course.
 

csanyk

Member
The "projection" is considered a simple view angle(maybe 3/4), not anything special like "isometric" or anything.
I guess from what I've been able to gather, this is what's known as "oblique projection", or something close to oblique projection with some violations.

I'm going to try to learn more about this, in the hopes that it will aid my future development of the engine :)

What is more special to me is the math implementation you have letting your objects get on top of other objects like in 3d space(despite being a 2d engine), which is part of the fake 3d effect of course.
Thanks... getting that to work in the special cases took a lot of testing.
 
Last edited:

csanyk

Member
3/3/2018

Version 1.1.0 released!

Depth sorting for draw is now based on the "binlist" approach described by @Ariak. This should enable better scaling performance.
 
Last edited:

csanyk

Member
Thanks for checking out the demo, and for the feedback.

That box is actually hanging in the air. It's Y-position is aligned to the player's start position in that snippet, so you're not actually jumping into the background -- you're jumping up onto a box that is floating in the air. It's hard to tell because there's no shadow system built in to the engine. I don't implement a shadow system because there are so many ways to do it, depending on the visual style you want for the game.

You can also stand under the box and jump up, bumping your head on it.
 

csanyk

Member
I've added an Appendix to the documentation, which goes into the visual perspective used in Z3D. Thanks to @Ghost in the IDE for asking the question that prompted the thought that lead me to write this section of the documentation.

I don't think it's essential to working with the engine, but I hope that it is helpful and clear. But, if you see points that are not clear, or have errors, please let me know!
 
Top