Collaborative Project Editing

Hello everyone! I have come from the community version of the forums! I have an idea for the future of godot that i would like some feedback on before i propose the idea to the proposals repo in github.

My idea is that for some later version of godot, like godot 5, is a collaborative project editing feature. I am taking inspiration from Roblox’s team building feature and would really want to see and use a collaborative feature like Roblox’s in Roblox Studio.

Please feel free to give some feedback and post if you would like to see this feature someday for the future of making games and other things with partners.

1 Like

I’m not sure what that is, could you give a brief summary of the objective.

1 Like

I am sorry for the lack of information. In Roblox Studio, code can be edited live by multiple different people. You can also move things around in the game in live time. Basically, you can move objects around in the viewport while other people do the same and multiple people are coding, all in one project.

Sounds like a nightmare, especially for any kind of VCS.

What do you mean by that?

I think it is cool, I had lots of fun with shared programming with a Microsoft extension in VS Code. There is definitely some syncing complexity to overcome. And I wonder if it can extend into the editor UI and scene state as well.

At least for Godot it has a code server available so the door is open for this feature.

2 Likes

This would be a great addition to godot in any future major updates like godot 5.

With gd extension, you could make it a plugin yourself, or is the intention to have the Godot organization implement it?

My intention is that Godot implements it so anyone can use it and they won’t have to download a plugin to use it.

2 Likes

@Exerion I agree, although I would say many users of Godot don’t use version control. I could see this as a game jam system to make quick and dirty projects.

You could take snapshots of the host every now and then or whichever mechanic used to send modifications could do micro commits to a tree. But the snapshot idea would probably be easier to handle conflicts. Although the commit history would make little sense.

You would just verbally say to everyone “stop making changes I’m going to save our progress.”

1 Like

Godot has features for multiplayer, so wouldn’t it be possible to make Godot Engine be like a multiplayer game?

Potentially yes, they say Godot editor is just built using the Godot engine. There will be some effort on this for sure, just depends on how much is it worth.

There is still lots of complexity, as well a security concerns to iron out. As well as the network topology and how client conflicts are rectified. And I don’t have a personal desire myself to continue this thought experiment.

Since the Godot project is open source, I think you would get more mileage by creating a plugin or modify the engine directly yourself and offer it up to Godot to integrate.

They have plenty on there hands ATM. And there is sort of a 3rd party offering already, called version control system VCS (look up “git” and understand the basis for platforms like GitHub ). Its just a non-real time sharing system. It will be a pretty hard sell if you can’t find a stakeholder who are passionate about it. A proof of concept at the least would be your best bet.

This sounds fun, and very useful for courses or remote workshops! I don’t think it should be necessarily built-in in Godot (especially because lots of people get upset when Godot performs any kind of internet connection) but as an addon, with its development funded by some special education funding line, it’d be really nice. I don’t think that Godot itself should spend its own funding on this.

It would be very cool to see a proof of concept though! And i think it would also help creating a better Godot API if someone tried to prototype this in gdscript.

1 Like

this also fixes that a team always has to wait for pushes since they are LIVE updates… if i have time i could experiment on a plugin. probably even with gdscript only because yeah even the editor is made with the engine’s nodes

1 Like

That is what i mean. it would make it so much easier for teams. also thanks for the discord rpc btw.

would love to see something like this implemented in-engine. I’ve heard of similar things implemented via plugins but they never turned out fully functional

would be especially beneficial for game jams & small teams

Apart from this being a nightmare for any serious collaborative development, this also implies to “inject” networking code everywhere in the engine and editor increasing the complexity by several orders of magnitude.

But if you have a clear proposal (with understanding of networking and pros and cons of this kind of approaches) you can open it.
And even better if you can actually implement that.

On GodotCon 2023 there was a talk about such a project, called “The Mirror”. You can find a video of that talk in the official Godot Youtube-channel.