The following is just some friendly advice…
Every once in a while you read about someone having problems with a project that suddenly fails to run, or some file has been corrupted somehow. It’s not very common, but it happens. More commonly, you just break your project by mistake, and if you’ve already saved your changes, getting things back to working order can be a pain. Of course, things can go wrong for many reasons: user error, cosmic rays, harddisk failure, bad hairday… you name it.
The thing is that there is a simple solution for all these situations, and it has been around for ages. UE4 even has built-in integration for it. There is absolutely no reason that anyone should ever have to see their hard work fall into the great black bit-bucket.
The solution is, ladies and gentlemen: version control systems. Your editor can talk to Subversion servers and Perforce servers straight out of the box, so once it has been set up, it’s very simple to use.
Programmers are typically already familiar with this, and wouldn’t even dream of starting a new project without it. However, since UE4 is so incredibly artist-friendly, there’s probably a lot of people around here who have never used version control or even know it exists.
I simply wanted to point this out, and hopefully encourage anyone who doesn’t currently use it to start now. Like right now. This weekend.
So, what does version control do? It stores the changes you make to your project files. It keeps track of assets you add to and delete from your project. And it maintains a history of all these changes, so that if anything goes wrong at any point, for any reason, you can always check out a previous revision of your project and get back to a last known working state. You only lose whatever work you did between the good revision and the current state, rather than the whole thing. There is a ton of other things you can do as well, but I’ll stick to the basics here.
In a basic workflow with version control, you do the stuff you intend to do, then you submit the changes to your version control server along with a log entry where you write down what you have done. When you submit, the current state of your project is saved with a revision number, like a numbered snapshot of the project state at that very moment. This includes your blueprints, meshes, maps…
This is like a backup system on steroids. It gives you peace of mind. Want to try something crazy with your PlayerController Blueprint, even if you know it will force you to change a bunch of other blueprints as well? Just go ahead. If it doesn’t work, you simply revert your changes, and everything goes back to the way it was before. Did something stupid just before going to bed yesterday, and committed those changes? Just roll back to the previous revision and keep working.
To make a long story short, if you value your time and work, you should use some kind of version control.
This does not mean that you need a dedicated server. You can run it on your main workstation if you want. Or, better yet, you probably have an old PC somewhere on your home network that can be repurposed as a server.
The server software doesn’t even have to cost you a dime.
Getting everything set up can be a bit of a chore, there is no denying that, but once it’s done you can give yourself a pat on the back. And a few weeks later you can hit yourself on the head because you didn’t think of this several years ago.
My personal setup is an old workstation peacefully humming in my closet. It runs an svn server on CrunchBang linux. My workstation and my laptop both have the TortoiseSVN client installed for anything that falls outside of the capabilities of the UE4 integration. If you are interested in going the Linux route, there’s an exellent setup guide here: http://stackoverflow.com/questions/60736/how-to-setup-a-subversion-svn-server-on-gnu-linux-ubuntu
The main advantage of running your own server (or a local repository on your workstation/laptop) rather than some online service is that you don’t have to worry about diskspace, and file transfers back and forth are really fast on your LAN, or even faster still if you run both the server and UE4 on the same machine (although I find that a separate server is more convenient and safer because it means you always have your latest files on two different computers at all times).
Anyway, if you’re not using version control - start using version control! Can’t be more blunt than that… Yes, there will be some initial head-scratching, but rest assured, you will thank yourself in the long run. Make this weekend a version control weekend. I don’t ever want to hear about anyone losing work from now on!
Well, that’s all I’ve got for now. Feel free to chip in if you have any related information to share!