Don't you hate it? You want to host a server in your favorite game but oh, no wait. You need to open port 21621 to play in your firewall? How does that even work?
Sometimes you don't want to have your player go to this trouble, and you don't have to. Grab your existing UDP based Game Maker multiplayer game and trow GMnet PUNCH at it. Or if you don't have multiplayer with your game yet, why not try out GMnet ENGINE?
GMnet PUNCH is designed to handle UDP connections between players behind NATs. It provides basic hole punching mechanisms.
GMnet PUNCH only manages the connection between players. If that's done, it's turn for your multiplayer engine.
To have it working, you need to host a small little java-powered server somewhere.
GMnet PUNCH and GMnet GATE.PUNCH provide functions to list all servers. That way you can create your own online multiplayer lobby.
If GMnet PUNCH is unable to connect via Hole Punching (e.g. in LANs) it doesn't fail but instead tries to connect without hole punching.
GMnet PUNCH is licensed under MIT and open for development by the community. You can also create your own forks of it and distribute it yourself. Or join the development!
Tested on Linux, Windows, Mac OSX and Android.
GMnet PUNCH comes with a demo project and a manual to guide you through everything you need to know.
GameMaker: Studio is owned by YoYoGames. GMnet is not affiliated with YoYoGames.
The GMnet logos use icons from Entypo (http://entypo.com/) and Open Iconic (https://useiconic.com/open/). They are licensed under CC BY-SA 4.0.