My brother and I have been working on projects together for quite some time and need a solution to syncing our project changes. I was thinking about adding our file system to google drive to somehow sync our project. I’ve looked into perforce but doesn’t seem like the right solution for what we’re trying to do. As of right now we share everything through google drive as is but it would be nice to sync projects in an easy manner. If anyone can shed some light on what I can do to make this process work better than dragging files over and manually placing into our project that would be great. I did search the forums and I did find some answers but not exactly what we’re looking for. Anyone out there using this method? I’d like to know what are the core files I need to transfer if all our other files are in order like mesh’s animation’s etc…I’m completely new to syncing data across the internet but have set up plenty of private servers out of my home so I’m sure I can grasp what I need to do. If perforce best solution for doing so then I am game but if we can just use google drive that’d be awesome. If someone could shed some light on this or at the very least just point me into the direction I need to set up what I’m looking for that’d be great. The simpler the syncing process can work the better.
I personally use Git for everything; even if I’m working on a project alone. There’s nothing stopping you from using something like Google Drive to collaborate with your brother: just put your project on Google Drive and give your brother access, but this has several disadvantages. You run the risk of stepping on each other’s toes, for example if you two found yourselves modifying the same file. Google drive also does not save any change history, so if you found that something you did recently broke the game, it’s quite a bit more difficult to pinpoint where the problem is.
Version Control systems like Git and Perforce exist to alleviate these kinds of problems. Enabling version control on your project will cause the version control system to track every change you make to your project files. When you’re ready to share your changes with other developers on your team (currently just your brother, but who knows in the future ), you can bundle up your changes and commit them to a central repository, from which other developers can pull commits from other team members and keep their local copy up to date. Version control systems save all commit history, as well as the changes to each file in each commit, making it easier to pinpoint issues. Version control systems also won’t let you commit changes to a file unless you had the latest version of the file to begin with. If you didn’t have the latest version of a file before you commit, you’d get an error and an option to merge the latest version of the file in the repository with your local copy, after which you can attempt to commit again. This makes sure that developers can never step on each others’ toes.
If you want to test an experimental feature, or implement something big that will require a bit of time to finish (and during which the game is not expected to be working), you can use a powerful feature in many version control systems called branching. In a branch, your commits will not be pulled by developers that are not also on that branch. This lets you make as many changes as you want to the project without other developers worrying about pulling broken code.
Perforce also can lock binary files so that only one person can ever work on a binary file at a time. This is useful for game developers because games tend to have a lot of them, and they can’t be manually merged.
Obviously, this is more complex than just syncing to google drive. But as projects get complex, I find that these features become invaluable.
I used OneDrive before, but eventually switched to git. As soon as you feel comfortable with it(Maybe a couple days to accommodate) it become much more efficient and easy to use.
And you can even use SourceTree or similar software only if you’re afraid of console. UE4 native plugin + software will cover everything
I’d definitely recommend switching to a proper source control system. The versioning features are invaluable.
Git and Perforce are both popular. I run a Perforce server at home for development, and then push stuff I want to publish from there into Github.
Perforce has the advantage that it’s integrated pretty well into the UE Editor, although I believe there’s a Git plugin for the editor, although I haven’t tried it.
Thanks for the replies guys. It looks like git and perforce are the solutions here. Thanks again!
A little known tool is Plastic. They’re my personal favorite as they basically combined Perforce and Git. They’re even marketed directly towards game developers. Really great tool, with a great editor to boot.
Hey landon912 I’ll check it out this afternoon. Thanks.
Edit: I ended up going with Perforce since it has some integration with UE4. Thanks a ton this is going to make our lives a little easier. I am now looking into using Git Hub with Perforce as suggested. Thanks again everyone who chimed in
But can anyone answer the question? I know, perforce is best, but what about backup or sync on google drive or like this?