My dog died

HI guys ,I have had some pc issues lately, and this morning my game project which have spent quite some time on, got corrupted and is unrecoverable .Being one man team it was quite a bitter experience. So I ask this question


What precautions or methods do you use to protect yourself losing your work ?



Comments

  • edited
    Oh man. That's awful. I feel your pain.

    These days, even when I'm alone on a project, I use bitbucket for version control. (I use TortoiseHg for a mercurial repository, but there's a few equally good alternatives).

    I find version control useful even on my own, like if I want to use some code from an old prototype, but don't have it on my harddrive, and the ability to revert changes is occasionally a massive help.

    But mostly, storing my project files in the cloud lets me sleep at night.

    So sorry that you lost your work.
  • edited
    @EvanGreenwood That is a damn fine point, I'm going to make an effort to get my stuff up into the cloud into GIT. Like today.

    @watson So sorry, that's a terrible thing :(
  • The way we do it is we hire a VPS server from GridHost with their cheapest R99pm package. (altho upgraded for more space recently)
    https://gridhost.co.za/vps-hosting/

    Then we installed gogs onto it which was not too difficult but not very easy either. Then we use SourceTree to do all the git commands via a GUI which works VERY easy once you get to know how it works.

    How we did it before was to create a dropbox account and then everytime we made changes we would copy it onto the shared folder on dropbox. Not the best solution for team projects but still works fine to have your code on the cloud for free :)
  • My 2c: get into the habit of creating a new repo when you start a new project. Bitbuket is great, storing private repos is awesome. I just did a quick count and have 40 repos just for my personal account and about 70 for Clockwork Acorn. Every little prototype is in its own repo. It doesn't have to be restricted to games either; I have a repo for my CV, my settings files (editors, version control, SSH, ...), slides for my talks, some papers I wrote, websites, contracts, ...

    Bitbucket also lets you choose between Mercurial and Git, which is handy. Personally I prefer Mercurial, although I also use Git for some projects for reasons. Just use what you think will work best for you, you can always learn to use the other one later if need be or even transfer existing repos over to the other one and retain history.

    So yeah, version control is terrific, use it, and sorry you had to learn the hard way about backups, I've been there too!
    Thanked by 2AngryMoose ryan20fun
  • Last year I also lost work from 2012 downwards. This is really painful. I recommend 2 separate external drives at least 3 days a week. Chances are that when you lose one hard drive, you still have 2 to recover work from unless you get hit by tsunami or something. Also use git and cloud.
  • I've always found the bitbucket interface to be confusing and horrible. Gitlab has free private repositories and a much nicer interface.
    But overall I still like GitHub the most (however it isn't free).
  • @Tuism check out Bitbucket, they have a free project option with storage limitations, but you most likely won't reach them.
    There is also GitLab.

    Using Git is a useful programming skill. Preventing data loss, not only for an entire project but also the ability to not lose a previous change, or let a breaking change to your game be easily reversed.

    @watson sorry to hear about your project loss.
  • 100% on what everyone's saying above about adding your projects to off-site source control.

    There can, however, be stuff outside of a project that doesn't fit source control, and you need a backup solution for that. Portable hard drives are IMO NOT a reliable backup solution (I've learned this the hard way), at least not on their own. You definitely want an offsite backup solution, be it a cloud solution like GDrive or Dropbox, or something that syncs your files to a machine somewhere else. In the past, I would have recommended Crashplan, but they've discontinued their home solution and I'm still looking for an alternative :/
  • @mattbennic I use BackBlaze at home, and we've recently started using their B2 service here at work. A couple of UX niggles, but haven't had any issues yet.
  • @Thelangfordian I do already have it all set up already, I use Sourcetree, and I do have a Bitbucket account..... So actually, this whole thing confuses me a bit, Sourcetree is the local client app, that uses a Bitbucket account, and stores things using the GIT system, is that right? So I'm hosting my files remotely with Bitbucket, and not GIT, yeah?

    Anyway yes I've got repos of the latest stuff I'm working on. In fact I should just toss everything up.
  • @Tuism
    Think of it this way.
    GIT is the system that incrementally saves versions of your project, and it "remembers" the history, or what changed each step.
    SourceTree is a graphical program to manage your GIT version controlled project, so that you don't need to type out the commands to commit, and push, pull, etc. to the repository.
    Bitbucket is the online/cloud platform that hosts a repository for you that acts as GIT remote storage (kind of), but bitbucket also gives you a web interface with a lot of additional features.

    GIT is a distributed system, so no specific "node" is supposed to be the server. But we do usually create an origin (Bitbucket in this case). But it's main benefit is having multiple computers point to the same project, and be able to see what is changing.

    It sounds to me like I should maybe give a primer on GIT and version control at a Meetup?

    Anyway, in short:
    SourceTree - GUI for managing project version control
    GIT - The Version Control "program"
    Bitbucket - Your version controlled cloud storage of your project
  • I'd recommend starting with the command line when using git and learning git's commands instead of using SourceTree. SourceTree can be overwhelming to start with. Just my 2 cents.
  • @thelangfordian thanks for the detailed answer, I think that's good enough for most people's understanding :)
  • roguecode said:
    I've always found the bitbucket interface to be confusing and horrible. Gitlab has free private repositories and a much nicer interface.
    But overall I still like GitHub the most (however it isn't free).
    I was using GitLab before and it was awesome. Only issue with it was that it was very memory intensive so wasn't working well on systems with 1gb of memory. The Gogs works almost exactly the same (if not better) and runs on much less memory and according to them it can run on a Rassbery Pi.
  • Thanks for the suggestion @davidhecker, their pricing is really good.

    What I liked about Crashplan wasn't the cloud backup, but the simple peer-to-peer backup. Since I administer family machines, I could have multiple machines (at different locations) backing up to each other. And the initial backup was super simple (and low bandwidth) since it was possible to seed a backup from an external drive. There are similar solutions, but they tend to be more fiddly. Sorting out a replacement is one of the goals for this coming December break ;)
  • edited
    Hi guys thank you for the all the responses and sympathies . I feel like should have mentioned that I use UE4 Blueprints. nevertheless the information has been very helpful, I will look into a cloud solution, one where I can store all the extras like the artwork and notes. It seems to be the sure way ......thanks

    Ps I am going to do some art work fo awhile , and get back to the game next year , there is no jump loop, and its kinda of lame but I was digging it ,if you would to see "Red" you can check my Instagram https://www.instagram.com/kreativelogik_gw/


  • GIT is fine for photo, video, and other assets, it just makes the project large, and you can't see the diff between commits.

    A trick I have seen for keeping the GIT repos a little more managed is to place the assets in a separate repo (or multiple repos) - (as a submodule to the main project), so they can change independently to the main project.

    There is also git-media that helps exclude large assets and store them where you prefer.

    There are also other options like Alienbrain or Boar (and some others) but your mileage may vary.

    Hope that helps :)
    Thanked by 1watson
  • UE4 (since you mention you're using that) supposedly supports Perforce and SVN in the editor by default. And as far as I know, SVN is free (?), and Perforce is free if your team has less than 20 (?) users. I believe it just means you can check out, submit and revert files from the editor itself, which may be convenient depending on how you work.

    (I believe that if you're checking in your project/source files outside of the editor, you can use whatever you want to -- and I'm quite fond of both Git and Mercurial.)
    Thanked by 1watson
  • I didn't know exactly what Perforce and SVN was about , I am still busy considering all the options from this discussion ,but I will definitely check it out ....thank you
  • edited
    So, I'll start off by saying that I work for Microsoft so this may be very biased, but I really like Visual Studio Online (VSO). I have a work account, so its kinda hard to see what is free and what isn't, but I do know you get unlimited free GIT repo's for free.

    The big win for me is that you can create different projects within your account. Each project has:
    <ul>
    <li>The ability to have multiple GIT repos (Really useful if you want different ones for art, or if you are making services)</li>
    <li>Its own build and release jobs (I think you have to pay for the server time for these)</li>
    <li>Its own task and bug board for tracking and planning</li>
    </ul>

    It also has a ton of free tooling around making graphs and stuff about your progress and build successes and stuff like that, but as you are a one man team I think that would be a little less important.

    We use UE4 at work and have opted to use Perforce. The main reason we opted for Perforce is that it is NOT decentralised, and people can lock out files. This is important because a lot of UE's files are binary files which cant be merged, so we do this to avoid conflicts.

    As for a GIT GUI, I personally use GitKraken. If used non-commercially its free, and if you are new to source control they have some great tutorial videos to get you up to speed.

    Ultimately, I don't think it matters what source control you use, but every developer should be using it. There are so many free options out there now that there really isn't an excuse not to.

    EDIT: I dont know how to make bullet lists :P
    Thanked by 2watson critic
  • So to add on what @CiNiMoD said I also use Visual Studio Online's git account (and I DON'T work for Microsoft :D). The problem with Microsoft's services is they keep changing the names of things so you need to sort out the nice things from the crazy things. What you want is:

    https://www.visualstudio.com/team-services/pricing/

    Team services for a team of up to 5 people is totally free, integrates with visual studio beautifully and gives you unlimited private repos - So that's nice.

    If you aren't already used to using source control then Git command line can eat a bag of dicks. Just a personal opinion mind you but I have actually had to many of my junior developers just not check in code (which was in one or two instances lost, but most of the time just a frustration because it is not there when one of the other team members look for it) simply because git really can be a pain - the learning curve on the command line without something to hold your hand can be really steep. If you have the time to look through a couple of tutorials and manage to get a workflow that works for you it is great, but if you have never done it before maybe get someone to take you through it at one of the community nights.
    Capture.PNG
    471 x 730 - 31K
    Thanked by 1watson
  • I also use the Microsoft Team Services, you get free private repos and it's integrated into Visual Studio, everything I make goes in there.
    Thanked by 1watson
  • There's a lot of advice flying around based on people personal preferences - but I can only imagine being overwhelmed with trying to make sense of them all. Right now I'm moving a 18 person team from perforce to git. They all have their differences, pros and cons.

    1. Putting your projects in source control is a really good idea.
    Git
    Mercurial
    SVN
    Perforce

    Perforce and SVN are kinda old school. But they have a better track record with large binary files. Git and Mercurial are the new kids which are "distributed". This increases the learning curve, but ups the utility. Perforce has crazy expensive licence fees so it makes it a non starter. Personally I'd choose git. It has the largest user base which means you're more likely to find help for your problems, and it has a thriving ecosystem of tools to support it. But, as you're using Unreal, you need to configure LFS (large file storage) so that binary files are properly tracked to keep the repository small. These things are not trivial and part of the learning curve. As you can see mercurial has some advocates here, it would be my second runner up. I've never used it professionally so I can't speak for its pitfalls but I'm sure they exist.


    2. Host it online, off site
    Bitbucket (Mercurial or git. 1GB storage)
    Gitlab (free + 10 gigs storage)
    Github
    Visaul studio online (taken from above)

    There are a thousand options here, but the most robust and free ones are based on the Git (and for bitbucket mercurial too) ecosystem. I would really advise you to not try set up your own server - it's a lot of overhead for the first time you are using version control. Bitbucket is free. it works. Use it.

    The problems you will run into though is that it only provides you 1GB for you repo, with extra space purchasable for your binary files. I have no idea how this maps to unreal, and what sort of size an empty project starts out at. Gitlab offers you a bit a more space but you can't upgrade it if you run out. Without knowing what your project looks like I would recommend bitbucket.

    3. Your GUI client
    SmartGit (git + mercurial)
    Sourcetree (git + mercurial)
    The command line
    Git kraken
    Tower
    etc etc

    This is how you check your files into version control. SmartGit has an evaluation licence and is my favourite, but source tree will work too - however I find it sometimes suffers performance slow downs and odd glitches. I use the command line too, though I'd call it puritanical to advise a beginner only uses the command line. A GUI front end gives you a lot of information and context that you otherwise need to keep in your head when using the command line - which just seems to be a cruel thing to inflict on someone who doesn't know their way around yet. Git has steep learning curve and you will probably do many things wrong, but because it has a vibrant user base you can almost always find an internet post explaining how to get out of your situation. I can't speak for the mercurial ecosystem.

    Working in this way, making commits and pushing the offsite repository, means I'm never likely to lose more than a few days work. However, you still need to back up source assets and other things related to the project. For this I tend to just use a dropbox folder, which I pay for extra storage space for. This is quite manual though. There are other solutions as others have mentioned above.
  • Just a note about space, our VALA repo on GitHub is something like 12GB now and seems fine. But you need to remember that only files smaller than 100MB can be committed else your push will fail.
    Thanked by 1watson
  • I had to reformat my PC and have had some time to research the suggestions in this thread, @TheFuntastic yes the learning curves for some of these solutions are steep and time consuming .Since I work on these projects between my Family and day job , basically in my spare time , I have decided to keep it simple by using gdrive and dropbox for now. At least till I reach a level that that requires a better back up solution ( then I will comeback here ) , I am also breaking up the project in smaller separate pieces (anims ,static meshes etc) and will import them to the main folder once they have been tested and optimized , That way I can the main project light and small as possible . Once again thank you ALL for the GREAT IN DEPTH ADVICE and concern.
    ... much appreciated

    Happy New Year MGSA
Sign In or Register to comment.