Online Multiplayer Extension for GDevelop
A downloadable project
This extension is intended for beginners in online game creation. If you want to create more advanced online games, please consider using existing extensions or features (WebSocket client, MQTT client, Firebase, P2P, THNK, etc.).
⚠️ This extension is experimental and not yet practical. Also, development may be discontinued.
⚠️ This extension is not suitable for action games that require precise synchronization.
⚠️ This extension will not work when the server is down.
⚠️ The server may be restarted without notice for development purposes.
⚠️ You cannot build your own server.
☕ I need your support to maintain this server.
🐛 Probably fixed.
This extension may not work on Android apps.
I have confirmed that WebSocket communication from GDevelop works on Android 7, but not on Android 11. (If on browser, it also works on Android 11) Therefore, this extension will not work on Android 11. (⚠️ The exact version of Android that doesn't work is unknown)
This issue is likely to take some time to resolve.
ℹ️ No need to update extensions. The fix was on the server side. Please make sure this extension works with your android app. 👍
📖 How to use
Import the downloaded "OnlineMultiplayer0.0.0.json" file into your project.
There is no manual at this time. Please refer to the following video.
ℹ️ A sprite with the online player behavior added can only have one placement on the stage. For example, if you want to share bullets shot by a player, you must use a shared string.
(It is more efficient to share the timing and angle of the shot only once, instead of sharing the bullet's position all the time)
(This extension is not suited for exact synchronization)
Deleting a sprite with added online player behavior will automatically disconnect it from the server.
⚠️ If the game window is completely hidden behind other windows or minimized, the game will stop and that player will be disconnected after 5 seconds.
🪄 About how it works
A room is automatically created in the server for each scene in each game.
Information such as the position of player characters connected to the same scene is shared.
It uses WebSocket for communication.
📬About shared string
Each online player can share an individual string. This is useful for chat and JSON sharing.
See "Chat example" or "Shot example" for details.
🚫 Limitations
This extension has the following limitations to protect shared servers:
- Communication at 0.1 second intervals.
- The shared string must be within 100 characters.
- javascript obfuscation.
- The server restarts at a scheduled time every day. At that time, all connections will be disconnected.
📂 Example project file
"OnlineMultiplayerExtensionExample0.0.0.zip" is the example project file. Open "game.json" in GDevelop.
List of examples included in the project file.
- Basic example
- Chat example
- Random example
- Shot example
- Host example
- User name example
👾 Games created with this extension
Status | In development |
Category | Other |
Rating | Rated 4.8 out of 5 stars (4 total ratings) |
Author | PANDAKO |
Made with | GDevelop |
Tags | Multiplayer |
Code license | MIT License |
Average session | A few seconds |
Multiplayer | Server-based networked multiplayer |
Links | Ko-fi |
Download
Click download now to get access to the following files:
Comments
Log in with itch.io to leave a comment.
Hello PANDAKO, are there a way to keep track of all the players using ID, and using the ID to pick a random player ?
Hello Pandako, I would like to know how I could put a text as multiplayer, in the case of my game I want each person when they join to have a text following them, and I can see the name of the others, I found this video, this is what I mean:
If I need to remove the limitation for an mmo game, would it be possible to remove it? Communication at 0.1 second intervals
Do you have to pay
bro is free
Also pandaka how do i get the OME EXAMPLE All it gives me is the extension
you have to pay money for the example but the actual extension is free
is the Shooting example for free?
you have to pay atleast $5USD to get it, sadly
Hey, there! Could anybody help with shooting mechanics in this extension.
In offline mode it is pretty easy but in multiplayer it only shows on the screen who shoot
the bullet, on the other client nothing happens. I tried to fix it with
check if it is me. Still not working ):
i have the same problem she said we should use shared string
but i dont know how have you figured it out.
No but i have an idea
same
what is the idea please share
doesnt work sadl
Hey there! TeamFusion here, I've been wanting to make a multiplayer game but this has been stopping me. How do I make things like this, if both players are connect and 1 player pressed the button to open the door the door openes for that player but the other one stays close with the button not pressed. How do i fix this? I've tried everything that i could. The blue character is the working one but look at the red screen on the right the platform ddidnt move at all
Why does "request server information" not work
Maybe it's "Request scene information"?
It's working fine.
Yeah scene sry , this Stores the Players in each scene and If I Store this in a Text it only Shows 0
Could you please post a screenshot of the event you created? This will allow me to give you appropriate advice.
Here you are (:The Text is only to Test what number the variable is, but the Text and the variable only Shows 0
Maybe you are using a version older than version 0.0.9? I remembered that there was a problem with older versions of "Request scene information".
https://pandako.itch.io/ome4gd/devlog/634597/v-009
If so, I recommend updating to the latest version.
The "Request scene information" action is asynchronous. You are updating the text before the data retrieval is complete.
Try moving subsequent actions into the same event.
can you make it work with 3d and add voice chat
3d already work
Don’t think voice chat will work in gdevelop or any online thing for a long time
How would i make it so that there is shared objects that do not have to be players for example : animals
i can change the server of the extension to my own server for hosting???
will there be a “Join room” system?
You could make one Your self perhabs
Pandako can you make a multiplayer extension for android I really think a lot of people need it including me
hey uhh is it possible to make a platformer with the smooth cam extension?
cuz for me the camera is kinda buggy and is conjoined with all players
just do the "check if me", invert it, and then action: "don't follow" with the camera extension.
the camera problem how I understand it is really easy to fix (:
I copied the code as shown in the your video but the player is always disconnected. Each additional game window I launch always only shows 1 player. In other words your extension doesn't work.
This issue has been reported as resolved.
https://pandako.itch.io/ome4gd/devlog/544229/v-007
Problem :
it seems like this doesn't directly support With three JS ( pandako's 3d extension).. any solutions on how to fix this?
( I'm using the experimental 3d box instead of sprites so it looks good)
See the second half of this video.
Does anybody know how to make a Amogus chat like system? (I'm trying to make a Miiverse thing.) Thanks lol.
Best way I could think of is shared strings, I mean, it's the only way, really. If he adds sync object, you could put on a synced text object. But it's also hard because of a character limit, AND only one shared string. Here's an idea: (kind of hard, though). If you can sync the object's animation, maybe make it so there is an animation for each letter? (e.g. a, b, c), and then changes through them really fast, adding each animated character to a string. Hard tho.
Thanks! This might help a lot!
I have an idea on how to do that. but you have to have the latest type of ome extension
Hey bro thanks! But I think I’m good now :)
Hey i am also working on a game can you help
me with a problem
Hey buddy! Are you trying to make a chat system? Because the thing is I gave up on trying to figure the chat system out like a year ago so I still don’t know. :b sorry man wish I could help
Just a silly request! But I think there should be a multiplayer object. One that won't duplicate when a player connects but still shares the exact position (and etc.) to each individual, similar to a player but not exactly entirely. Like say if a Minecraft clone were being made. A block destroyed on a player's screen should show on the other player's screen that it is missing or destroyed, right? That would make the creation of an online multiplayer a little easier to create. Anyway, great job on the extension! I believe it works quite wonderfully! Keep up the good work! :D
Exactly. Please, Pandako!
Hey, I made a game with your plugin. Thank you very much. If you want, you can use it as a demonstration of your plugin
https://kazuki-takahiro.itch.io/the-legend-of-fera
Could you make it possible to set your own server?
Would be epic, too
yeah it actually is and it is pretty eazy, it can be done under 2 mins.
Hi PANDAKO! I'm trying to use this to make my own teamwork-based platformer, but open doors and such cant really sync easily. Do you think you could add a "Sync object" behavior for tiled sprites, sprites, and panel sprites? It would be like online player, but not for a player. That would make it a lot easier to make this large project. Thanks!
i cannot get more than one bullet in my scene, i need help, someone tell me how to make more than one player able to fire bullets that show up on both ends?
It would be pretty cool to make a platformer example.
like the update tho👍
i made a platformer, but the position updates make it less fun
edit: with the new update, it looks less janky, let me know if you want the project files
https://gd.games/imnotdream/fun-game
try it out, though ive only played it with my brother and a random person
Hey, yeah, I'm also interested in this, could you share the files on Itch please?
here are the project files, id appreciate it if you gave me credit, but its not necessary.
Thank you!
Nice Update!
and maybe add the ability to have faster updates
you should add the ability to share whether or not the object has been flipped horazontally or vertically
never mind, you did in 0.0.5
It worked for me every time, after I followed the tutorial. It still needs a lot of work to function outside of Turn Based, but it does wonders fixing the "Match Making Problem" that us non experienced progamers have using the normal p2p.
it does that sometimes
Hi PANDAKO!
Will I be notified about the server status via email?
Thank you!
so how does the "no multiple of same objects, use shared string" work
I have the same problem
Also pandako when trying to make an online shooter game like you did how do we set the shooting program can you send me a picture of how you did it in that video please.