DEV Community

Cover image for I made a simple Room-based Low Code Multiplayer Framework for Gamemaker🚀
Abhishek
Abhishek

Posted on

I made a simple Room-based Low Code Multiplayer Framework for Gamemaker🚀

Hello, fellow game developers! 🎮

I'm thrilled to introduce you to Rocket Networking, a powerful networking engine designed specifically for GameMaker.

Rocket Networking

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.

Why Rocket Networking? And why particularly Gamemaker?

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.

Need for a dedicated server

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.

How Rocket Networking Solves this Problem

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.

Room Based Multiplayer

Rooms (Auto State Sharing)

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.

Image description

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.

Dynamic Player Creation and Destruction

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.

Entity System

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.

Private Messaging System

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.

Image description

User Reviews and Games

To be completely honest the customer base is still very small but we've got some wonderful feedback from those who have used it!

Image description

Image description

I also have some sample projects you can try out...

Image description

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.

Image description

Image description

Image description

Thank you so much for the time to read this post!💝. I appreciate it a lot, and I hope I'll see you soon :)

Top comments (2)

Collapse
 
anitaolsen profile image
Anita Olsen

How exciting! This was an exiting read. I am hoping to manage something awesome like this myself. Well done!

Collapse
 
lilshake profile image
Abhishek

Thank you!! All the best to you!