Another developer and I have begun to experiment with the Unreal Development Kit and have installed the UDK to our local computers. He’s been toying around and experimenting and has some basic code and assets already developed. We want to set up a VCS repository so we can collaborate on development of a UDK project.
Some things we’ve noticed:
- Source code goes in Development/Src/GameName/.
- Binary Content and other assets go in UDKGame/.
- The rest of the folders in the root directory are for the core UDK installation.
In terms of repositories, we’ve already come up with several options:
- Commit everything (even the core UDK code).
- Pro: Easy
- Con: We’re committing lots of code that, while a dependency of our project, isn’t technically part of the project.
- Commit the two folders we contribute to in two separate repositories.
- Pro: Isolates versioned code to stuff we create.
- Con: Slightly more difficult to set up, commits for one fix span multiple repositories, and we’re committing a lot of binary content.
- Change the config so both the src and the assets live in one folder, then commit that.
- Pro: Isolates versioned code, commits for changes are in one repo.
- Con: Committing binary content.
- Commit SRC to one repo, use another solution for assets (FTP, Dropbox, etc)
- Pro: Isolates versioned code, no extra overhead in versioning binary content.
- Con: Changes span multiple places and manual updates to a remote storage solution are needed.
As we assess the best way to go about this so we don’t back ourselves into a corner later, I’m wondering if there are other options and what their pros and cons are. I realize we could easily just pick a solution and change it up once we ran into scaling issues, but version control has always been one of those things I like to do once upfront and then forget about when I work on projects.