Hello, fellow game developers! 🎮
I'm thrilled to introduce you to Rocket Networking, a powerful networking engine designed specifically for GameMaker.
If you've ever gone into multiplayer game development, you know the challenges of implementing even a networking system. For beginners or game developers who are more on the artistic side, this can get very difficult and time consuming.
That's where Rocket Networking comes in, simplifying your journey and accelerating your project's success.
When I started this game development journey, all I knew was that I wanted to create my own .io game. (I finally did btw, check out my last post ;)
Gamemaker is the best starting point if you want to get into game development. Many would argue it is Unity, but the difference in learning curves is HUGE. And it really doesn't make sense to use Unity for 2D games, it's overcomplicating things a lot. Gamemaker has an easy to use IDE, easy to learn Script and is just overall more welcoming.
Unity does have a popular framework for making multiplayer games, Photon Unity Networking (PUN) and it's very famous. In gamemaker you had to start from the vanilla functionality provided and that isn't bad but it is very time consuming. The problem is you can't really build a scalable multiplayer game that anyone can play anytime around the world. For that, you need some kind of a dedicated server that is always on. Otherwise you're stuck with local multiplayer. You can see this starts to get messy.
I have to go to a cloud provider? Rent a VM? Write a script in some backend framework like Node.js? And then make it communicate with gamemaker?...
Even after that you have to learn how to use Buffers (which are infamously hard) to communicate, which is definitely not for the beginner.
However this isn't that bad because it's only a one time thing. Once you learn how to use buffers, you just have to repeat that code.
Rocket Networking will host and manage the backend server for you. So you don't have to touch any backend code or go to another cloud provider. All you have to do is make an account with us, and there you go.
Our Client side Gamemaker extension is designed so that communication is dumbed down to just 1 line of code to share data with the server.
Making multiplayer games is broken down in RNet to rooms. A client can choose their room like "public" or "lobby" and they automatically share data with other clients in that room.
So if you are in the "lobby" and you are sharing your "name", then other clients are automatically created for you and you can see all their names.
You don't have to worry about creating a new player everytime someone joins the room or destroying that player everytime they leave. All that is auto managed. You just have to outline the general stuff. Like print the "name" on top of the player.
Some elements in multiplayer game development are not just limited to a client. This can be NPCs, bullets etc.. For those things, we have an entity system. So if you create an entity, it is created for everyone else until you destroy it. You can see this perfectly fits the application of a bullet that you shoot.
This is independent of the pre existing state sharing system, so you may or may not pair it with that. Sometimes state based sharing of data can be heavy... And in turn based games it's not the optimal solution. What if we could just send an individual packet of data from one client to the other? That is the Private Messaging System, built separately and very easy to use
Example usage. Your bullet hits another player, you have to tell that player to reduce their health by 10.
To be completely honest the customer base is still very small but we've got some wonderful feedback from those who have used it!
I also have some sample projects you can try out...
Open this with your friend or even in 2 tabs or 2 people from anywhere in the world. All this code is available on github so you can get started easily.
On the Website I have all these guides.
Thank you so much for the time to read this post!💝. I appreciate it a lot, and I hope I'll see you soon :)