IMGD 4000 - Technical Game Development II

Source Code Control

Overview

Source code control systems (also known as revision control systems) are tools that can help in game development, especially when done in teams---but using one is a really good idea even for individual projects! Such systems provide a way to manage and organize files, keeping track of versions and change information as the development progresses. They also provide a means for safely sharing files among a team of developers, helping prevent editing conflicts. Finally, because you are going to use a repository in the cloud, the source control system will provide backup for your files.

Setting up a source control repository with Unreal Engine is therefore one of the first steps for getting started in this course, first for your individual projects, and then for your team game project.

Unreal Engine supports the following two commonly used source control protocols (click on links below for UE4 setup instructions):

There are many online tutorials covering both protocols. You may choose to use either of these protocols for your individual projects; tech groups should agree for the game project. Both are pre-installed on the IMGD and ZooLab machines. See brief instructions below for installing on personal machines.

Although all of the assets used in building a game project should be stored under source control, it may be expedient to set up a folder in DropBox, Google Drive, or WPI personal storage for the game artist(s) to temporarily transfer art assets to the tech group. Make sure you agree on some clear naming conventions and organization for this folder!

In addition to the information below, please refer to Keenan Gray's detailed tutorial on setting up source control for UE4.

Choosing a Repository Server

You have many choices for where to securely store your source controlled project. However, you must use a private repository, since storing your code in a public repository will make it too tempting for other students in the course (now or later) to violate the WPI academic integrity rules.

WPI offers private SVN and Git repositories for students at FusionForge. Many students have also used free commercial sites: GitHub and BitBucket for Git, and Deveo for SVN.

GitHub has a particularly nice web interface and Desktop application. However, you must go through a special application process to obtain private repositories for free.

N.B. Both FusionForge (see below) and GitHub (see above) have an application process that can take up to 72 hours. Therefore, sign up sooner rather than later!

FusionForge Instructions

Go to http://fusion.wpi.edu and log in to your WPI account.

Click on "My Page" and then click on "Register Project".

Fill out the form accordingly. The project title should be a unique name to your group. Be sure to choose either "Subversion" or "Git" under step "5. Source Code" and the respective template under "6. Project template".

Click the "Submit" button. Approval does not usually take long but as stated above, it can take up to 72 hours. Once approved, you will receive email confirmation.

Once your team is chosen, you can add a team member by going to "My Page" > "[Project name]" > "Admin" (a tab on the second bar along the top) > "Users and Permissions". Type in the team member's WPI username and click "Add Member".

You can view all of the source files and other statistics from the "SCM" tab in your project page.

SVN Instructions

The IMGD and Zoo lab computers already have TortoiseSVN installed on them. If you would like to install it on your own computers, you can follow these instructions.

Go to http://tortoisesvn.net/downloads.html and download the correct installer for your 32-bit or 64-bit operating system. Run the downloaded installer file and follow the instructions to install.

Navigate to the folder on your computer where you would like your project to be located.

Right click and select "SVN Checkout".

For the URL of your repository, type your repository url (e.g., "https://fusion.wpi.edu/svn/[YourProjectName]"). Make sure the "Checkout Depth" is set to "Fully recursive" and under "Revision" have "HEAD revision" selected. Click "OK" and your project should begin pulling from FusionForge.

Git Instructions

The IMGD and Zoo lab computers already have Git Bash and Git GUI installed on them. If you would like to install them on your own computers, you can download them here.

To do a first checkout in Git Bash, navigate to the directory on your hard drive where you want your code to be placed using the "cd" command. Type: "git clone" followed by your repository URL, such as "https://fusion.wpi.edu/git/[YourProjectName]/[YourProjectName].git".