Cool Metroid-vania prototype! I would love to see this fleshed out some more. You should check out coyote timing (also known as ledge tolerance) - that usually makes the jumping feel a little better with platformer physics.
Viewing post in MegaRob jam comments
Oh, thank you, honestly I was more inspired to do something more akin to megaman, but I had to put in metroid-vania mechanics to give a sense of progression.
Also thanks for the heads up I’ll look into this topic, the jumping I did was pretty basic, I just rewrote the player model of the platformer example with some tweaks for me, that’s why the jumping feels a little bit meh, because it was rushed.
Once you get the camera set up right in GMS and put together a way to get data into a vertex buffer, it's actually not too bad. I'm generating level data into a 2d array with a recursive backtracking maze generator and a handful of pre-defined arrays (for like obstacle and enemy layouts within a room). Then every time the player moves to a new room, I loop through that data and overwrite a global vertex buffer with vertices - the vertices all need x, y, z coords and uv texure coords. I use bitmasking on the array data to determine where walls need to be. The 3d is entirely aesthetic (though drawing everything with vertex buffers does offload a lot to the GPU and buys me a pretty big performance boost) - collisions and stuff are 2d tile based (there's a tile map/layer that never gets drawn for that).
In my source code, you can see how the camera is setup in the object GAME under its draw event and all the functions for building the maps are in the script "Level" (the GameMaker Studio 2.3 update was huge and added (among other things) structs, functions, and normal multi-dimensional array syntax).