Funny how "stupid" can be interpreted in multiple ways here. One entirely appropriate, the other very much not so. I certainly am not smart enough come up with a trick like that!
This one is a hybrid with some predefined (tiny!) assets and some procedural generation (instruments, texture placement).
And probably there are more things it parodies.
If there's a collision in either X or Z, both should be rolled back to their last positions. I think there is possibly an edge case hidden in there otherwise.
P.S. Nice code by the way.
Rolling back X and Z when any collision occurs would prevent you from "hugging" (i.e. sliding along) walls. The problem was that a near corner collision wasn't correctly detected when the player didn't collide in X direction in the last frame (last_x) but does collide in the current frame (t.x), allowing the player to move into the corner in Y direction.
A fun alternative for the players model that also takes little space is to slice up the model into horizontal layers. See http://www.like100bears.com/writing/2d-3d-in-gamemaker-studi... for example.
Fixed geometry was the first thing I noticed ;)
Could probably even increase level size manyfold and would still run quite smoothly. For large generated mazes. With this phenomenal skin-crawling sound design. Would make a very immersive "escape" labyrinth game!
But I kinda hate you right now, because now you inspired me to develop games in 3D again, just when I'm in the making of 2D pixel-game ;)
(Love the retro-3D feeling, very good work!)