Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit) (+1)

All code is commented in the project.

What happens is that the tilemaps drawn in the room editor are sampled and turned into 3D cube shapes by constructing the 3D vertices when the level starts (but only if they should be visible). The tilemap itself is then used as a texture source for the generated polygons. The texture source is a surface on which the (animated) tilemap is drawn for each used layer.

The camera projection handles the rest.

It's done using Game Maker Studio 2's vertex/camera/matrix functions.


The hit detection is handled by checking collision boxes and collision lines (using Game Maker functions like for example collision_line).

There's also options where you can set the scale (in tile-size units) of walls, so you can make the walls higher or lower (same with ceiling,...).

As for how to add your own textures, once you understand how to assign texture coordinates to vertices, it should definitely be possible to add that yourself. In fact, the "exit" object, the "door" objects,... already do that!

(+1)

Wow, thanks for the detailed answer.

I was trying different methods of fake 3d solutions for different type of games, mainly as prototypes, like 

or

but yours seems to be really complex and ready to use for little games.

I am just wandering how you can increase the resolution (texture and/or entire game window) and how it is affecting performance.

Anyway, as I am curious, I plan to buy yours, maybe only for learning purposes, but with a chance to create a fun project. :)

(+1)

You should be able to change resolutions by going to the specific code blocks that sets the window size, application surface dimensions, and how those are resized in the fullscreen/window mode code block.