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

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.

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.

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.

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.

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.

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.

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.

Click to expand...

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.