Make a Build

Making a build in Unreal is called Packaging. To prep the project for packaging/building, there are a couple things that must be tweaked.

Version Bump

When making a build, the version bump is imperative. Avarice follows Semantic Versioning (SemVer). The version contains 3 VINs (very important numbers) which equate to MAJOR.MINOR.PATCH:

Given a version number MAJOR.MINOR.PATCH, increment the:
* MAJOR version when you make incompatible API changes,
* MINOR version when you add functionality in a backwards-compatible manner, and
* PATCH version when you make backwards-compatible bug fixes.

That is taken straight from SemVer. For us, given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make a large game overhaul, project change, or introduce a new system
  • MINOR version when you add functionality
  • PATCH version when you make bug fixes only

If you increment a larger version number, all of its children change to 0. Example: If I have a version 1.6.2 and I introduce new functionality to a pre-existing system (say I added 2 abilities), I would bump the version number to 1.7.0. If I discover a bug in the next QA session, go and fix the bug, and make another build, the version would be bumped to 1.7.1. Then, I add a whole new system, say Steam Achievements. The version now gets bumped to 2.0.0 on the next build.

The project version is stored in Project Settings in Unreal Engine.

../_images/project-settings.png

The project version is under the project description category.

../_images/project-description.png

QA Build Repo

All builds must be tested, and most builds will be tested through QA. For QA at Champlain College, this involves putting each build in the build repository. CCM Lab computers already have this repo in the C-drive, but if you dont already have the repository, you can run the buildRepoClone.bat script in the project repository to clone the SVN repo.

../_images/qa-repo.png

Make sure to choose a custom depth for just our project - we dont need to pull down everyones project files.

../_images/custom-depth.png

Once you have cloned, we should make a space for our new build. Go ahead and make a folder in the build repo under our project with your new build version. (for version 1.7.1, I’d make a folder capstone/capstone-2018-19-t5/1.7.1).

../_images/build-folders.png

Packaging

Now we can go back to Unreal, and start packaging the build.

../_images/package.png

Be sure to select our new folder as the destination folder. This will put Unreal Engine’s WindowsNoEditor folder in our version folder (or something else if you aren’t doing a development build).

../_images/destination.png

Tada, it is building (packaging)!

../_images/packaging.png

Tag the commit

Now that we have made a build, we need to make sure the build is tagged in the repository.

If you are making a stable tested build, make sure to merge into the master branch of the repository. CAREFUL, master should ALWAYS be stable!

Tags should be formatted as vMAJOR.MINOR.PATCH

Push & Upload

Now the build has been built, and we have tagged the appropriate commit with the version. We can now push the build to the QA repository for bug playtesting, player experience playtesting, and footage recording. Go ahead and perform an SVN commit and the build will be good to go!

../_images/push.png