Long story short, There are 3 people working on a project. for the majority of the time we are working remotely on our home computers. Some times We will be meeting up and working from cafés etc on laptops.
Whats the best way to approach the set up of this project so that we can all work on the same build and how would we set that up and back up that build each day?
At the root what your talking about is version control and for our needs, being more or less in the same situation, we use TortoiseSVN.
The main SVN is hosted off site and contains sub-folders to act as as a direct share and can hold resources as to needs. For example content creators do not need access to code so someone working on an environment for example will only need to update or commit to the content frame work.
On the client side the developer working on a given area creates two folders. One is a mirror of the SVN and the other a working folder, a sandbox so to speak, where they are free to manage their own projects as they see fit or what works best for them.
Once work in progress is ready to be updated then the work is migrated to the SVN mirror and then committed to the SVN host. The issue of backup is managed by process of a remote developer having a mirror of the SVN.
Version control, as to who is working on what, is a bit difficult but compared to a big studio we are a much smaller group so to solve possible conflicts so whoever is working on what becomes the project owner/manager where others on the team need to check out and check in works in progress.
We are a small group working on a small project so the need for “extensive” version control is not necessary as everyone on the team is aware of who is working on what and the extent of version control for us is the ability to roll the SVN back to a previous version or to scrub the SVN clean and rebuild it from one of the many mirrors available.
The other issue as to version control is engine updates.
You can migrate from an older version of the engine to a newer version but you can not migrate from a new to and older version with out dependency errors so from time to time you will need to schedule and SVN update to accommodate developers working on a current version of the UE4 engine.
Hope that helps but since it sounds like you three are in constant contact and communicating with one another there is no need for any kind of elaborate version control. Keep it Simple.
I would encourage the use of version control even when you’re working solo. You never know when you need to rollback a change, especially when its crashing UE4. UnrealEditor has integrated support for Perforce. You’ll find all the tutorials you need to set up Perforce Server & Client at Perforce.com as they’re applicable to UE4. Assuming you want to set up your own P4 Server, I would recommend installing on separate machine, not the same machine your UE4 Editor + P4 Client are installed. Otherwise the Depots and Workspaces can get really confusing. Assembla Perforce Hosting free for up to 20 users. Once you have a P4 Server address to connect to and P4 Client installed, you can set up UnrealEditor with these directions.
+1 to using version control on a solo project. There are tons of different version control technologies, Perforce, git, and SVN are probably the most popular. As mentioned UE4 has Perforce integration built in, and that’s the best workflow when trying to merge binaries (such as blueprints). git is great and fairly straightfoward, but doesnt like large binaries (at all). SVN is probably the easiest, but least flexible and easiest to clobber other people’s work.
I use perforce since working solo and to cut down on power consumption I have the server and client installed on my workstation(gaming laptop) - I have the depot stored on a NAS drive mapped to my laptop which rarely I ever need to take out of my home network so yeah it works well and gives me redundancy