Sign in

Christopher West

In the last article, we looked at implementing our continuous integration pipeline using GitHub actions. Now we should have a project that builds for multiple platforms and uploads those builds to a place that we can download them from every time we build (to the master branch)! That’s awesome! Now, we want to work on the other half of our CI/CD pipeline, the continuous deployment or CD.

Continuous deployment takes the uploaded builds that we set up in our last few articles and allows them to be uploaded to places where they can be accessed by other people. In the…


Last time, we looked at getting our first workflow into GitHub and using it to obtain a Unity license file, which we stored in our GitHub secrets. Today we’re going to go over the details for implementing our Build workflow.

Setting up the build Workflow

There are a few steps to the process of setting up our build workflow.

  1. Create the main.yml file in our .github/workflows folder
  2. Add the name, on, and jobs workflow steps
  3. Define the platforms and the Unity version we are going to run our operations against.
  4. Add the checkout, cache, builder, and upload steps to our job
  5. Check in the file…


Last time, we looked at What Continuous Integration and Continuous Delivery are, some factors involved with making a choice on tooling for our project, and a brief introduction to GitHub Actions which is the tool chain we decided to utilize. Today we’re going to go over the details for the process of setting up the CI portion of our CI/CD pipeline in GitHub.

Setting up workflows

Yesterday we defined Workflows by stating “Workflows contain Jobs that contain Steps that are the list of actions to be run on virtualized environments to provide us with our functionality.”

  1. Create .github folder in root of project…


What is CI/CD?

Continuous Integration and Continuous Delivery, or CI/CD, is the term given to the process of automatically building a project and deploying it out to delivery channels like itch.io, the android store, or the iOS store every time code is successfully merged into a specific branch or branches in source control, or based on certain conditions like firing off a publish from GitHub (or the equivalent in other source control providers). This process is typically implemented in Team based software engineering efforts and can help in verifying that code being merged from several developers into a single source is stable and…


Welcome back! Today we’re going to talk about a simple but important feature. Being able to close out of our game using the Escape key. By default, our game doesn’t know that pressing the escape key should exit our game and if we are running in Full Screen mode this can lead to an issue. To accomplish our goal we want to use a method that Unity provides for us that allows us to exit the running game.

Application.Quit()

Application.Quit is ignored by the Unity Editor, so we will need to make a build and run it to test this feature.


In our last article we covered building and testing our unity project. We did this primarily through our standalone builds for Windows, Mac OS, or Linux, but we touched upon a few settings that needed to be changed for WebGL Builds. Namely, the compression format. It is important to have the compression format set ti disabled from the projects settings window in Unity or your build won’t play properly on sites like itch.io where we can share our games with the world!

The first thing we need to do to make a WebGL build for our game to be hosted…


Today we’re going to look at manually building and deploying our game in Unity. Yes, I said manually. I prefer to set up a Continuous Integration and Deployment pipeline that produces built project files for each platform I need to release my game on but the steps involved are far heavier than I need today and I will most likely cover them in a future article. Today we’re going to just do a basic manual build.

Our first step is to open our Build Settings window in Unity by selecting

File → Build Settings

from the menu at the top…


Last time we looked at how to add background music to our game to increase our player’s immersion. Now let's add sound effects! We’re going to add a laser sound when ever the player fires a laser.

Adding a Laser Sound

For this project we’ve been provided with a laser sound, so we’ll use that. If we had not been provided with the sound we could have gone to the Unity Asset store or another source like freesound.org.

We’re going to have the Player object be responsible for playing the laser sound when the user presses the fire key. To start we are going…


Now that we’ve added post processing to make our game look like a AAA title we need to round it out with sound! If we really want to immerse our players into our game sound plays a huge part in it! From the subtle background sounds of birds and foot steps in a jungle based first-person shooter to the sound of that particularly nasty lock puzzle hitting the ground after you’ve solved it in your favorite escape room VR game, sound can be just as important for a players immersion as the visuals they are presented. …


In our previous article we took a look at adding post processing to our scene to add effects like Bloom and Color Correction. I have found, while working on a project that sometimes you have objects that you don’t want to apply post processing to. Let’s take a look at how I have excluded some objects from post processing.

While play-testing, I found that the bloom effect was causing my shield visualizer to burn hotter than the sun! This was not my intended effect and I quite liked the effect of the shield visualizer without the bloom effect.

Shields before and after post processing

This led…

Christopher West

Unity Game Developer, Software Engineer, Gamer, Musician, and Father. Christopher is a creative that enjoys a challenge and loves coding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store