a question for Ashley! - C2 multidevelopment

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

  • Well, what you're proposing is exactly to implement a svn inside C2, and in my opinion this is a little "outside the box"...

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

  • 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

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

  • Agree, it is difficult even in general text-edit environment. That why it need resolve conflict when merging code.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • 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.

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

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

  • Yeah, modularity would be nice

  • Yeah, modularity - lol.

    Ashley,

    I Agree Ashley, SVN is the best option right now. And I hear you...

    Easy for us to offer up suggestions etc, but in the end you know your baby, and what is best... and we don't think about the back end, and the issues that may/will arise - we only see the front, and usability.

    But if possible modularity would be great, but I understand your viewpoint... and support any/all decisions you make.

  • Agree, modularity, import capx will make capx template more useful.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)