July 13 2023

High Performance Build Pipeline

You’ll want three elements to get an efficient build pipeline for your Unity projects that actually helps your team.

But before I reveal these three elements to you, let’s quickly remember why a build pipeline is the #1 element to set up in any of your projects:

  1. To let you continue your work productively instead of waiting for a frozen editor that is building. This gets exponentially worse if you build for multiple platforms.
  2. To naturally make more builds, since the process is now automated.
  3. To have a tested project (happens automatically as you have more testable builds).
  4. To do A-B tests on features and optimization so the team and stakeholders can instantly decide which better version to go with, as you can make two builds with a single differencing element.
  5. To craft magic automations, like uploading builds to an archive server (so your team can go back to a full history of builds), or to automatically run automated performance tests on your project (so you always know if your project is at risk of poor reviews or in-store policy rejections).

Not enough reasons?

Automated profiling systems running after build pipeline made by our team

Another example. One of my clients has a single project that targts three different platform: WebGL, Standalone Windows, Dedicated Server Linux. Each commit/push instantly triggers the automated build process that:

  1. Makes the single set of three builds. This ensures codebase consistency across the three versions.
  2. Uploads the WebGL client to our high-performance web server based on nginx.
  3. Starts the multiplayer server in our containerized infrastructure at a specific port.
  4. Sends a message to our Discord channel with the link for the full team to test the build.

All of this and much more is possible when you have a build pipeline. And I tell you this because I have prepared many pipelines for my clients. And I truly mean MANY.

Automatic deployment system of standalone, webgl and containerized docker dedicated server by our team

Many meaning: I spent well over 500+ hours within a bit more than decade. Jenkins, Teamcity, CLI, Batch files, Cloud build, github actions, docker, gitlab ci, you name it, I have done it. So I can kinda say that I learned a couple of things along the rocky way.

I say this because I can save you some pricey time. And save you from a needle-sharp brainache.

So now you are finally ready to possess this knowledge…

Which are THE three elements you will want in a pipeline so that it actually helps you?

  1. A Linux VPS running a GitLab runner instance.
  2. A Docker installation to “containerize” your unity installations (to lower maintenance 10x).
  3. The game.ci Unity images to easily drive the Unity build process for your entire studio.

This tech stack saves my consulting clients from SO much pain in their every day tasks. Especially when they come to me unhappy with Unity cloud build being too rigid, slow and pricey for them. This combo saves your team 20h/week (give or take) by me just spending a couple of days on setting it up.

Now: if you are interested in setting this up by yourself, I go through the full process (step by step) in the Unity Performance Taskforce, module “2023.06”. From choosing your high-performance VPS, to setting the build pipeline up and getting your builds running for your own project within a few hours.

Module '2023.06' of the Unity Performance Taskforce

Lastly: my team can set up for you a fully fledged build pipeline that adapts to your needs.

Book a free chat with me or send me an email to get in touch.

The Gamedev Guru Logo

Performance Labs SL
Paseo de la Castellana 194, Ground Floor B
28046 Madrid, Spain

This website is not sponsored by or affiliated with Facebook, Unity Technologies, Gamedev.net or Gamasutra.

The content you find here is based on my own opinions. Use this information at your own risk.
Some icons provided by Icons8