r/gamemaker • u/k0i_p0nd • 2d ago
Resolved Making a map editor inside of gamemaker - is it possible?
hi all! im entirely new to game development, and im trying to figure out which engine would be best to develop something ive had in mind for a while. i play the ttrp dungeons and dragons online, and as a gift to my sister, i want to create her exploration system in a playable way!
this would mean that i need to find a way to make a very simple system where she is able to choose small tokens (like leaf for foraging, building for looting, dagger for bandits, etc) and place them on a grid. it would also be nice if she could have the option to change the bg colour and select from a few different musical tracks. in a dream land, the other players could join (probably through opera, since i think gamemaker and GX have accessibility to each other) and select which rote they want to go from the map my sister made, but im not sure if thats possible.
thanks in advance, and sorry for my lack of technical knowledge in this post -- im very new :(
4
u/PowerPlaidPlays 2d ago
Yeah, though the specifics would matter a lot on the kind of game you are making. If you are very new though I would consider this more of an intermediate level task. I'd describe it as hard to conceptualize but easy to code, it mostly just takes a lot of planning up front which can be hard if you are inexperienced.
Still, if you wanna see if you can work it out I would look into JSON saving, data structures (structs, arrays, 2D arrays, and constructors) for storing the info, "for loops" which is useful for parsing information, and all of the functions related to adjusting tile maps in code. There are probably some tutorials on grid based inventories that would be relevant to this.
Probably a good method for a beginner would be working out a system where you allow a player to click on a the tile layer to modify it, and then use a "for" loop to save it to a 2D array which you save to a JSON file. On loading you'd "for" loop that array to spawn all the objects.
https://manual.gamemaker.io/monthly/en/GameMaker_Language/GML_Overview/Language_Features/for.htm
https://manual.gamemaker.io/monthly/en/Additional_Information/Guide_To_Using_JSON.htm
2
1
u/Mushroomstick 1d ago
Any of the general purpose game engines can do what you are describing. Your skills are more likely be the limiting factor than the game engine. My recommendation would be to code along with a few beginner tutorials for each game engine you'd be considering to see if any of the workflows feel good to you. The officially curated GameMaker tutorials can be found here. The communities for the other game engines likely have similar resources to point you at.
1
u/Dragonfantasy2 1d ago
Totally possible, absolutely not easy. In my experience map editors are a pain and the weak typing of GML means you need to be quite careful with how you store that sort of data.
1
u/Lethalogicax 1d ago
It's absolutely possible! In fact, I built my own in-game world editor prior to actually building my game world. According to the room editor, my game is a completely blank room with exactly 2 objects. Those 2 objects have draw events that are responsible for drawing the entire game. All of the world authoring happens through a hand-built in-game editor that saves and loads worlds into huge text files.
But doing this was a project all in itself. Building that editor, a pre-requisite to building the game itself, was like programming an entire game all on its own! So if programming a game is something you're not too familiar with, then programming an editor to build your game within is going to be even harder... It's possible, but it's really hard and takes a long time...
-2
u/clownwithtentacles 2d ago
I'd probably look at Godot over gamemaker, just more various tutorials on it and it has very straightforward UI tools
0
u/Annual_Ad5560 22h ago
Certainly! In my project, I use Grids to store data, along with functions for reading/writing Grids to strings and reading/writing strings to files. For an in-game file browser, I use a function that returns the names of files with a specific extension, which allows me to iterate through all the files in a directory. All of these functions are built-in and don’t require any advanced knowledge to use. You can also use this same approach to store and assemble parts of the game from presets.
8
u/Ivaskiy 2d ago
Of course you can, actually you can do anything with enough knowledge. But as a newbie, you need to learn alot and practice alot