Start using version control!

:stuck_out_tongue: I dont know what you guys are doing that you always get corrupted files (saw many threads about that) -> I’m working with the ue4 for around 1 year now and I never got a crashed/corrupted/damaged file/project :slight_smile:

Thx for the nice post!:slight_smile:

Me too mate, it just happened, haha :smiley:

Was about to say the same thing, when my main project just went belly up for some unknown reason! Otherwise I have to agree, this is the first time it’s happened here since I started using the engine back in april.

Implemented some interface functions in my vehicle blueprint, compiled, saved, tested - everything in perfect working order. Closed the project, had a cup of tea, then went back to continue working, and the darn thing would just crash instantly when I tried to open the project again.

Luckily, I live as I learn, so it’s just a matter of rolling back to revision 106 and redo those functions. Up and running again in a matter of seconds, having lost just about one hour’s worth of work. That really should be zero!

But then again, it could have been months lost instead, without proper security measures.

Now I’ll have to see if this weirdness can be reproduced somehow…

I hear what OP is saying, but the issue is simple: it takes work. Quite a bit of VERY boring work. It will also cause you all kinds of hassles and when people request help with it (eg like here: https://forums.unrealengine/showthread.php?27327-Tutorial-Request-Perforce-basics ) and the reply is “go read the tutorial on their website” then I find it unlikely that people are going to jump to using it.

No argument there!

You can lead a horse to water, but you can’t force it to drink.

I can’t agree enough on the version control.
I think I’ve lost count the amount of time Perforce had saved me not just from broken/corrupted data, but accidental deletion of Blueprint or other mishap.
So definitely having Perforce or other Version control is a MUST!!! Even for Hobby Project XD
It does took me a day to figure out the connection, server etc-2 and connect to home computer through Comcast IP.
But when it finally worked, it worked like a dream and totally worth it :slight_smile:

I am not a fan of centralized version control systems anymore.

I prefer distributed version control system anytime, like GIT/Mercurial.

I use dropbox.

It is brilliant because if I lose my computer, I’ve still got all my files. Takes the stress out of life.

Also, I think it has a kind of version control in that you can undo changes etc.

Perforce everyday <3 Tortoise is nice too!

I can’t stand GIT, love the people that work there. They need to employ someone who has never used GIT before and only then will they realise how bloody hard to use it is for people who haven’t used it before. I’d love to use it because it seems super-powerful and has great online support, but the learning curve is just too steep.

Source Control isn’t just for Backup purposes though, it’s a core part of feature integration and stoof. I can integrate a feature one way, try and do something better, realise it’s NOT better and rollback. You also get branching and integrating etc.

Worth learning.

I understand that. Used to be in the same camp myself, as a long time VSS, CVS, SVN user with my main background in windows. But over the last couple of years I sort of accidentally became primarily an open source developer and had to become familiar with git. I think once you start actually using it you will never want to go back :). What seems hard in the beginning is extremely simple once you understand the basic principles. In actual practice I rarely have to do anything more complicated than

git checkout mybranch
git pull
git commit
git push

And the occasional

git merge myotherbranch

That’s about it. The power of the tool is actually in its simplicity, and the things it doesn’t try to do. It’s true that you can run into more complicated situations (submodules for example) and that the commands you have to enter in those cases can be intimidatingly complex, but really for me that’s been extremely rare, and pretty much always there is a solution well-documented within easy reach.

I used to not be a fan of git, but once you get your head around it, it’s immensely powerful. I enjoy P4 too, use both for different scenarios. If you want to use git, i’d check out SourceTree to better visualize what’s going on with git.

Git on its own is very unsuitable for game development as it is no good at storing binary files. If you’re using it for game development you absolutely have to look at using modules to store binary files such git-annex and more recently Git LFS (a much better implementation). They solve that problem and Git LFS being rolled out on GitHub in the coming months and is currently in public preview.

Perforce is the more tried and tested industry standard but once your company grows past 20 people it’s suddenly very expensive.

Yeah there are some challenges with larger assets, for sure, I don’t use git as much for gigantic projects, but it works fine for me with smaller games. I was raised on Perforce and still really dig it, git is really elegant and fairly lightweight, which I prefer at times.

I’ll definitely give it a go one day, gotta earn that Engine Contributor badge somehow :wink:

No really, I really wanna do loads of engine stuff

For the git users here (or those who want to use it): Unreal Engine creates lots of big binary files and this can be very very slow at some point. Because git compresses files.
See this link for how to tune the compression settings:
://stackoverflow/questions/12483910/fixing-up-a-git-repo-that-is-slowed-because-of-big-binary-files

I have it set to only 20 MB (yes, twenty) on my repository and check in times have improved significantly (of course, your network should be fast :slight_smile: ).

Thanks for the post OP. It’s really important to have a backup, especially version control.

While working with another engine, I had an issue when the whole level was deleted due to an error while saving file. I could’ve lost my job if it wasn’t for Version Control :slight_smile: I might’ve lost some progress, but it’s better than nothing.

Anyways. Version Control FTW!

I use version control at my job, but those files are, at maximum, 5-10 MB(php and website stuff). I get hesitant when it comes to games files since they can range into the GBs. What should be committed? I know the content and config folders are important, but what else?

Anything you’re not willing to lose if your computer explodes :slight_smile:

Yeah… I commit everything project-related, textures, models and all. Hard disk space is way cheaper than all the hair transplants you have to invest in, should your main devbox go up in flames all of a sudden.

That’s very useful advice and i’ve learned that hard way, after spending ~5 days recovering my broken project almost from scratch :wink:
… Despite this, i still didn’t set up proper version control with my UE4, but i use my own “version control” by just packing whole project into .rar and naming it with current date haha :smiley: Are there any tutorials on how to setup UE4 with one of the version control systems?