I want to set up something of a private cloud for my various emulators and their save games. This way, if I want to pick up a game I was playing on the couch in the office when I'm up there, or on my laptop when I'm on the go, I can.

I'm not sure about the best way to architect this though. I suppose Dropbox would probably be the easiest solution, but I almost want a little better manual version control in there - like an option to use a "get latest" button as if I was working in multiple branches of code.

Ideally, the save files would all live on my humungous 20TB home NAS server running Server 2012, but to greatly improve speed (and reliability), the client PC's/Macs, etc, would also have local copies on their SSDs.

I'm a half a programmer... I've done some Python but something tells me this is better done in C/C++ or C#. Either way, I think it would be a good little project to learn with. Or has this been done before - keep in mind I'm looking for an integrated solution, not a 10-step hacked together process (I can do that already ) - but I don't want to reinvent the wheel if it's not necessary.

I've got a feeling coding this up would require moving some files around, and writing some kind of cross-platform front end - maybe a little web app in .NET sitting on IIS to save the trouble of writing GUIs for PC, Mac, and Linux... probably a little backend database - and why not go for broke and use SQL Server 2012? Gotta do something with that MSDN account.

Those are just my initial thoughts though. I was hoping to get a little feedback and maybe some direction. Once I get the big picture in place, I can start doing the piece by piece process of coding it up.