r/gamemaker • • 4d ago

WorkInProgress Work In Progress Weekly

3 Upvotes

"Work In Progress Weekly"

You may post your game content in this weekly sticky post. Post your game/screenshots/video in here and please give feedback on other people's post as well.

Your game can be in any stage of development, from concept to ready-for-commercial release.

Upvote good feedback! "I liked it!" and "It sucks" is not useful feedback.

Try to leave feedback for at least one other game. If you are the first to comment, come back later to see if anyone else has.

Emphasize on describing what your game is about and what has changed from the last version if you post regularly.

*Posts of screenshots or videos showing off your game outside of this thread WILL BE DELETED if they do not conform to reddit's and /r/gamemaker's self-promotion guidelines.


r/gamemaker • • 1d ago

Quick Questions Quick Questions

3 Upvotes

Quick Questions

  • Before asking, search the subreddit first, then try google.
  • Ask code questions. Ask about methodologies. Ask about tutorials.
  • Try to keep it short and sweet.
  • Share your code and format it properly please.
  • Please post what version of GMS you are using please.

You can find the past Quick Question weekly posts by clicking here.


r/gamemaker • • 6h ago

Tutorial Experiments with GM Plugins (or How I Learned to Stop Worrying and Love Reflection)

Post image
18 Upvotes

So I've been doing quite a lot of experimentation with GMs plugin system over the last couple of months, and I figured it'd be fun to share some of the stuff I've learned.

Plugins are still fairly new, and apart from the Prefab builder in the beta branch, there's not really a documented "path" to creating one. So you really gotta figure shit out for yourself by diving into GM. Keep that in mind as you read this, it's not a path "blessed by GM" itself, it's essentially condensing the notes I left myself while doing the experimentation, and figuring out how plugins work, into something others can read, before the GM devs have fully released the system publicly properly.

My own experiments have led directly to the creation of the Sundial Visual Editor (a day/night cycle editor that runs directly inside GameMaker, intended as an authoring tool for Sundial) and a few other things that I'm yet to release.

Please note, it might be easier to read this article on my actual site, as it has got better formatting and stuff than a simple reddit post (plus other cool stuff to explore lol): Experiments with GM Plugins (or How I Learned to Stop Worrying and Love Reflection)

The Sundial Visual Editor

Making the plugin has been an interesting experience, with a lot of ideas for future cool things, and much wailing and gnashing of teeth as things refused to work how I thought they should, or bizarre little quirks reared their ugly heads.

So plugins ey? How do they work?

When most people think about extending what GM can do, they think of extensions, which have been around for yonks, but plugins are a different beast altogether.

Rather than providing additional functionality to your game, plugins are intended to extend GM itself. They're written in C# using .NET.

A plugin generally consists of a compiled DLL, a .gmplugin manifest describing the plugin, and then any other stuff it might need, like an XML layout or images you might want to show (for instance, the little icons on the timeline scrubber for the Sundial Visual Editor are graphics that are stored in the plugin).

GM loads up the plugin, and then you can register commands, add menu items, create editor windows, mess around with project resources and all sorts of other stuff (like hook into various IDE events). In other words, you can kinda take control of GM itself.

To make it clear, you're not building a seperate system really, you're actually working with GMs own interface system, exactly like the Sprite editor, or the Object window or anything native to GM like that.

Building interfaces

GM uses XML layouts to describe its interfaces (things like windows, grids, buttons, etc) and uses C# to provide the behaviour. And you can do exactly this for your plugins, which is how Sundial gives you a fairly substantial editor that feels exactly like a normal part of the IDE.

Preview & Timeline sections

Sundial uses GMs existing controls wherever it's reasonable, but then I had to write custom-rendered components for the slightly crazier things like the timeline and image preview.

One thing that tripped me up a few times is that GM has several different kinds of windows, and they're not interchangeable, lol.

Like, an ordinary floating tool window is different from an editor window attached to a workspace, which is different from a child editor linked to another window by GMs weird little green workspace lines.

It sounds obvious, but you can actually create a perfectly valid window that doesn't behave anything like the kind of editor you wanted. It's not gonna tell you "Hey mate, you're using the wrong window now, use this type of window instead". It'll just...not draw, or whatever it decides to do.

To wit, during some of my early tests, I managed to create a window that the plugin could totally successfully find and interact with...but it would never actually appear on screen...Which took a frustratingly long time to fix.

It turned out that the problem was the structure of the XML layout. I'd created something that GM thought of as an embedded component, rather than a standalone window...

So if you're attempting to make a plugin yourself, something to keep in mind.

Working with the IDE

Another interesting thing is that you're working inside an application with its own resource management and state and shit. It has its own lifecycle. GM does GM things, and you need to be ready for when it does them.

For example, Sundial stores its settings separately for each project, and it hooks into GMs normal project-saving behaviour to save.

I keep track of changes while the user is editing, if they change some setting in Sundial, I mark the project as modified, and then I actually save the changed data only when the user saves the project.

This sounds kinda simple and obvious. Of course stuff gets saved when you save your project. But there's a bit to consider here. What happens when someone closes the editor without saving? What happens when they switch projects? What happens when they uninstall the plugin?

You need to think about these things because the plugin isn't just responsible for displaying itself to the user. It's properly participating in the normal operations of GM, which includes cleaning up after itself.

A few development tips

Probably the biggest thing I've learned is that it's worth finding out how GameMaker itself does something before attempting to recreate it.

Having a good knowledge of GM itself was pretty crucial, as when I decided "I want a dropdown menu" or whatever, I'd be able to think "What native GM window is doing something similar to what I want here?" And then copy that implementation, lol. Every time I got cocky and decided to just implement something without checking first, it'd inevitably bite me in the arse because of some quirk in how GM checks something, or the lifecycle of the component, or whatever.

The same rule applies when an interface isn't behaving as expected. Rather than trying to guess about what I had access to and how I should use it, a little probe experiment would usually reveal what I was missing.

The probes are just using reflection in C# to grab things like types, methods, and fields and stuff that are exposed by what I was looking at. These were invaluable because of the lack of documentation about plugins right now. I could grab a big list of everything that I could use for a particular component while GM was running, and then examine that and start trying to figure out what things seemed like reasonable attempts to do what I was wanting to do.

This saved an enormous amount of trial and error during the earlier editor experiments, lol.

Another thing to keep in mind is that the IDE and the game runtime are obviously separate environments.

Just because your plugin can manipulate a resource in the IDE does NOT mean you've automatically extended GameMaker's compiler or runtime to understand something new. I was doing experiments with custom assets, and could create a custom asset in the GM IDE, but getting that asset into a game where the game could actually use it while it was running, proved extremely hard, as there are hardcoded parts of GM that restrict this during compilation.

The only method I could find to make it work meant that the project itself was considered corrupted by GM if the plugin wasn't loaded. This ain't great, hahaha, so I'm hoping they add some flexibility to the assets and stuff at some point to allow this kind of behaviour without you having to mutate everything to the point of breaking. However I have since found some other hacky ways of sneaking custom assets into the compilation process without breaking the project, which is kinda cool. But they aren't true custom assets like my original experimentation was.

For Sundial, the editor handles the visual authoring side in the IDE, while the actual day/night grading is performed by a separate completely normal GML code library.

So when the user saves, I actually run a check through the project with project.FindResourceByName(name, type); to see if the correct assets for the code library are present, and if they are, I jam the preset data into the variable definitions of one of the objects that the code library has.

Then the code library can read from that variable in-game, which is essentially the bridge between what is happening in the IDE, and how that gets translated into something actionable in the game itself, while still allowing both the visual editor and the code library to function without the other being present.

Distributing plugins

GameMaker's Package Manager is pretty standard for package managers. It supports npm-compatible package registries and you can setup custom sources, which is actually very useful as I'll explore in a bit.

There are a few steps involved in packaging and signing everything correctly, which you have to handle as the plugin builder. But people installing the plugin for their GM don't need to install .NET, npm or any other development tools themselves, all that's required is for them to point at the appropriate registry and download it to GM (I mean, this is all bog-standard stuff that you can figure out from the beta Prefab builder stuff, without any of this custom plugin work).

For development, I've found it useful to run a local package registry so I could quickly and easily test the actual installation and update process rather than just manually copying files around. I just installed verdaccio and ran the local server whenever I was working on the plugin.

Another thing is that if you're hosting your plugin on the standard npm registry, it doesn't provide the correct metadata for GM, lol. This doesn't mean that it won't work, but it does mean that you can't provide certain details, like an icon image, for example (or at least, I could not work out a way to have that displayed), and it can look kinda ugly or generic when shown in the Plugin Manager.

Instead, I had to build a little "middle man" webpage of my own (just hosted on free cloudflare), and then users point their Plugin Manager at that page. The page requests the package data from the npm registry, and then serves it alongside the extra metadata that GM needs to display everything properly. This was a very annoying workaround to have to implement, lol, but I'm a professional man who does professional things in a professional way because I'm a professional, and stubborn, I guess, so I couldn't just leave my plugin without a cool native icon and stuff in the package manager.

One last thing to consider is version compatibility. Right now, because plugins are essentially undocumented, and they depend on GMs own IDE interfaces, it means that there's always the potential for an update to break something.

Until the GM devs actually come out with a sanctioned list of behaviours and ways that plugins should interact with GM, then you should consider them to be somewhat of a hack, in the same way that doing math on asset ids prior to the big reference update was a hack, and we all know how the reference update broke many people's workflows.

So you'll have to stay on top of updates and test any plugins you might try to build on each new update as it comes out, to make sure it ain't broke.

Anyway!

Plugins are sick. They let you extend GM in some incredible ways, and I'm still finding new stuff all the time as I work with them.

So far I've experimented with extending existing editors, creating new workspace windows, working with project resources, and building more specialised interfaces (Sundial is an example of that, with its custom drawing that is intended to match the in-game visuals), and I really feel like I'm just scratching the sruface. There's a lot you can do, if you have the time and patience. Hopefully it won't take quite so much time and patience after they finally release a sanctioned way to create plugins like the Sundial visual editor, lol.

If you've read this far, here are some other tutorials I've written that you might enjoy perusing:

A brief plug

You've already seen some examples of the Sundial Visual Editor in action throughout this post. It's free to download and play with, just install it by following this guide:

Plugin Installation Guide

So you can see exactly how plugins can extend GM by trying it out.

Also, all my libraries are 50% off for the itch Halloween Sale, so check them out. I rarely discount them, so this is a huge saving if you're interested in any of them.

My site: RefresherTowel Games libraries

I've only just released Sundial, which is a sweet day/night cycle system for your game, letting you craft specific and visually arresting moods for each period of the day, alongside having a bunch of cool features like callbacks for the changing day periods, a masking system so you can separate indoor from outdoor areas and light them separately, plus a bunch of other stuff that is useful for day/night cycles.

Sundial's Day/Night Cycle in my little bee sim game

Best of all, you can edit the entire look of the thing in GM with the Sundial Visual Editor plugin, without having to boot your whole game up to see how it looks in action, and on top of that, it just takes one single measly line of code to get Sundial running in your project:

SundialStart();

When you want it to stop:

SundialStop();

There's plenty more code you can use in Sundial if that's your thing, but if you're a beginner or an artist who hates code, well, there you go! Simple, easy, rustic!

Get Sundial

Read more about Sundial here: Sundial Docs


r/gamemaker • • 20h ago

Game Thanks to GameMaker Engine, I finally created my own game!

Post image
92 Upvotes

r/gamemaker • • 6h ago

Help! Are there tutorials online about making a factory game?

2 Upvotes

Hi. I'd like to make a factory game and wanted to know if there were any tutorials online that would help me make such a game. I've looked online but nothing came up.


r/gamemaker • • 21h ago

Help! my friend's streaming to me and he's confused why it keep's crashing,

Post image
20 Upvotes

i dont know coding im jus asking here because i feel like theres experts here 😭


r/gamemaker • • 8h ago

Discussion I'm making a soulslikes and i never played one.

0 Upvotes

a buddy of mine asked if i could make a super bloody soulslike. I never played em,bosses with big health bars, you roll around and block shit. dont stand in pain circles, right? And blood sure, so much that we play in a pool of it. Idk started something became a soulslike rpg survial rogutelite, each ACT is a different system. But more fun stuff in gamemaker 3D, i think i may start making machina skits in engine as a side experiment i had a lot of fun trying to make cut scene and story parts. game trailer


r/gamemaker • • 1d ago

Resolved Making a map editor inside of gamemaker - is it possible?

7 Upvotes

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 :(


r/gamemaker • • 2d ago

Discussion Not sure if bug or feature... It *would* make a pretty cool easter egg!

Post image
34 Upvotes

I was working on my indie game and had this happen... It wasn't intentional, but I do think this would make a great feature or easter egg in certain games.

TL;DR, I accidentally left the player as persistent when transitioning back to the main menu, so they were still able to walk around. Happy creating 😄


r/gamemaker • • 1d ago

Help! How Do I Make a Delay? (GML Visual)

5 Upvotes

I'm doing the Car Parking tutorial and I wanted to add a delay and then a start of the level if you hit a car.

Adding a Restart Room block was easy enough, but I fiddled a bit and couldn't make a delay timer.

So.... How do I do that? Thank you in advance :)

Side Note: Adding the Restart Room block seems to cancel the particle emitter right before it in the chain. How do you prevent that?


r/gamemaker • • 2d ago

Community New Games Made With Game Maker

Post image
82 Upvotes

If you are just getting into game development in Game Maker, a few of these games could inspire you: https://youtu.be/bTIPOkN1ut0?si=oweFVOxP_nozAqXg


r/gamemaker • • 3d ago

Help! I Just starting to learn about Game Maker. what are your best advice for a beginner?

22 Upvotes

Right now I'm copying a Youtube tutorial, just trying to copy or tweak something, and learning the rules of coding. I want to make sure I'm building a good foundation before having bad habits to unlearn later. what are some essential habits/shortcuts I can do?

Btw thank you all for giving me your advice


r/gamemaker • • 2d ago

Discussion What are the pros and cons of bringing AI into my personal project

0 Upvotes

I have felt very conflicted about this for the last few months. I've been working on my game off and on since 2020. Slowly at first, then gaining more momentum. I'd guess I'm about 30% done with it. All the assets are and will be hand drawn sprites and manually composed music, but I'm conflicted about using AI to help me with the code.

I always admired the indy solo devs who could create a full game themselves over the course of years or a decade and I wanted to be like that. I still could. But I fear that it will take me another 5 years to finish this project unless I start using AI to help me with the code. I wanted so badly to be a purist and not use AI for anything, but I'm worried that I'm going to be left in the dust that is the progression of the game industry. I dont want to put my game on steam, have to reveal that AI was used somewhere in the process, and have everyone think it's just vibecoded slop.

Does anyone else have a similar situation? What are your thoughts.


r/gamemaker • • 2d ago

Resolved This is a bit weird to ask, can't really explain in title.

2 Upvotes

(NOTE: My issue is fixed.)

Basically, I need a persistent object from what I will refer to as "Room A" to be layered over another object from "Room B" Nothing is really working.


r/gamemaker • • 3d ago

Help! gamemaker

7 Upvotes

I recently got back to programming in GameMaker, which is the engine I've been trying to learn, and I realize I practically don't know anything. I want to ask for help from people who know more than me in this area—how can I learn to program better in GameMaker? I'm going to try to completely stop using AI because I used it a lot and ended up not even understanding what I was doing. So even without money to pay for a course, like the one from None Class, there has to be a way, without relying only on AI, because sometimes I want to make something and I don't have all the knowledge for that specific thing unless I use AI just as a tutor, but I don't think that would really work. So what do I do, guys? How can I learn GameMaker the hard way? By studying every day?


r/gamemaker • • 2d ago

Help! alguien me ayuda?

2 Upvotes

I am totally new to GameMaker. I want to create a Mother/EarthBound fangame, which means it has to be an RPG, but since I'm just starting out, I want to make something super easy first to practice. What video game genre would you recommend for me to start with?


r/gamemaker • • 3d ago

Game I listened to your feedback and redesigned my game music pack artwork

4 Upvotes

Hey everyone,

A little while ago, I posted my indie game music pack here, but I received quite a bit of criticism for using AI-generated artwork for the cover and YouTube thumbnail.

I used AI for the thumbnail because i lack illustrationskills, and i didn't think of it as a big deal.

I understand the criticism, and looking back, I should have put more thought into that decision. I'm sorry if the artwork disappointed anyone or gave the wrong impression.

I've since redesigned both the cover and the YouTube thumbnail myself using Canva, and I've updated them to reflect the new direction.

Processing img oapn6onwfgxh1...

I still want to share the actual music with you, though! I've made a pack of 10 original retro-inspired game music tracks for indie developers looking for music for their projects.

If you're interested, you can check it out here:

Music pack: https://wnannestad.itch.io/pixelquest

I'm still learning and trying to improve as a creator, so I genuinely appreciate constructive feedback. I hope the new artwork is an improvement, and I'd love to hear what you think of the music itself.

Thanks for giving it a chance!


r/gamemaker • • 3d ago

Help! How to make a searching AI?

1 Upvotes

Hey! I'm very very new to gamemaker so fair warning on that part.

I know in concept what I need for this enemy AI, I'm just not sure how to put it together.

Generally the enemy needs to be wandering the level until the player is in its line of sight, then the enemy will see if the player is hidden(this is just crouching!). If their not, then the enemy goes to the player.

It should be simple in practice, but again I've never built this aspect of a game before </3

If theres anywhere someone could direct me towards that may have words of wisdom lmk!!


r/gamemaker • • 3d ago

Help! Particle Systems

1 Upvotes

In the particle editor, where the "On Death" section is. Is it possible to use your own particle system instead of the premade GameMaker versions?


r/gamemaker • • 4d ago

Community GMRT will be made free for commercial projects on January 1st, 2027

53 Upvotes

According to this official blog post and this forum post the GMRT will be made free for commercial projects on non-console platforms. Looks like we'll be getting source code access as well.


r/gamemaker • • 4d ago

Help! How do I open up the assets tab. I'm losing my mind

Post image
10 Upvotes

Sorry if dumb


r/gamemaker • • 4d ago

Tutorial PSA: middle click on any gml term to open the manual

19 Upvotes

Just a tip for those who are newer to gml. Middle mouse (scroll wheel) clicking on any native gml term or function will open the gml manual directly to the page for that term.

It's super useful when learning gml. I've watched minimal tutorials, and learned most of what I know just by using the manual and the middle click functionality.


r/gamemaker • • 3d ago

Game I made a 10-track retro game music pack for indie developers

0 Upvotes

Hey everyone!

I've been working on a small indie game music pack called "Pixel Quest - Retro Game Music Pack", featuring 10 original tracks inspired by classic retro/16-bit games.

The pack includes music for different situations, such as:

  • Main menu
  • Exploration and adventure
  • Forests and dungeons
  • Regular battles and boss fights
  • Chase / danger
  • Shops and safe areas
  • Victory and game over

The tracks are around 1–1.5 minutes long and are designed to fit different moments in a game.

I'm a small creator trying to get my work out there, so I'd really appreciate it if any indie developers here gave it a listen. I'd also love feedback on the music and whether you think it would fit your projects.

You can check it out here: https://wnannestad.itch.io/pixelquest

Thanks for checking it out!


r/gamemaker • • 4d ago

Help! update on my weird 2D first person project, and looking for insight

Post image
23 Upvotes

so have added some proper textures to the world as well as the rendering for objects and moving objects.
a big part of this project will be customization, and part of that comes with adding reasons to use said customization.
right now we have a shader system that builds clothes of of an array. currently in my dev notes I have plans for a few different categories of outfits, which classify in layers

5 or less works as sleepwear/swimsuits
6 to 11 for casual/warm weather
12+ for cold weather

since sleves/pant legs count as their own layers this number is a lot lower than you'd think. yet with the ability to cut things in any way you want and stack layers on top of others this still has limitless combinations for even the under 5 category.

however all this being said I'm running into a small road block. how does one add water? currently the world is draw in 2 segments, first the sky, floor, and far walls and then a second pass for the closer walls(all in world objects draw between these two). so since we have no 3d space how does one track what is/isn't covered with water? a start would be adding another floor layer risen up by some set amount, but this runs into the problem that walls and objects would not be covered properly even if the draw is done at the end as something like a characters head poking out of the water wouldn't line up with their actual in world position. another idea would be to actually use some type of line trace here, checking what should and shouldn't be in water and scaling the lines horizontally across the players view instead of from their viewpoint itself(since remember the only information the "camera" knows is the tiles around them, the players position on their own tile, and the position of objects on tiles in view)

I'm not too sure what the right call is, so looking for and ideas or even references I can grab(closest I can think of is daggerfall, but that is a 3D game)


r/gamemaker • • 4d ago

Help! My Sprites don't seem to be on size.

2 Upvotes

Hi everyone, I created different sprites for both Players and Objects. Sometimes this sprites are always left with a gap, no matter how much I change the size they always seem to eather collide with one another or have a small gap between each other. The Player is also colliding with what seems to be an invisible wall.

Is this a problem of the size of the Sprite or is it a collition error? If so, how do I make a 32X32 sprite fit in a 32X32 Room without either colliding or being seperated?