Automated testing in gamedev

Nowadays, most people agree that automated testing is absolutely crucial for
all software development. Not so much when it comes to games development though.
I still believe that the games industry would be able to iterate and ship faster by introducing unit and integration testing in the right places.

Godot and Gut

Butch Wesley appears to be onboard, considering
he created Gut, an automated testing framework
for the Godot Game Engine. Gut provides you with a collection of utilities to write and run tests for your game. Out of the box you get basic assertions, test doubles and even full node tree simulation.
Tests are run either from the Godot Editor or the command line using the godot executable itelf.

Dead simple Godot CI pipeline

That is why I experimented with running GDScript tests on a Continuous
Integration pipeline using the headless Godot runtime. I created a repo
godot-ci-example you can copy
to use on your own projects. Here is how it works.

Firstly, create a Godot project, install Gut from the Asset Library and enable it.
This is the same as what is explained in Gut’s Install and Command Line wiki pages.

Where godot is your Godot binary and project is the folder where your game lives.

Alright, we now have a basic test setup we can run locally. Let’s move onto the meaty
part of the article, continuous integration. I’ll be using
Travis CI because it’s easy and free for open source projects hosted on Github, but knock yourself out with your CI system of choice.

Travis looks for a .travis.yml file in the root of your repo. This file tells Travis how to build the project and run tests. I recommend you take a quick look at the docs.

PyCon ES 2017, which will be running from September
22nd to September 24th in Cáceres, Spain. I’ll be attending alongside some
Bloomberg colleagues as we are one of the main sponsors of the event. If you
have tickets, definitely come say hi!

JSConf EU is one of the biggest JS conferences
in Europe and I was lucky enough to attend its 2017 edition earlier this
month. This year the event took place in Arena Berlin,
a place by the river, typically dedicated to concerts in the east side
of the German capital.

Overall, it was a pretty awesome weekend and although I wish there were
more talks on advanced technical topics, I understand the event is more
focused on community and diversity. It was flawlessly organised, special
kudos for the attention to disabilities, the timeliness, quality of
the food and free beer!

Ludum Dare 38 starts in a couple of hours.
This one is special as it marks the 15th anniversary of the biggest weekend
game development friendly competition in the world!

If you don’t know about Ludum Dare and are interested, check the
documentary they just released.

I was thinking of participating using Godot Engine.
I have a couple of social compromises this weekend and, honestly, I am a bit
scared of failing miserably, so I’m not too sure how far I’ll take this one.

Theme

The initial theme voting stages
have taken place throughout the week and now it’s down to the final round. The
final theme will be announced right when the competition starts.

16 themes made it into the final round, I picked my top 5 and came up with
quick pitches for each one of them. I know, some call this cheating but
chances of success and for any of these themes to win are rather slim anyway!

Parallel Dimensions

Split-screen platformer where you control the same character in two
parallel universes. Simple but slightly different levels. The goal is to
reach the end, however hazards may be placed in different locations and both
characters need to make it alive.