I've been wanting to write a post about what Substream is about and the unique features that makes it stand out against other music games and 3D shmups. Some of this stuff I haven't really explained in detail yet and it's about time I did...
Substream is a project that’s going to consume over a year of my life. Previously I worked on a few commerical games "in the industry", but I was no longer content spending that amount of time producing a game which had half an innovative feature at the most. 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.
People seem to respond very well to “synesthesia” games. 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 exciting
because in fact 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” – so I was very keen to try it.
When I eventually got to play it I really enjoyed the game and 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. Having a computer analyse a piece of music is a
very complex problem and 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 take synesthesia further. I want to have a greater connection with the music, but to do that I needed a new method. This is my approach…
Click for bigger. This tool is used to help make levels in the game, but it doesn't describe any physical properties and it isn’t used to make any music. It’s actually used purely to mark when events and animations will happen in the game world relative to the music. My approach in Substream is about human design and this is the tool I’ve created for matching events to music. It’s essentially 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?
- Themes in the music – what does it remind me of?
- Intensity and rhythms.
- Patterns – is the melody moving up, down, in circles? Game animations can repsond to that.
- Instruments – multiple game animations can be related to different instruments in the mix.
- Drums – 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.
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.
You’ll see more of this in future videos.
A Repeating Universe
Some time ago, I happened to be playing Starfox SNES and the original (pre-super) Mario Bros pipe game at around the same time. In Starfox you had an annoying invisible wall to either side of you 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 those ideas 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. Pause this video at around ten seconds in and you’ll see exactly what I mean.Twenty seconds into that trailer you’ll see a couple of large enemies. These are protected by shields which means although you might not be able to land a shot on them from the left, you can shoot them from the right. This is an easy level and they pose little threat but with multiple smaller shielded enemies, you’ll need to think fast and switch your attack.
Substream is about 50% done now. 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 with it, but I still want to experiment with this last feature a bit more. It’s a unique set up and by experimenting with enemy and weapon designs I hope I can squeeze some more gameplay features out of this.
It’s my aim to have about a dozen 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 – and absolutely no filler.