Release Date!

Hey everyone, we’re super excited to announce that Momentum is set to be released on August 12, 2016!

In the meantime, you can find wallpapers here, and (in case you missed it) you can listen to the soundtrack below:

Thanks for your support, we hope to see you on the 12th.

(the soundtrack will have new music on a weekly basis until August 12th, so check back soon.)

Coverage Thus Far and Upcoming Interview

We’re live-streaming an interview with Action Soup Studios this Tuesday at 1 PM Pacific (that’s 2 PM Mountain), here:

Here is a compilation of the coverage of Momentum thus far:



Gamers Hell:

Gaming Cypher:

Dark Side of Gaming:





Alpha Beta Gamer:

Games Nosh

Gamer Headlines
If you have covered Momentum, and you’re not on this list, let me know and I’ll correct it.

Salt Lake Comic Con

A reminder: We’re going to be at salt lake comic con today through saturday, so if you’re going, look for us there.
We’ll be at booth 521 in hall C. Right next to artist alley and on the main path. Can’t miss us.
We’ll be there as part of the Utah Games Guild, with these other guys.
Also, heads up, we’ll be launching a Kickstarter and Greenlight in a couple of weeks here, so keep an eye out for that as well.

Music Philosophy

Ladies and Gentlemen, my name is Isaac, and this is the first of several blog posts in which I’ll be discussing the music in Momentum.

Our music philosophy started simple: make it chill, so that people aren’t likely to rage and break their compy.

This idea, however, needed to be refined. As I began composing, our design quickly evolved into something more. I wanted to let people get lost in the music. I wanted people to be fully immersed into a simple place; a puzzle world in which, to reach your goals, the world bends to your whim–you simply close your eyes, and let yourself fall.

Additionally, I felt that to have anything in particular be a driving force would be a mistake–it would be conflicting with the gameplay. Instead, I felt that the music had to feel as though it was falling–that the force moving the music about was as unyielding and inevitable as gravity.

This feeling, of course, would change from song to song, but the touch of it had to be a familiar one.

So I had to consider a few things.

We began with the space. The space had to be enormous, abstract, and awe inspiring–a kind of foreign space that you can get lost in, but find yourself at peace. A place that you can marvel at the grandeur; where one can see the vastness of the universe, and our own small place inside of it.

Next, I considered the overall tempo. We decided it had to be graceful–I thought of it like a leaf, or a waterfall. It had to take it’s time, be unhurried; neither rushing about nor dragging it’s feet, It needed to get where it was going at precisely the right moment.

Music theory, I decided, was to be entirely ignored. I neither tried to adhere to, nor break any rules. I simply let myself write, and let the notes fall where they would. It would be another day that I decided if the song was bad or good.
And, admittedly, there were a lot of bad songs.

Anyways, now that I’m done being poetic, you all should join me later for some thoughts, oddities, and other commentary, as well as a preview of each of the songs in Momentum.



So the next major hurdle was the tracks. When I made the first set of track pieces, I had little idea of where I was going with it, both stylistically, and technically. With the second track set, I nailed down what I wanted the first world’s tracks to look like, but it left much to be desired in terms of performance. Where I had gone wrong, primarily, was having separate materials for different parts of each piece: The concrete bits had a concrete material, the metal bits had a metal material, etc. While that makes total sense, it’s far more efficient for the engine if you shove all of that into a single material, and have different zones on the texture maps for each different sub-material. That way, it can batch all of that in a single draw call, instead of drawing each material separately. In fact, it cut my draw calls by 6 to 8-fold. Unfortunately, that meant the end result was effectively a brand new track set, even though it looked the same as the last, and therefore I had to re-create every single level I had made prior to then, hence the reason I hadn’t made many in the first place. I knew eventually I had to replace them.

But that’s not the only optimization I did. I also wrote a script that merges the meshes of each track upon level load. So, before the merge, it’s set up as a hierarchy. The rails are children of the bumpers, and the bumpers are children of the road piece. That means that every time I made a change to the transform of the road piece or its parent, (I.E., moved or rotated anything, which is the entire point of the game) that change had to propagate up to 6 more times, which, needless to say, created an unnecessary bottleneck.

So now it’s as efficient as I can think of how to make it presently, without sacrificing the quality of the physics.

First up: environment

Wall of text incoming.

Holy crap. It took a long time but I’m done with it. So to recap, I had the original background, (the one in the trailer) totally sucked, both stylistically and functionally, so I determined I needed to replace it, but I knew it would take a while, so I made a temporary one, which was in the build at Game Wars. it was mostly functional, but utterly bland, and had entirely too much contrast, to boot.

What I ended up doing was this: In maya, I made about 20 buildings in 3 parts each: A base, a ‘floor’ and a top. I also made 2 special buildings that stand out from the others and aren’t at all copied, particularly, a government-type building and a clock tower. (in-game, the time on that clock is accurate to system time. subtle, but totally awesome) While I was doing that, I also wrote a mel script to take those buildings, and some road pieces and randomly generate from that a city, which I won’t delve into because it was actually a lengthy script. I actually had to generate it in 17 zones because not only was my script inefficient, my buildings prioritized fidelity over performance, given their end-use. Even had they been, though, the total area was about 200×200, (1 square being 1 building, road, or part of a multi-cell building) and 40,000-ish buildings is still a lot of buildings. So once I had the city, I needed to generate a cube map from that, so I rendered out the whole thing one piece at a time, so I could composite them later. Each piece needed multiple passes. Altogether there was about 150 renders that went into the final composite.

Then in Photoshop, I combined and composited all of those renders with a photographic sky, a panorama of the rocky mountains that I took from a hill close to home, and a public domain panorama of New York that I found. Most of the work there was in color correcting everything together and in masking by hand all of the lights in the windows. After all that was done, I could then export it as a cube map to Unity.

Once in Unity, I had to set it up all of the dynamic stuff. Separate from all the other renders, I had rendered a couple images of just a white cube, using the same lighting as the others. This allowed me to easily set up lighting that didn’t match, but closely resembled the background. I couldn’t entirely match it because I’m limited, in Unity, to a single directional light and an ambient term, for performance reasons, but it’s close. Then there’s the clock. Since I have the files that were rendered, I could determine precisely the position of the center of the clock relative to the camera. Since that vector is still valid post-render, I could simply make a little clock out of a couple of quads and a particle material, and place it there, and it’d appear to be on the clock.
After that, there’s the ocean. The ocean itself is just a quad with a pseudo-reflective material on it, then I took an animate tiled texture script, (just increments the offset of the texture by some vector every so often) re-tooled it to work with any given texture property, and applied it to the bump property, to simulate waves. Back when I exported the cube map, (as 6 separate .png files) I gave it an alpha, which doesn’t matter as far as the actual sky-box material is concerned, but it allowed me to make a cube that sits in front of the ocean and acts as a mask for it. A pretty neat, if totally ghetto solution.
Then I just needed to optimize the rain I had in the original environment, and I was done.