This extension is designed for beginners creating online games. If you want to build more advanced online games, consider using the existing multiplayer features or extensions (such as WebSocket Client, Firebase, or P2P).

⚠️ This extension is experimental and not really practical yet. Development might also stop at any time.
⚠️ This extension isn’t a good fit for action games that need precise synchronization.
⚠️ This extension won’t work if the server is down.
⚠️ The server might be restarted at any time without notice for development.
⚠️ Running your own server isn’t supported.
☕ I’d really appreciate your support to help keep this server running.

Buy Me a Coffee at ko-fi.com

🤔 How is this different from GDevelop’s official multiplayer?

This extension:

  • Has no limit on the number of players (more than 8 is possible).
  • Lets you choose which data to sync (so it’s clear what is being synchronized).
  • Uses a fixed communication interval of 0.1 seconds.
  • Allows you to save data on the server (SSV feature).

📖 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.

ℹ️ An object with the online player behavior can only exist in one place on the stage. For example, if you want to share bullets fired by a player, you must use a shared string.
(It’s more efficient to share the shot’s timing and angle once, rather than constantly sharing the bullet’s position.)
(This extension is not designed for exact synchronization.)

Deleting an object with the 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 pause, 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.

🌅 About Server Scene Variables

For each scene, you can store one array with up to 10 children on the server.

To use this feature, declare a scene variable named “SSV” as an array in the Variables Editor. SSV stands for Server Scene Variable. (Make sure to use uppercase letters.) The SSV array can contain up to 10 numeric children.

While connected to the server, the SSV is automatically updated. Do not modify its values directly.

SSV is preserved even if the server is restarted.

SSV can be used even in scenes where the "Online Player" behavior does not exist.

For more details on how to use it, check out the descriptions of the “Connect to variable server” action and the “Modify Server Variable” action.

🃏 About the Host

This feature makes it easy to manage the flow of the game.

The server always designates one player as the host. Usually, the player who has been connected the longest is chosen as the host.

For details on how to use it, see the “Host and SSV example”.

🚫 Limitations

This extension has the following limitations to protect shared servers:

  • Communication at 0.1 second intervals.
  • The shared string must be within 1000 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 (Old)
  • User name example
  • Host and SSV example

👾 Games created with this extension

Bomb Poi Poi

Colosseum of Thieves

🐛 Probably fixed.
This extension may not work on Android apps.

ℹ️ The fix was on the server side. Please make sure this extension works with your android app. 👍

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.

StatusIn development
CategoryTool
PlatformsHTML5
Rating
Rated 4.8 out of 5 stars
(4 total ratings)
AuthorPANDAKO
Made withGDevelop
TagsMultiplayer
Code licenseMIT License
Average sessionA few seconds
MultiplayerServer-based networked multiplayer
LinksKo-fi

Download

Download NowName your own price

Click download now to get access to the following files:

OnlineMultiplayer0.2.0.zip 10 kB
OnlineMultiplayerExtensionExample0.2.0.zip 1.1 MB
if you pay $5 USD or more

Development log

Comments

Log in with itch.io to leave a comment.

(-1)

хуйня

НЕТ, это имба

Hello PANDAKO, are there a way to keep track of all the players using ID, and using the ID to pick a random player ?

(1 edit)

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:

(-1)

If I need to remove the limitation for an mmo game, would it be possible to remove it? Communication at 0.1 second intervals

The answer to that question is no, there is no way to remove the 0.1 second limitation.

(-1)

Do you have to pay

bro is free

(-1)

Also pandaka how do i get the OME EXAMPLE All it gives me is the extension

(1 edit)

you have to pay money for the example but the actual extension is free

(-1)

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.

(+1)

No but i have an idea

(+1)

same

what is the idea please share

doesnt work sadl

(3 edits)

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.


(+1)

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

(+1)

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???

(+1)

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.

(1 edit) (+1)

This issue has been reported as resolved.
https://pandako.itch.io/ome4gd/devlog/544229/v-007

astasio
I updated the ISRG certificate and the error resolved. It was just a mac os update problem
(2 edits) (+1)

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)

Deleted 2 years ago

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.

(+1)

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.

(+1)

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

(+1)

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

(+1)

Exactly. Please, Pandako!

(+1)

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

Deleted post
(+1)

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!

(2 edits)

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?

Deleted post
(+1)

It would be pretty cool to make a platformer example.

like the update tho👍

(1 edit)

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

(+1)

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!

(+1)

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

Deleted 2 years ago
(2 edits) (+1)

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.

(+1)

it does that sometimes

Hi PANDAKO!

Will I be notified about the server status via email?

Thank you!

(+2)

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.