Is it possible for multiple people to work on the same project/map simultaneously?

Discussion in 'Mapping Questions & Discussion' started by Orangepumpkin7, Dec 19, 2017.

  1. Orangepumpkin7

    Orangepumpkin7 L1: Registered

    Messages:
    12
    Positive Ratings:
    0
    How do/can people both work on the same map in hammer? Sort of like a Google Document where both people can work on it at the same time. Just wondering if it is possible, if so I would love to know how, seeing as I haven't found anything online for it.
     
  2. Faux Rhinoceros

    aa Faux Rhinoceros Also known as Dr. Element

    Messages:
    1,470
    Positive Ratings:
    1,363
    No practical ways. I did try to do something with instances and a shared cloud at some point, but there was no way to get real time updates.
     
  3. Orangepumpkin7

    Orangepumpkin7 L1: Registered

    Messages:
    12
    Positive Ratings:
    0
    Thanks, I wonder how or if Valve does it.
     
  4. Vel0city

    aa Vel0city personal pick-pocketing parrot

    Messages:
    1,880
    Positive Ratings:
    1,487
    Exactol, FubarFX and I did a collaborative effort back in like, 2015 or something? We made pd_snowville, a PD version of Sawmill with some stuff added to it, like extra routes and buildings to accommodate the game mode change. What we did is setup a Github folder where we worked in and then divided the map up into instances so that each person had his own section of the map to play in as you couldn't change the same file at once (meaning that if I changed a thing in my section and one of my colleagues did that too in my section only one change could be made final as we now had two different versions of the same section). We then used Slack to get the communication part done and we did actually make the map, and the workflow worked quite well (other than Hammer being a massive pain in the rear, like showing stuff unhidden but have them hidden in code anyway resulting in leaks left and right). I mean it was nowhere near streamlined but it worked.

    Remember, Hammer is old as balls, as is the entire Source engine. It was never designed for collaborative mapping. Maybe in the next iteration of Hammer something like that is build in, who knows. Source 2 is still as real as a narwhal at this point (aka we know it's there, we've seen some stuff of it but all in very limited numbers), but hey, you can always throw the suggestion to Valve.
     
  5. hutty

    aa hutty

    Messages:
    444
    Positive Ratings:
    345
    Well, its all 1s and 0s so anythings possible if you delve deep enough into the dark realms of software development. Although building your own hammer would probably take less effort.

    If you really wanted, you could use a service like paperspace that hosts a windows computer in the cloud and run hammer on that. Then you can both work on the map without needing to send files back and forth. Although you wont be able to do it simultaneously like with google docs.

    Or one of you could stream their progress on an instance and you could overlay the stream over your work area with the viewports set to the same camera angles.
     
    Last edited: Dec 19, 2017
  6. Faux Rhinoceros

    aa Faux Rhinoceros Also known as Dr. Element

    Messages:
    1,470
    Positive Ratings:
    1,363
    One could maybe make a modified hammer that reads and writes to a google doc instead of a .vmf file.

    Biggest technical hurdle would be to make an efficient way for hammer to rapidly send, receive and visualize changes to the doc.
     
  7. Crowbar

    aa Crowbar perfektoberfest

    Messages:
    1,418
    Positive Ratings:
    1,140
    Thing is, it's faaar from worth it in the slightest to try and implement such a technical hassle. Collaborations don't suffer (much the opposite, I imagine!) when each person has their time alone, and for people who live in different time zones, have different day schedules, etc. the times aren't likely to overlap at all. Plus, I don't think mapping collaborations where both people do the same job (layout, detailing, things that there's only one of in the map, which excludes creation of assets) usually work out well.
     
  8. henke37

    aa henke37

    Messages:
    1,832
    Positive Ratings:
    420
    I was under the impression that Hammer supported doing diffs.
     
  9. Exactol

    aa Exactol Certified Hammer Hacker

    Messages:
    393
    Positive Ratings:
    451
    Theoretically, if you split up the map into multiple sections with instances or in a manifest, you could create a real time map if those instances were uploaded/downloaded to everyone's computer every time they were saved. It would have some limitations such as one person being able to work on a instance at a time though. The stock Hammer cant do this because the instances/manifests don't update if one of the instances was changed from an outside source and not from inside Hammer. You would need a modified Hammer which could call whatever function that reloads instances. I do plan to try to implement this in the Hammer Improvement Project, but I would need to try and reverse engineer Hammer and find the address of the function that reloads stuff.
     
  10. hutty

    aa hutty

    Messages:
    444
    Positive Ratings:
    345
    That would be cool, idk how difficult it would be to pull off though. But I would say its worth the attempt.
     
  11. fubarFX

    aa fubarFX The "raw" in "nodraw"

    Messages:
    1,597
    Positive Ratings:
    1,677
    All you really want to have is a "version control" software to keep track of changes and perform file syncs. To benefit the most from version control softwares, it's highly recommended to chunk your map into multiple vmfs. That's all there is to it.

    Despite what it may look, hammer is actually one of the best level editors for collaborative work, it's just that our community is not used to the workflow and concepts that collaboration involves. It's the one aspect I would like to improve in the community but it's very difficult to do. Collaboration on large projects is a separate skill from mapping after all.

    I'd love love love to have that. it is definitely possible, and I'm almost certain valve already does it in-house. I swear the functionality is in there somewhere.

    Other possibilities to explore: hammer clearly has a perforce integration (a version control software) but it is unknown how we're supposed to configure that.

    tl;dr hammer has a ton of potential for collaboration, whatever your project is, it can definitely be done.