Feature suggestion: Merge projects

  • Hi guys,

    What do you think about the feature suggestion in the subject?

  • It would be great. Been asked for before, but I fear it is more complicated to do than you would think. You can copy paste projects together, but that too has pitfalls.

  • One of the problems of copy/pasting is that it's not possible to copy/paste families.

  • If you ever suggest a feature, it's best to explain in detail precisely what you want it to do and how you think it should work. For example, presumably 'merge projects' doesn't work by magic, and would require something in the UI somewhere. What were you thinking of specifically?

  • Is this feature request to enable multiple people to work on a single C2 project? Sounds potentially useful; we used C2 for the latest Ludum Dare and it was basically impossible to work on a single master file at the same time, and similarly difficult to maintain 2 separate projects and merge them. Perhaps what we really needed was source control though.

  • +1, this would allow for multiple people to work easily on the same game.

  • SecondDimension have you looked at version control like Git, with branching and merging? This should work quite well with the XML source.

  • thehen, well I was looking into Tortoise SVN or something similar. Git looks like a decent alternative though, so I'll definitely check that out, thanks

    PS: I say I will check it out, actually the brains of the team AdamD will check it out. Then he can explain it to me using short words and pictures drawn in crayon.

    PPS: Sorry for hijacking.

  • Oh, I'll try to specify it. Actually it is pretty simple:

    E.g I have multiple .capx files which I would like to join together into a new .capx (with all objects, behaviours, families, variables, events, event sheets, layouts).

    There should be an interface, where I could choose what objects/variables should be merged into the new .capx (e.g. select all or check boxes) and from what source .capx.

    Actually this functionality is already available to some extend by copy/pasting, but as I said before you can't copy paste families.

  • Actually importing a .capx file into an existing project doesn't look that hard. If you rename a .capx file to .zip you'll see it's just a regular zip file. There's a .uistate file that describes what makes up the project, a folder called Event sheets with 2 files per event sheet, a folder called Layouts (again with 2 files per layout). All of the files are in xml/text format so easy to parse.

    I've only looked at a few simple files so importing something bigger might be more challenging and there's the issue of collisions (names, etc.) and following the rules for a project (for example it seems you can only have one instance of a function object).

    The problem is with third party developers I couldn't write a plugin in javascript to do this. First off you don't have access to the file system and I don't know of any zip functionality in javascript. While I'm fairly confident I could write an importer as a stand-alone program it would be nice to hook into the existing system. What would be nice is a plugin model API that I could write a DLL or something and have it call it from a menu.

    In any case, I could do a stand-alone tool if anyone were interested (and the Scirra guys didn't object).

  • bsimser I believe a 3rd party merge utility would certainly be appreciated.

  • bsimser I believe a 3rd party merge utility would certainly be appreciated.

    I have some spare cycles as I'm trying to put together some games (and trying to get things in for the Windows 8 competition).

    I built a quick and dirty reader for the .uistate and the c2project xml file (.caproj) and can merge basic objects right now (sprites with animations, mouse, platform). For an hour or so of work it's crude but works. I think I would need to build my own classes for each plugin and behavior type.

    I'll plug away on this for a couple of days and put the code up on github and we'll see where it goes from there.

    Thanks for the inspiration!

  • That's very cool of you.

  • I would point out it should not be necessary to merge projects if you work with source control tools like SVN. These are free, professional grade tools that merge as you work, as well as providing a host of really unmissable features (rollback, revision logs, diffs etc.) You really shouldn't be working on two separate .capx files and then try to merge them later; source control is vastly superior and the feature set enormously better than anything we're likely to ever add to Construct 2 itself.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • While Source Control is good for large projects and multiple people working on one, I think the flexibility you would get with a Modular Object+EventSheet export/import function would be far more useful in creating behavior example/templates.

    I see it essentially being a mini-capx that is limited and can't be opened without the import command.

    <font size="1">edit: typos oh god</font>

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