Reflex – Dev Diary 72

A new update for Game Maker Studio 2 was released this week. Usually, that’s not a problem and Reflex doesn’t have any issues. However, this time compilation of the game into native code failed. After a quick post on the YoYoGames forum I was informed that the error I was getting from the compiler was because somewhere in my game I was using ++ or — in a function call. This is not something I personally would have done but there is code from a few extensions I’m using that might.

To be on the safe side I changed all instances of ‘variable++’ and ‘variable–‘ to ‘variable+=1’ instead. This corrected the problem and I was able to recompile the game.

Next up was to try out a new build for the forthcoming Android version. Again, with the new version the compilation failed. This time it was complaining that it needed Java 11 and I was using 1.8?!

I ended up having to uninstall Android Studio (and the SDK and NDK), and install a newer version. Then I could follow the updated setup instructions from YoYoGames. This took quite a while but it had to be done. Finally, 2 hours later I was able to compile the game and get it running again on my tablet.

So, that’s the annoying technical stuff out of the way; but what about the game itself?

This week I released the Early Access version 2 of the game to Steam. World 4 testing has been completed and it was ready for launch.

During last weeks playtesting session that involved a difficult level with multiple laser turrets I got suspicious that there might have been an issue with them. It turns out I was right.

Laser turrets rotate in an arc formation looking for missiles. If they see one they destroy the missile and then switch off for a certain amount of time. The idea is that the player can use this downtime to sneak a missile passed. However, during the test, it looked as if the downtime of the turret wasn’t working. The playtester was also frustrated because he didn’t know how long the turret would be down.

Checking the code and running some tests myself I discovered that although the turret would stop rotating during the downtime it wasn’t preventing it from destroying any missile within its vision cone. That was a problem. So I took this time to rewrite the turret downtime code and to make an important sprite change.

This planetary defence cannon is well protected

The improved turret now has a light on the back of the head. Once the turret has fired and is out of power the light on the back slowly builds up from red back to green. Once at green it is ready to fire again and continues its rotations.

Also during the playtesting session last week I discovered that if the player run out of time and a duplicator was still in the process of launching missiles the end of the level would fail and the player could continue forever. This has now been fixed so that all missiles, including those in duplicators, are destroyed when the time runs out.

And finally. The outro animation sequence has now been completed.