Legacy GM Does anyone know how to make a game like the older Shin Megami Tensei games

I'm trying to make a 90s styled first person dungeon crawler in GameMaker sort of like the older Shin Megami Tensei games (or any other first person dungeon crawler came out in the era of SNES or Genesis) What I'm trying to include is,
- a HUD
- an inventory system
- a turn based battle system
if anyone can help, please do. Thanks
 

Xer0botXer0

Senpai
Have a look at the section for paid programming, alternatively you could try a few tutorials on youtube or Udemy, many are made by members of the community.

Alternatively post some code and ask for help. That's how everyone's doing it.
 
I'm trying to make a 90s styled first person dungeon crawler in GameMaker sort of like the older Shin Megami Tensei games (or any other first person dungeon crawler came out in the era of SNES or Genesis) What I'm trying to include is,
- a HUD
- an inventory system
- a turn based battle system
if anyone can help, please do. Thanks
Every single one of these suggestions is worthy of its own topic. You should probably ask each question individually as it comes up for better answers. I'll just respond to the "90s styled first person dungeon crawler" one since it's the main question implied by the topic title. I'm probably among the most knowledgeable about doing first-person dungeon crawlers in GM considering that's basically all I've been doing in it for literally over a decade.

Before I go into anything, I noticed you have your topic tagged as "Legacy GM." Which version of GM are you using? If it's pre-Game Maker Studio, prepare yourself for an absolutely miserable experience. Having successfully completed a very barebones dungeon crawler in GM7, it's just so much of a hassle. Versions up to GM8.1 have so few organization features that it essentially quadruples your workload keeping your massive codebase from becoming a mess of illegible spaghetti. I would highly, highly recommend doing yourself a favor and going with the latest version of Game Maker Studio 2, 2.3. Even older versions of GMS2 are painful given how much better suited v2.3 is at allowing you to organize the data-heavy structure of RPGs. Things like HUDs are also significantly easier to do in newer versions of GM.

Now, onto dungeons. The first thing you need to do is ask yourself what kind of dungeon walls you want. There are plenty of terms people attach to the two main types used in these games, but I'll just use Block and Line. Block walls take up an entire cell on the map grid. Examples of games that use this style of wall are Etrian Odyssey, Shining in the Darkness, and Legend of Grimrock. Line walls take up the space between cells on the map grid. Examples for this style include Wizardry, Shin Megami Tensei (what you're looking for), and basically every single PC RPG before the 90's. The former is only slightly easier to create maps for in GM, but I find it feels like dungeons are overly bloated in turn-based RPGs. Both are still easy to work with in the room editor, though.

...however, that's just for setting up the data. Drawing that map to the screen is a whole other matter. This particular case is one where making a 2D game is leagues harder than making a 3D one. It's much easier to get a simple 3D engine up and running than to pre-render walls for every single position possible, and then do it all over again if you want visible forward movement, AND THEN AGAIN if you want smoother turning like SMT does. In fact, going 3D is what I did for my first dungeon crawler. I followed a simple FPS tutorial (I'm sure some of the older folks here remember fps1.gm6/gmk), then adapted it until it was completely unrecognizable.
1611572604718.png
1611573257304.png
This is what I would absolutely recommend as a starting point. You don't even need to have any experience with 3D modeling. The walls, floors, and ceilings can be rendered in full 3D while everything else can stay as a 2D sprite. I have no idea how to do this in current versions of GM, so I suggest looking for a tutorial. I do not recommend doing 2D as a beginner. It's a lot more complicated than it may seem on the surface.
 
Last edited:

Yal

šŸ§ *penguin noises*
GMC Elder
I do not recommend doing 2D as a beginner. It's a lot more complicated than it may seem on the surface.
You probably meant "3D" :p

Re blocks/lines, I would recommend block walls since "paper-thin" walls are harder to do collision checks with, even in a grid-based game this could be an annoying source of bugs. Plus, you can use a single block type per texture instead of having to have a horizontal and vertical version of every wall, making project scalability easier.
 
You probably meant "3D" :p
No, I meant 2D. Read my post again. Basic 3D is so much easier than
- Figuring out your projection and calculating in advance which walls need to be drawn
1612033407935.png
- Scanning in-game for each wall
1612035271620.png
- Drawing walls 20+ times for every possible position you can see it at and repeat for every texture you want
1612033949861.png
- Figuring out how to draw walls so that they are depth-sorted correctly
1612033502209.png
- Finding the pixel-perfect position on screen you have to draw each possible position of wall
1612036588278.png

Re blocks/lines, I would recommend block walls since "paper-thin" walls are harder to do collision checks with, even in a grid-based game this could be an annoying source of bugs. Plus, you can use a single block type per texture instead of having to have a horizontal and vertical version of every wall, making project scalability easier.
Line walls are not any more difficult to do collisions with than block walls in a grid-based movement system. Literally one line of code different. You would check the grid (position_meeting(x, y-16, objWallParent);) instead of the cell (position_meeting(x, y-32, objWallParent);) for walls. If you're having problems doing one and not the other, it's your movement code that is suspect and should be fixed. The """difficult""" part would be having separate horizontal and vertical objects for walls. They don't even need much code, since you'll want a parent wall object that will have both types as a child anyway. The difficulty would come from having two separate types of objects to place in the room editor. Still, really not a big deal if that's how you prefer your dungeons. Ideally, you'd want to design your dungeons outside of GM anyway before implementing them in the room editor. Scalability is a non-issue considering you'll only have at max 30 different possible textures for walls.
 
Last edited:
Top