I am creating an airport management / design tycoon. I'm a student pilot, ex flight attendant and now business owner. I believe none of the games on the market capture the realism properly and I want to give it a go myself.
Some of the cool features which I have built into the game so far:
- Air bridges / jet ways are designed by the player. No templates, pre-built layouts
- Aircraft stay overnight, are delayed, passengers can sleep overnight or you can build hotels
- Security is a massive part of the game. Design your fences properly, upgrade opportunities for fencing and security
- Airlines can choose to use their own ground handling or yours (and in the future, you'll run a side business focusing on ground handling / catering)
- Leases operate like in real life, for shops, hangers, lounges (yes, airlines can have their own lounges or you can build your own!)
- Gates are designed to be common use or airline-specific, and airlines' have a big say on how you run your airport to ensure you fit within their business model
- Aircraft performance, turnarounds etc are actual
What I need is 5-10 players who would be open to play the game, give me detailed feedback and help me craft new features / help find bugs.
Those who are happy to continue providing feedback will also get a free copy of the game should it make it through to launch.
For full disclosure, it is being built with AI-assisted coding; the design, realism and some artwork are mine, and I am planning to bring on a developer should the game gather momentum.
So if you are interested, please PM me and we can chat more!
One thing I always liked about unity is that you can click on an object while the game is running and just see all its values right there, so I made a similar inspector for GameMaker. You click an instance and you see everything it has, and you can change values while the game is running too, which is great for messing with move vars or jump height until it feels right without recompiling every time.
It can also rewind as it keeps recording the game in the background while you play, so when something looks off you pause, drag the timeline back to where it happened and click on any instance to see what its values were at that exact moment.
You can also save a recording to a file and open it later, so if a playtester has it running and hits a bug they can just send you the file and you go through it like you were there.
Setup is just importing the package and running your game, no code needed. It's free on itch for now if you want to try it: https://isopodgames.itch.io/gmtracer
Still a work in progress, so if something breaks or you feel like something's missing let me know. Would really like to hear what you guys think!
i have been trying to get an old project of mine to open (when i say “old”, i mean from less than 2 months ago) and every single time i tried to run it it always said it failed, then i went to the project ive been working on currently and IT failed, and then it worked. but the old one still wouldnt work. and then i tried uninstalling gamemaker and installing again, and it STILL didnt work. so i, unfortunately, resorted to trying to get ai to help, and guess what. it didnt do hickory SQUAT. so now i have to go on to reddit of all places to look for someone to help me.
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.
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.
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:
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:
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!
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
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 :(
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 😄
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.
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?
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!!
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?
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.
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.
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?
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.
I am trying to draw part a sprite at a different depth than another sprite within the same draw event.
I am doing this because I want to have a second object on top of the first sprite, while the other sprite is drawn on top of the second object in order to cut off part of it.
What I found was gpu_set_depth, however this doesn't work when I am using depth in all of my other objects as it appears to take precedence over gpu_set_depth.
Does anyone know a way to do this? Changing all of the objects to use gpu_set_depth is not an option as that breaks other code. Having it be two objects is also not ideal, as the object should be able to move and there will be multiple of the same instances.
Because I don't know how to explain well, here is a picture of what I want to achieve:
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?
To save any readers time, I've dabbled with GameMaker all the way back in 2015. And I know how to navigate the UI and all that jazz. The thing is I've always been passionate about creating games, designed sprites, made images, designed a game idea for a buddy.
I just want to know is there any GOOD source to learn their coding language and how to actually understand what's being taught? I always go on YouTube and look up videos regarding the topic, but most people only make tutorials on how to make a specific game and won't really tell you what code you write actually does.
I'm sure this is a common question on this subreddit, but any replies are greatly appreciated!