Blog

There’s no fire without Smoke Tests

Test Automation

It’s a familiar tale: you’ve set up an expensive and time-consuming playtest, and just wanted to squeeze in one more feature. You cook the build, give it a quick sanity check, and send it off. The playtest starts well, but as players start to hit level 4, they encounter bugs, error spam and fatal crashes....

Read more

This Graph Doesn’t Exist: The Ghost of The Delayed Issue Effect

General

So this graph is pretty famous, especially in quality circles. It’s meant to convey that fixing things earlier is better – by orders of magnitude. It’s a pretty stark visual of something we feel is intrinsically true. Only problem is, it’s bullshit. This specific visual is from The Journal Of Information Systems Technology And Planning...

Read more

Exploding barrels, and why your first test should be an Asset Test

Test Automation

Learn about asset tests: an accessible approach to writing tests for game projects, and a great starting point for people new to testing

Read more

The Topography of Unreal Test Automation in 2025

Test Automation

I’ve been exploring automated testing more in Unreal recently, and one thing that won’t surprise Unreal users is there’s a million different ways to do it, each with their pros and cons, and half of them are undocumented. I thought I could do a useful overview of the different automated testing tools at your disposal...

Read more

Setting up a Windows cloud machine to run unity with graphics, so Jenkins can run automated tests

Build Engineering

The latest in a series of posts on getting Unity Test Framework tests running in jenkins in the cloud, because this seems entirely undocumented. To recap, we had got as far as running our playmode tests on the cloud machine, but we had to use the -batchmode -nographics command line parameters. If we don’t, we...

Read more

Building Unity using Jenkins Pipelines

Build Engineering

This is the third of a series of posts on Jenkins and Unity. In this post I’ll outline how I set up Jenkins to make reliable repeatable Unity builds, using a pipelines script (also called a jenkinsfile) that’s stored inside source control. I’ll outline the plugins I used and the reasons behind some of my...

Read more

Running unity tests on a build server

Build Engineering

(Read part 1, about creating parametric level smoke tests, here) Now we have some useful tests, we want our Jenkins install to run them frequently. That way, we really quick feedback on failures. Here’s how we do this at Roll7. Running tests from the command line Let’s assume you already have a server to build

Read more

Smoke-testing scenes, using Jenkins and Unity Test Framework

Test Automation

You may be familiar with Unity’s Test Runner window, where you can execute tests and see results. This is the user-facing part of the Unity Test Framework, which is a very extensible system for running tests of any kind. At Roll7 I recently set up the test runner to automatically run simple smoketests on every...

Read more

Adding a custom movement mode to Unreal’s CharacterMovementComponent via blueprints

General

This isn’t a full tutorial, and I’m not an expert, but I noticed this knowledge wasn’t really collected together anywhere, so I’m putting something together here. Please shout if there’s any holes or mistakes. The CharacterMovementComponent that comes with the third-person starter kit has several movement modes you can switch between using the Set Movement Mode...

Read more

Game AI Pro chapter on Context Steering

Game AI

I think every few years I’ll be destined to make a blog post that starts “oh I have a blog don’t I.” You can now get the chapter I wrote about context steering in Game AI Pro Volume 2 for free on their website: Click to access GameAIPro2_Chapter18_Context_Steering_Behavior-Driven_Steering_at_the_Macro_Scale.pdf

Read more

How did I get into AI gamedev?

General

A computer science graduate got in touch with me via an academic friend, interested to know how they could become a games industry AI programmer. They seemed interested in what kind of masters course would help their career. Although that’s definitely possible, it’s not the route I took. My full answer follows: … I’m not...

Read more

How to symbolicate iOS crash dumps from Unity Cloud Build games

Build Engineering

Disclaimer: this advice is provided without warranty, works on my machine, etc. Use it at your own risk. We’ve been using Unity Cloud Build at Spry Fox for a soon-to-be-announced project. Since we’re a remote company, it’s great to be able to push and know that both Android and iOS builds will be soon available to everyone...

Read more

DecisionFlex

Game AI

DecisionFlex is a new Utility-based AI tool for Unity3D

Read more

Innovating In Your Pants

General

The company I work for, Spry Fox, is known for its innovative games like Triple Town, Steambirds and Leap Day. In fact, it’s one of the reasons I was attracted to work there in the first place! We do this by prototyping a lot of ideas, iterating quickly, and (ideally) killing readily. All as fully...

Read more

Your Favourite Free To Play Game Hasn’t Been Made Yet

General

There’s been a lot of criticism over the last few days of the new Dungeon Keeper free-to-play mobile game from EA. By all reports, it features some egregious and long countdown locks, that can be opened early with in-game currency, which can of course be topped up with real money in-app purchases. These types of IAPs are...

Read more

How to build Unity3D scripts from the command line

Build Engineering

I use emacs for day-to-day programming, including writing unity scripts. For a while I made changes then tabbed over to the unity editor to watch them compile and check for errors. This was, imaginably, tedious. Anyone not coding in MonoDevelop has the same issue, and even the MonoDevelop folks (god have mercy upon their souls)...

Read more

Anatomy of a unit test

Test Automation

In my spare time I maintain a unit testing library built for Unity3D. It’s called UnTest, it’s open-sourced under the MIT license, and you can download it here. In the Unity3D community forums announcing UnTest, _Shockwave asked for an example of some real-life unit tests written with this framework. UnTest is very xUnit-flavoured, so they...

Read more

DAMN Behaviours and Context Steering

Game AI

After my GDC talk, Treff on twitter sent me a link to a paper from the late 90s by a researcher called Julio K. Rosenblatt. It had some similar ideas to my context steering technique. I thought I’d discuss the differences and similarities here. The system asks modules (behaviours) to vote for how much it prefers...

Read more

Context Behaviours Know How To Share

Game AI

Last time we saw how steering behaviour systems are very useful when either behaviour integrity isn’t important, or if there are a large number of entities to help hide any irregularities. We saw this is actually an unavoidable feature of steering behaviours. The heart of steering behaviour systems, the merging of decisions of several behaviours,...

Read more

Steering behaviours are doing it wrong

Game AI

Update: you can now read part two of this series. Steering behaviours have for a long time been a gateway drug of game AI. People like this (annoyingly pluralised) technique because its components are fun and easy to write, the framework code is very simple, requiring only some vector maths knowledge, and the end result...

Read more

Reducing Memory Usage in Unity, C# and .NET/Mono

General

Unity on iOS uses an early version of Mono’s heap manager. This manager doesn’t do packing, so if you fragment your heap, it’ll just grab a new one for you. I am under the impression the Unity boffins are working on a new heap manager to get around this problem, but for now a game...

Read more