Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So I know it might not be that related to game dev, but I'm now starting a project with friends and we want to code. Thing is, we are not living close, and when several programmers write different classes or parts of code, syncing is a problem. Skype is not fast enough, it actually makes it worse (you need to pack and unpack .zip solution file), nor email.

Any one got a software that can connect 2 (or more) computers, and when we write code it will show up (simultaneously) on one of them/both?

I don't care much for lags, if we need to wait few secs till it shows up, it's fine.

I thought about TeamViewer, but as far as I remember only one can write/do an action at a time.


share|improve this question

closed as off topic by Josh Petrie, Anko, jhocking, Maik Semder, msell May 18 '13 at 18:00

Questions on Game Development Stack Exchange are expected to relate to game development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

That's a good question! When I code an IDE some time, I'll implement that. – danijar May 18 '13 at 9:50
That's good mate! but right now, I need something ASAP so the game dev won't delay. – Jordan May 18 '13 at 10:11
Do you know what a versioning system is? Because that is the standard way to solve the problem you claim you have, and I think it's odd that you don't explain why you haven't tried that. It doesn't exactly let you see the other persons edits in real time, but it makes solving conflicts that come from editing the same file relatively easy to solve. – Martin Epsz May 18 '13 at 13:23
<sarcasm>Use an FTP server and write the game in PHP</sarcasm> – TC1 May 18 '13 at 13:40
I don't see what this has to do with game development specifically; voted to close as off-topic. – Josh Petrie May 18 '13 at 15:18
up vote 4 down vote accepted

If you are using Visual Studio, you can download VS Anywhere. You can have many person typing codes simultaneously, and it doesn't lag much. Though it's kinda buggy sometimes. I'm using it with my friends all the time! Here's the link , enjoy :)

share|improve this answer
That is what I found out eventually. Thanks! – Jordan May 18 '13 at 19:19
No problems, have fun :) – Xeon May 19 '13 at 4:52

This is really hard to pull off, because real concurrent editing (on the same files) can be rather tricky.

I'd focus on some source code versioning system like SVN, Mercurial, or Git.

If you're using Visual Studio, the best option would be using their Team Foundation Server or - with the addon being in beta right now - Git.

Setting up a Git repository isn't that hard (you can also use third party hosting like the on provided by GitHub and others).

You'll then just have to install the Visual Studio Tools for Git to interact with your repository, sync code, etc.

This will require some setup and getting used to, but it should help you a lot merging changes and conflicts (i.e. when someone is editing the same files at the same time).

If you want fully automated syncing, you should try Dropbox, Cubby, or BitTorrent's Sync. These work more automated, but will give you trouble if both of you edit something at the same time.

share|improve this answer
He asks about realtime synchronization, not versioning solutions. Moreover I don't think that cloud space services merge files if they were modified on two computers. – danijar May 18 '13 at 9:55
Yes, exactly what I tried to say. Don't know any solution allowing real real time collaboration within an IDE. SparkleShare uses Git as its backend, although I'm not sure how it handles conflicts (if at all). – Mario May 18 '13 at 10:35
Versioning is the correct solution to the problem, but there are some concurrent editing systems, such as SubEthaEdit for mac. – Jari Komppa May 18 '13 at 10:36
Interesting program. You should post that in an answer of your own even though I assume Jordan is looking for some Windows solution. – Mario May 18 '13 at 10:42
I looked up that SubEthaEdit. It looks great, but I need one for Windows. As far as I see, SparkleShare does basically like dropbox, right? let's say me and a friend edit a code, if one saves the other can't see it(?). – Jordan May 18 '13 at 10:55

There is a great number of text editors which allow several users to simultaneously edit the text. "Simultaneously" in this case means that when you open a document and someone else is/are editing it, you see those someone else's cursors, and what changes they make -- in real time. Obviously, you can make your own changes too, and they will be broadcast to other users.

This is called a Collaborative real-time editor (Wikipedia article provides quite a comprehensive list of those).

share|improve this answer
I took a look. What do you say about VSanywhere? is it good? when I received the email from them, gmail filtered it because of phishing reports about the project. – Jordan May 18 '13 at 12:06
I wish I could pick 2 answers, because your comment helped me find VSAnywhere (which is good, I was stupid earlier), but the guy on the bottom did mention it... THANKS A LOT! – Jordan May 18 '13 at 19:20

You're looking for a source control solution. These are a common part of the industry. Large Open Source projects often have dozens (and in a few cases hundreds or thousands) of individual developers spread over the entire world.

Solutions like GitHub, BitBucket, CodePlex, SourceForge, and more offer these services for free (often only if you make your code publicly viewable, though). They allow you to "commit" changes and "push" them to a central server, then allowing the other developer(s) to "pull" those changes.

This is not instant. You don't usually want it to be. You want to be able to compile and run your changes against a known stable/functional base and then only sync up when you have completed a feature or fix, thereby ensuring that you aren't held back by a teammates incomplete changes or vice versa.

If you both edit the same file, you will have to "merge" your changes when syncing. Modern tools usually do a fairly good job of figuring this out automatically, though something you'll have to help it out and manually figure out how to merge some overlapping changes. Typically, just avoid doing this; there is usually little reason for two developers to be simultaneously working on the same feature or fix, even if sitting next to each other, much less when geographically separated. Your project likely has a number of different tasks which can be completed in parallel.

This is how multi-developer projects are handled in the corporate world, the Open Source world, and even most smooth private/small/school/hobbyist projects.

An additional advantage to a good source control system is that it maintains history, allowing you to back up to an older version if necessary, see who made which change, and so on.

If you really want instantaneous syncing, you might consider using DropBox. Your IDE will typically have some trouble if edits are made to the file, but again, just don't do that.

There are also some text editors (generally not full IDEs) that have networked text editing, or even some online editors. The experience will not be a good one.

share|improve this answer
+1 for mentioning that realtime synchronization would be painful. – msell May 18 '13 at 18:45
Thanks for the detailed answer, I found one that suits me well :) – Jordan May 18 '13 at 19:21

The normal answer to work on different files rather than trying to edit the same one. Anything big enough to involve multiple people will also involve multiple files.

share|improve this answer
+1 The problem is not how to simultaneously edit one file; the problem is trying to do so. – Seth Battin May 18 '13 at 15:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.