GMS 2.3+ Online Lobby Networking / Limits of Broadcasting

My question is more about the function network_send_broadcast or broadcasting in general and its limitations. I would like to achieve what it does that isn't limited to a local reach and the best way to go about that for my purposes using Steam and being flexible enough to use outside of Steam.

The Limits of Broadcasting:
What I believe to be true is that the built in functions such as network_send_broadcast is limited to being only local. Me and another programmer who live in different states are able to force a connection using port-forwarding and skipping the process of broadcasting and to connect to each other directly. Our goal however is to have an online lobby that allows random players and friends to connect with ease and for a game to appear when a client hosts a server. We use this demo to help with the groundwork and are successfully sending packets of data in regards to movement and reading those packets correctly.

Using a master server:
From the research I have done and I may need to do more deep diving with this but I am a little concerned that it may be outdated. I have found that gmNet Punch talks about not having to port forward and also a way of getting around fire walls so players can connect without manually opening their ports or having to know their IP addresses. From what I understand so far is that they do it is by using a master server that helps form the connection and saves IP addresses and the Port being used in the event of reconnecting should something go wrong. I'm curious if this method could work with a P2P setup, where a master server forms the connection but the client hosting the non-master server takes the reins to host the game once that connection has been made. Would you have any affordable or free servers to experiment with simply for testing? If you have any recommendations to the best type of outside server for actual long term use? Do you know of any good tutorials that cover connecting to a master server, as in would I need a URL and/or the IP address of that master server? (I imagine yes to both).

Using Steam's server:
I am curious about the limitations of Steam and if I use their server as a way to form that initial connection for a P2P setup. I believe it can be done and is done exactly that way for a lot of games that use Steam as a server. I guess I worry about being boxed into only having a system setup for Steam that is not flexible enough to move beyond that. I just come up short in my research about the Steam server and the pros and cons that exist within it and the limitations it might have compared to something else.

I will not pretend that I am an expert in this as I really only began researching networking a short 3 weeks ago. I humbly request to simply learn and be pointed in directions of research so that I avoid an aimless search. I completely understand that this is a very complicated set of processes that might just be outside my purview, but I am here to learn from this community as best I can and so any help, tutorials, suggestions and recommendations is greatly appreciated. I just worry about spending too much time and energy researching something that is no use to me and would like more direction from people who know more than me. Thank you for your time in reading this.
Last edited:


Broadcasting is local only, you won't be able to use it any other way.

You may not want multiple servers if this is a low-playerbase kind of game. You could easily set something up to switch between 'virtual' servers, just by sending data to specific players.

As for a master server, yes this is how it would be done. You can use Steam or your own solution here. I recommend trying out Home - GameMaker Server, but it does force you to use some systems you may not want to. On the other hand, it's free.
For testing exclusively, you can set up your own master server the same way you would set up a normal server, just launch the file on your own PC for testing.

I haven't used Steam or even researched it really, as it costs $100 as a base fee to publish a game, which would be required for testing. I'd recommend something else unless you're committed.