It’s hard to believe but this week marks five years since the release of Lovers in a Dangerous Spacetime. We’re extremely grateful for all the players who have given our weird game a chance. None of this would have been possible without your support, so from the bottom of our hearts, THANK YOU.
Now that we have some perspective on selling a video game over the course of five years, we wanted to share some data, because our sales graph didn’t take the shape we expected, and we thought it might be of interest to other developers.
TL;DR: Lovers had an okay-but-not-great launch, and we expected the game would fizzle out fairly quickly, but in fact sales ended up increasing for a few years, and it ended up being quite successful, thanks in part to updates, ports, discounts, word-of-mouth, and of course luck (don’t want to pretend that there isn’t a TON of random chance affecting how games fare).
Launch and Year 1
We launched the original 2-player version of Lovers on Steam and Xbox One on September 9, 2015. It’s a niche game in that it features local co-op, not online. We knew that would limit its sales, but we didn’t know by how much. There were a few other local multiplayer indie games getting buzz back then, like TowerFall, so we figured there could be a market for it. But we had no way to gauge it.
Here’s the shape of our first year of revenue:
Our biggest spike was our launch.We hired a PR company to help us get blog and review coverage, which more or less worked, but our second week of sales declined by half and it continued to drop from there. We ran some 33% discounts after only a couple months to take advantage of Steam’s Autumn and Winter sales (plus we were extremely fortunate to get some front page rotation in Winter) and we got some brief boosts, but then quickly returned to baseline. It was disappointing, but not really surprising.
In February 2016 we launched on PS4 around Valentine’s day, coinciding with discounts on the other platforms and a marketing effort (meaning we re-hired that PR company to push out a press release, and also did an old-fashioned twitter GIF storm). But again, sales fell back to baseline afterwards — although having an extra platform in the mix kept our total baseline sales from declining further.
Year 2: Party games, word-of-mouth, and a bundle
After year 1, we expected our best days were behind us and our future sales would follow the same gradual decline. But surprisingly, our sales stopped declining, and even increased somewhat. Why?
This graph is an example of the stegosaurus tail sales curve, where a game’s long tail, instead of just sloping downwards, is covered in spikes. So what made the difference? Let’s dive in.
One unquantifiable factor is that in May 2016, eight months after launch, we finally added support for 4-player co-op (still local only). There was no huge spike at the time, but from then on, we noticed the game got covered more often as a party game, and if you do a random Twitter search for the game it’s probably still the most frequent discussion context (usually it’s “OMG I love Overcooked, what other co-op games are there?”).
When we noticed this, it gave us the idea to make a Steam bundle featuring us and some other local co-op party games. We approached Steam and the other developers, and everyone was on board, so for Valentine’s Day 2017 we launched the Cozy Couch Co-Op Bundle alongside Overcooked, BattleBlock Theater, Moon Hunters, and Keep Talking and Nobody Explodes. Steam gave us great placement, and the resulting spike was almost as good as our launch. It also had the added bonus of boosting our baseline sales afterwards, as players looking for co-op games could see all our games on each other’s Steam pages.
Throughout our second year we also slowly increased our discount percentage during sales. We kept track of our average daily revenue for each sale, and if it started declining significantly we’d increase the discount percentage. By the end of our second year we were doing 55% off.
And just a note — even though all those spikes make it look like we were constantly on sale, since each platform has their own sales schedule there was actually a lot of time we were just sitting in the stores at full price. Plus there were times when we couldn’t get platforms to include us in sales, or give us store placement, leading to little mini spikes where we’d be on sale but not actually have a large revenue bump.
Years 3 to 5: Switch time
We would never have expected we’d have our highest sales in our 3rd year of release, but hey, thanks Nintendo!
We launched on Switch on October 3, 2017, seven months after the console was released. That launch remains our highest sales spike, and the Switch has been our best-selling platform. In a way it was the ideal platform — the audience is open to colorful, approachable games, 2D gameplay, and the base console even came with two controllers! Plus we pushed hard to release in the first year of the console, meaning the storefront was less crowded. It also meant that we got there in time for the Switch’s first holiday season, which ended up being our second highest spike… until two weeks later, when we ran a 33% off sale in the first week of January 2018 to reach all the brand new Switch owners. Then that became our second highest spike.
There’s not a ton more to note in our sales history, just a lot of running our own discounts on all the platforms, and saying yes to any themed discounts that the account managers at the platforms tell us about, plus we kept doing our own sales around Valentine’s day. We have been nudging down our discount percent over time, and we found a sweet spot at 60% off. We tried 67%, to get us under the $5 price point, but for some reason it wasn’t as successful, so we went back to 60%. Occasionally the platforms will ask us to go lower, but for now we’ve been pushing back since this seems to be a good price.
One interesting thing (and really it’s only interesting for local co-op games) was that in Nov 2019 Steam launched its Remote Play Together service. This service lets people play local-only multiplayer games together online via streaming. Lovers is a perfect candidate to benefit from that, and it even got some placement in the service launch promo. Afterwards, we noticed our baseline Steam sales stopped their slow decline and reversed upwards again, although it’s hard to know exactly how much difference it made because there was also the usual noisy year-end sales bumpiness. It doesn’t seem huge, but we didn’t have to do anything for it — just a lucky break. Thanks Valve!
And finally, there was the surreal Covid sales bump in spring of this year, when widespread lockdowns meant people were stuck at home playing video games. Sales went back to normal fairly quickly, though.
And that brings us up to date.
Overall platform sales breakdown
Steam and Switch have been our main breadwinners (even though Switch launched two years later), but Xbox One and PS4 have been solid performers too. Being on all the platforms has been hugely significant.
Here’s what we believe helped us avoid the immediate sales decay we’d been expecting:
• Support! Even though our initial launch was disappointing, we found it was super valuable to keep supporting the game with patches, updates, and translations. • Porting! Despite the long delay between our different launches, it didn’t seem to hurt our arrival on subsequent platforms (especially if you can launch early in a console’s lifecycle). • Teaming up with other games in similar genres! In our case, the Cozy Couch Co-op Bundle was wonderful for building awareness. It wasn’t just a random bundle — it came from seeing what our audience was talking about and looking for. • Run discounts! Run all the discounts! It’s also useful to keep track of daily revenue during discounts to inform what percentage to choose for the next discount. • Luck! Always remember to have luck. Good luck!
And finally, let us say one more time: THANKS FOR PLAYING.
Designing a fun 2P co-op powerup system was a big challenge in Lovers in a Dangerous Spacetime. Pull up a chair and dig into the process with us in a new Gamasutra Deep Dive, complete with gifs (obviously!).
But why was a combo system more engaging than just adding more gem variety? I think it’s because we were engaging a player’s imagination — they would try to predict what certain combos would result in. If a Beam Turret resulted in a railgun weapon, and a Metal Turret resulted in a swinging space flail, what could a Beam-Metal turret be? Players would want to see if they were right, and fill in that space in their mental chart of upgrades.
The Asteroid Base guys have talked about the inspirations and creation of Lovers at length, but I’d like to talk about the beginnings of the game from the audio perspective.
In 2012, I decided to take part in the Toronto Global Game Jam after being encouraged by a close audio friend. Audio people were in short supply, so I was responsible for developing the music and sound effects for an entire room of teams. In the end I composed music and designed sound for 5 games within the 48 hours of the jam. Lovers was the last game that I worked on, and I only had an hour or two to create and deliver. The first renditions of the opening and gameplay music were developed at this time, along with 8 sound effects.
Initially the gameplay music (now called “Launch Into Deep Space”) was just a one-minute loop. (In the final game, there are 19 pieces of music ranging from 4 to 6 minutes in length.) The genre of the music was completely out of my comfort zone–I had never composed happy spacey dance music before. Most of the time my compositions are kind of dark, so this was new to me. I started experimenting with different synthesizers and fell in love with Arturia‘s CS80 and Arp2600 plugins. These plugins are modeled off of the 1970s classics which have been featured in some popular science fiction films and shows such as Blade Runner and Doctor Who. I wanted the music to sound and feel vintage and not “chiptunes”, because a lot of games have been composing music in that timbre. The use of the vintage synthesizer rather than chip sounds gives it a 1970s science fiction feeling, which overall matches the design and inspiration of the game.
After the jam, Asteroid Base decided that they were going to continue to develop Lovers and I was excited to continue providing the sound design and music. The first thing I wanted to do was revise the music I had written at the jam. It was rushed at the time, so now I could go back and really sink my teeth into it. A lot of time was spent adjusting the performances, changing oscillator wave shapes and just generally messing around with settings until I found the sound I wanted. Before this project, I didn’t have much experience in using synthesizers for music. I had used them mostly to create sound effects and ambiences in animation television shows. At first I was slow at being able to compose exactly what I heard in my head, but that’s the fun of experimenting and learning. Throughout the composing of Lovers there were many creative mistakes that paid off.
There was one instance where I was using a chiptunes synthesizer and I was hoping to make it increasingly harsh so it would stick out of the mix more. I added a bit crusher to the process chain and instead of making the sound harsh, it actually calmed and smoothed it out. This worked better in the song than what I was expecting. So it stayed.
The original song from the game jam, “Launch Into Deep Space”, was extended to about two and half minutes before I moved on to composing the additional gameplay songs. During the development process we had decided that the music length didn’t need to be kept to a minimum, and I had free reign to make the songs as long as I wanted. With “Launch Into Deep Space” being rather short, I decided to try and extend it so that it wouldn’t be so repetitive and annoying to the player. I extended the song twice, and it ended up being close to 6 minutes long. While I was lengthening it, I wrote a great melody on the ARP2600 but I felt it didn’t particularly fit into that song. Ironically, the melody line cut from the first song became the main theme and inspiration for “Forever Space Love”, which is now the game’s ending song.
The Ceraf enemy uses timers to control its pre-shoot, shoot and post-shoot animations and actions.
Warning: Super dry, tool-focused devlog incoming!
One of the tasks we find ourselves doing quite frequently while working on Lovers is controlling the timing of things (loop an animation for x seconds, randomize AI behaviour every y seconds, etc.). There are many ways to accomplish these types of actions, for instance you could do something like this:
When we showed Lovers in a Dangerous Spacetime at PAX East last month, we got asked a few times about how we were handling our space backgrounds, so I thought I’d go into a bit of detail. We’re aiming for a rich, 2.5D neon fantasy look, and we wanted our backgrounds to fit this world and feel alive. We ended up combining a few different elements for the effect we wanted.
The simplest approach to pausing your game in Unity is to set Time.timeScale = 0. While the time scale is 0, Update methods in your scripts will still called, but Time.deltaTime will always return 0. This works well if you want to pause all on-screen action, but it is severely limiting if you need animated menus or overlays, since Time.timeScale = 0 also pauses animations and particle systems.
Whenever I buy a new “Art Of” book, no matter how great the concept paintings are, I often wish I could also see the earlier, rougher, uglier stuff that must exist from when the designers were still batting around ideas and trying to figure out what they were making.
On that note, here are some sketchbook pages from the past year-and-a-half of Lovers development. Working on paper, without an undo, helps to focus on the broad decision-making stuff and avoid getting bogged down in details. My sketchbook drawings have gotten rougher over the years as I’ve moved more mid-stage work to the computer, so with that warning, let’s dive in…
We’ve had ground-based enemies, which we call Walkers, in Lovers since way back in the days of the GDC 2013 build. Until recently these enemies have been tethered to spherical (well, circular) planets, so programming their movement was simply a matter of ensuring that their distance from the center of the planet was constant and their velocity was tangential to the vector from the enemy’s position to the planet’s center. However, as we continued to add new scenarios for players to experience we needed Walkers to be able to traverse more exotic terrain. Being the lazy developers that we are, our first attempt to implement a more robust walking algorithm was the simplest and most naive that we could come up with. Luckily for us, it worked out pretty well.
Following up on Matt’s last devlog, I’m going to wrap up our character creation process by discussing how we are rendering the characters in Lovers in a Dangerous Spacetime. Warning: It’s very Unity-y. // More
I recently had a chance to assemble this screen-cap footage from earlier last year showing our modeling/rigging/animation process for Lovers:
Although it’s a 2D game, we’re creating the assets as 3D geometry, using flat planes with transparent textures (more on that here). This might seem like a lot of trouble for one tiny little bunny friend, but the 3D approach lets us re-use the rig for all the humanoids in the game, including the player characters, just by swapping textures. It’s handy.