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 ?
What precautions or methods do you use to protect yourself losing your work ?
Comments
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.
@watson So sorry, that's a terrible thing :(
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 :)
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!
But overall I still like GitHub the most (however it isn't free).
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.
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 :/
Anyway yes I've got repos of the latest stuff I'm working on. In fact I should just toss everything up.
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
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 ;)
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/
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 :)
(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.)
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
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.
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.
... much appreciated
Happy New Year MGSA