a question for Ashley! - C2 multidevelopment

Discussion and feedback on Construct 2

Post » Fri Sep 19, 2014 6:33 am

Hello! this question goes for ashley!

is there any possibility in the future that C2 will have a multidevelopment function that will let
more people to edit a game at the same time? i know you can use a svn but its very hard and rough and i think if C2 get this option it will be actually the best 2d platform to make games.

that was my question! thanks!


cheers.
Last edited by IJCT on Mon Sep 22, 2014 6:07 am, edited 2 times in total.
Image

Image
B
38
S
14
G
7
Posts: 408
Reputation: 8,338

Post » Fri Sep 19, 2014 7:18 am

Well, what you're proposing is exactly to implement a svn inside C2, and in my opinion this is a little "outside the box"...
I'm not a insane, my mother had me tested

I'm an engineer. To save time, just assume I'm never wrong
B
30
S
13
G
4
Posts: 141
Reputation: 4,832

Post » Fri Sep 19, 2014 12:25 pm

It's a very difficult problem and I'm not sure it would in practice work any better than SVN. Consider two people editing the same project in real-time who do the following:

1) User A adds "Player" sprite
2) User B adds an event referencing the new "Player" sprite
3) User A presses undo

You have three options to handle this:
- undo adding the "Player" sprite, and the event User B added disappears. User B may be left thinking "WTF?" since their work has suddenly vanished. Think of all the weird bugs that could happen with random bits of a project appearing and disappearing like this.
- undo the previous action only, so User A undoes the previous action by User B. This sucks because User A has no idea when they press undo what will actually be undone, since User B could do something just as User A is hovering over the undo button, and therefore change what is undone just before they undo it. Then user B also sees something they just did vanish unexplainably, which neither user intended.
- don't allow undo. This will make it far less convenient to use the editor since it's an essential feature.

I think it would be terribly confusing and awkward to use no matter what solution we pick to that type of problem, and it's really the tip of the iceberg, there are all sorts of complex things you can do to conflict with each other. Source control may be tricky to merge and such at times, but by restricting each user to a particular non-conflicting section of the project, it should be fine.
Scirra Founder
B
398
S
236
G
88
Posts: 24,433
Reputation: 194,635

Post » Fri Sep 19, 2014 1:26 pm

More options to handle the case:
- An error message pops up saying "the previous action can't be undone because actions XYZ depend on it". This makes sense since it would never show up in single-work mode (since actions are undone list-style). A dependency tracker for actions would also allow you to undo actions out of order, similar to the way photoshop does it.
- The object is deleted, but the event remains, with a "ghost" reference in place. The project can be saved but does not compile, a warning appears in some sort of notification area, and does not go away until this is resolved.
- Users don't actually edit in real time, instead changes are "merged" on each save, with a merge wizard informing the changes and asking for how to handle them.

Also, @IJCT, you might want to change the title of your post to "multideveloper" or "collaborative development", since "multiplayer development" means developing multiplayer games, which is not what you want at all
B
36
S
8
G
8
Posts: 532
Reputation: 6,903

Post » Mon Sep 22, 2014 6:03 am

@Fimbul, thanks i already change the title!

@Ashley just check google drive's documents (also there are others tons of programs who have a multidevelopment system), they have undo and they have a multidevelopment system! but i know what you are saying that there might be tons of bugs and all that stuff, but my question its

it will be possible for a future? its in C2 future' plan?
Image

Image
B
38
S
14
G
7
Posts: 408
Reputation: 8,338

Post » Mon Sep 22, 2014 6:36 am

Agree, it is difficult even in general text-edit environment. That why it need resolve conflict when merging code.
B
108
S
26
G
272
Posts: 4,472
Reputation: 152,279

Post » Mon Sep 22, 2014 7:19 am

IJCT wrote:@Ashley just check google drive's documents (also there are others tons of programs who have a multidevelopment system), they have undo and they have a multidevelopment system! but i know what you are saying that there might be tons of bugs and all that stuff, but my question its

it will be possible for a future? its in C2 future' plan?


Any software that offers multidevelopment is riddled with issues. If you want to multi develop, divide the project up into workable sections and have the team focus on those sections, then put those sections together when needed.

Ability to import projects into projects would be a better feature than multidevelopment features.
You think you can do these things, but you can't, Nemo!
Just keep reading.
Just keep learning.
B
65
S
16
G
9
Posts: 1,429
Reputation: 12,718

Post » Mon Sep 22, 2014 7:42 am

Construct 2 has much more complex dependencies than a document. Each part of a document is just text and formatting, and a conflict is obvious (either wrong text or wrong formatting). In Construct 2 you can have things like families, behaviors, family behaviors, and so on. Removing something like a family has a cascade of effects: several object types are affected; events relating to the family disappear; all references to the family behaviors must also be removed; and so on. If you press 'undo', all of this has to come back again. Just undo for a single user is a pretty complex problem to solve.

I'm not convinced any of the workarounds are very good: either you can't delete the object when you really intend to, and you first have to root out its dependencies and manually delete them which could be really time consuming, or you end up with ghost references everywhere without knowing why and you can't save or export the project until you clean everything up, which is a pain... and merging on save is like SVN :)

I think the feature is extraordinarily complicated to implement, and would not even be that practically useful. I think it's another case of a imagine-it-being-amazing-and-solving-everything feature request without taking in to account the practical likelihood that being able to collaborate in real-time simply allows you to contradict what someone else is doing simultaneously, and get in to a huge mess. I think you'd still have to learn to work on separate parts of the project at a time to avoid conflicts, and if you do that already with SVN, everything should merge smoothly. So no, this is not planned, I don't think it would ever work well enough to be worth dealing with the incredible implementation complexity, and you can already use source control solutions that work nearly as well with planning ahead. Instead I think it would help more to have other supporting features like modularity and as mentioned easier ways to merge existing projects.
Scirra Founder
B
398
S
236
G
88
Posts: 24,433
Reputation: 194,635

Post » Mon Sep 22, 2014 7:45 am

DUTOIT wrote:If you want to multi develop, divide the project up into workable sections and have the team focus on those sections, then put those sections together when needed.

*cough.. ..modularity... ...*cough...

Edit: Ashley ninjae'd the ninja... :(
B
28
S
8
G
4
Posts: 553
Reputation: 4,924

Post » Mon Sep 22, 2014 8:15 am

Yeah, modularity would be nice
B
15
S
3
G
3
Posts: 93
Reputation: 1,466

Next

Return to Construct 2 General

Who is online

Users browsing this forum: No registered users and 21 guests