I’ve just released version 1.1 of Substream. This fixes several issues with the intial release.


Substream has two aircraft; “Sonata” is the shiny chrome one and “Alto” is the black gem-like one which presents a harder difficulty with its weaker shield and trickier controls. Previously you had to beat the game with both ships to unlock the bonus features. But now the Alto ship is a part of the bonus menu. This means you get to the unlock the bonus features quicker, which includes an option to install the MP3 soundtrack.

Screen Resolutions

The second set of fixes concern the game failing to run at some resolutions when Windows desktop scaling is active. I won’t go into details, but if you’ve had any issue getting the game to work at higher resolutions this version should contain the fix you need.


Finally, menus are more readable, with fixes on overlapping text in various languages, and more comfortable font sizes.



I’m super happy to tell you that Substream is finally released to the world!

It’s been a long journey but I’ve definitely reached a point when I feel like this game is solid. Technically the custom engine works well and it’s been played by several beta testers. And the game itself is well rounded and fun!…

Substream is an abstract aerial on-rails shooter for Windows PC.

Animated to Music

Pilot alien aircraft as you fly through a world that constantly pulses and morphs with the rhythms, moods and melodies of the soundtrack. Each of the six levels are inspired by the soundtrack, which includes jazz, tribal, techno and funk. The terrain, sky and your enemies are all synchronzied to music by artists such as Souleye (VVVVVV) and Floex (Machinarium, Samarost 3).

Looped Space

Experience airborne combat in looped space, where your attackers appear in multiple positions ahead of you. Look to the sides and you’ll see copies of your aircraft like a squadron stretching off to infinity. You can attack the same enemy in multiple directions and they can do the same to you, but destroy one and you destroy the chain.

Aerial Combat

In each level you fly over a landscape shooting down robotic alien drones, collecting weapons and scoring points, surviving until the end of the tune. Pick up railguns, pipe bombs and homing missiles. The two aircraft represent two different difficulty levels, each with their own weapon and control style.

Substream Winner EP Soundtrack

Beat the game with both aircraft to unlock the Substream Winner EP, a collection of MP3s from the game soundtrack that are installed direct to your music folder.



There’s a new Substream Beta available now.

This is pretty much the full game, nearly ready for release. It’s an “open beta” in that you’re free to share with any friends who you think may enjoy it too, but please do not distribute it on public file shares. I’d love any feedback you have for me of course!



I started developing Substream in 2010, nine years for many people is a long time to maintain interest in a hobby project, developing a game is no exception.

At first Substream was a big focus and I poured a lot of time into it. In 2014 I tried a Kickstarter for Substream, which got some nice coverage but sadly failed. Kickstarter is really hard by the way. Anyone who gets funded totally deserves it. You have to get everything right. I had this idea I could finish up a playable demo and manage Kicktarter promotion at the same time. Don’t try that. Have your demo ready. Have everything ready.

Anyways. I really enjoyed developing this game. A “labour of love”. So I continued developing it in my free time, now and then, over many years. There’s been intense periods, and many months where I did nothing. Most days now I don’t think about it. But I also couldn’t leave it unfinished. So about a year ago, May 2017, I got to a point where I could say the game was “feature complete”.

But at the finishing line I lost motivation. I started to look at Steam integration into my custom C++/DirectX engine (because buying good game engines cost major monies in 2010, and also writing my own game engine has been a fantastic experience). I started to look at all the businessy things and forms I need to complete to get there. Boring.

Substream has some new stuff I haven’t shown online. There are now five unique levels. New music and enemies and weapons. Two playable aircraft which form two different game modes. It takes an hour or two to complete, so not a long game. But fun and still unique.

How to conclude this blog post? Well, I have sat on a finished game for a year. I still don’t want to not release it so something will happen. I don’t want to say it will happen this year because, well, I’ve done that a few times already. I have every intention of releasing it when I have the time, motivation and headspace to pick it up again.



I’m developing an indie game called Substream

I’ve now been a games programmer on three commercial games. Like those games, Substream is a project that is going to take a lot of time to build. But Substream contains several experiments. A lot of the programming is standard: I still need to code up boring things like collision detection, depth sorting and render state management. A lot of the gameplay is familiar too: you shoot things, score points, unlock levels. But the new stuff is what’s important to me and hopefully to players as well.

Music Synchronization

“Music games” seem quite popular. I think Rez and Audiosurf have done the best job of this so far. These games get really strong positive reactions; it seems like the goal of making a player feel connected to the music has been already been done. This is very interesting to me because I think these games are only scratching the surface of what’s possible.

I didn’t get around to playing Rez until it had been out for a few years. Several of my friends described it enthusiastically – “it’s hypnotizing, it’s like you’re actually in the music”. I was very keen to try it. When I eventually got to play it I could see what they meant, but I was really surprised that Rez’s visuals are only really connected to the music in two ways: (1) vibrate certain objects to the beat, (2) hold certain actions from occuring until the next beat.

Audiosurf’s method is to analyse any piece of music from your hard drive. It calculates two things: (1) how intense the music is and (2) where the beats are. Audiosurf really makes the most of these two types of data. Getting any more information than this is extremely difficult and PhD thesis are still being written on the subject, so this wasn’t a route I decided to take.

My primary experiment with Substream is to connect with more aspects of the music, and to see how players repsond to that. This is my approach…

Audio Marker

This is essentially a music sequencer program. But this tool isn’t used to make any music, it’s actually used to mark when events and animations will happen in the game world relative to an existing piece of music. My approach in Substream is human design and this is a tool I’ve created to help me.

This design process is something like choreography. I’m deciding exactly what will happen when, and it means I can pick up on anything in the music I want to…

Moods: how does the music make you feel and how does that change?
Music: what does the music remind me of?
Patterns: is the melody moving up, down, in circles? Game animations can repsond to that.
Instruments: multiple game animations will be related to different instruments in the mix.
Rhythm: including different actions for snares, cymbals, bass etc.

As long as I can hear and can code it, I can implement all the animations I want to fit the music. This process takes time, so Substream will be a short game with with an intense high quality experience. Hopefully there’ll be enough going on that you’d want to go back and play it again.

Dynamic Terrain

This really goes hand-in-hand with the above. I started to learn shader programming recently and it got me interested in some possibilties. Vertex shaders are used to alter the shape of an object on a graphics card’s processor rather than on a PC’s main processor. In the past they have been used for rag doll physics, skeletal animation and other simple animations, but computers are powerful enough now to have every triangle in the game’s environment affected simultaneously. Substream’s environment isn’t a model that was created in a 3D package in the traditional way, but it’s generated while you’re flying along and can animate into a different shape, form, colour, or style at any time.

A Repeating Universe

Some time ago, I happened to be playing Starfox SNES and the original Mario Bros at around the same time. In Starfox you are boxed in by an annoying invisible wall to either side of your ship which you couldn’t fly past. Mario Bros solves this problem by allowing you to go off one side of the screen and come back on the other. Substream puts these together.

Substream’s universe is actually just a narrow channel, but it’s repeated in space. What you end up with is something quite interesting, where enemies appear in multiple positions ahead of you simulatenously, and your ship appears to be one in a chain of infinite ships.

I’m really happy with the terrain animations and music syncing. I also know the repeating space is a workable feature and that the game is definitely playable. It’s a unique set up and by experimenting with enemy and weapon designs I hope I can squeeze some cool gameplay features out of this.

It’s my aim to have several levels in the game on launch, each with a carefully selected piece of music which brings out different emotions, rhythms and gameplay styles. Each piece of music is between six and eleven minutes long so if you factor in a few deaths it may take a couple of hours for one play through. But there’s going to be a lot packed into those two hours.

If you find this game interesting please don’t forget to subscribe to Substream with one of the options at the bottom right of the website.