On Monday, my Unreal Engine-based twin stick shooter Waves sold its 15,000th copy during its Daily Deal on Steam. That’s not bad for a game that’s been out a little under 6 months and was made mostly by just one man (me).
So with 20k copies looking very far away indeed right now it seems like a good time for a look back at Waves to see what went right and what went wrong.
First up some statistics without any context:
- Units sold to date: 15,238
- Percentage sold direct: 3.7%
- Percentage sold on Steam: 96.2%
- Percentage sold in Steam bundles: 53%
- Percentage sold during Daily Deal: 15%
- Metacritic Score: 82
- Steam Demo Downloads: 25,985
- Steam Demo Conversion Rate: 6.8%
- Average Time Played: 2 Hours 44 Minutes
- Average Play Session: 22 Minutes
- Percentage of Players who played more than 20 hours: 1%
- Percentage of Players who reached the Score Cap: 0.4%
If you are a website looking for a story feel free to pick a headline out of those numbers although by now I don’t think there is anything that surprising about them as we all know that Steam is a pretty big deal these days.
As you can see the majority of sales have not been at the full asking price of $10. In fact the average price paid per unit is significantly south of that and I’m yet to reach the point where I have to pay Epic any royalties for my UDK license. In short I’m not rich but I’m not starving (I am however still living with my parents which helps even though it is embarrassing as a 30 year old man).
Now on the assumption that the inevitable Summer and Winter Sales for this year bring in about half as much as the first Winter sale did I should be able to fund myself for the next year. Those same numbers however say that I won’t be able to afford to pay for lots of art or other content for my next game which sucks.
Why Am I not Rich?
Everybody knows all indie developers that make it onto Steam are minted and have no money problems so why am I not sitting at a gold plated desk smoking money cigars while wearing a money hat (aside from my not smoking and looking daft in hats).
It is not because of Pirates. Waves has been pirated a lot in places like Russia and China (which you would expect) but seems to have avoided any kind of rampant piracy elsewhere. I’m sure it has been pirated outside of those countries but it’s not a huge epidemic of lost money. This is oddly an indication of a bigger problem: Nobody knows about the game to want to pirate it – If your game is being pirated up the wazoo then congratulations that is success of a sort.
Waves is a critically acclaimed award winning best-in-breed game with lots of polish, great graphics an amazing soundtrack and addictive gameplay – that nobody has heard of. This is the problem sitting on top of my big pile of reasons why Waves hasn’t bought me a new Bentley.
I can’t afford advertising. It cost a little under £9k to do a site take over on Rock Paper Shotgun for a week (last time I checked anyway) and that is actually one of the cheaper options when it comes to advertising (plus RPS readers actually buy stuff and are amazing) but I’m at a point where I cannot put that kind of money into something speculative.
I have no idea if spending that 9k on advertising will make the money back never mind make a profit and I need that money right now not 90 days from now when it manages to migrate back into my bank account. While this may be the best way to build awareness if it doesn’t make a profit then it has the potential to bankrupt me very quickly.
Adwords do not work. You’ll spend £100 to make £7. I tried it. I cannot imagine a scenario in which adwords will cause me to make a profit but they do drive traffic. Traffic that doesn’t actually want to buy anything.
Waves has had some excellent press both around release, during sales and at other times. You’d think the readers of RPS, Indiegames, DIYGamer and a few other PC Gaming sites are sick of hearing about Waves by now. Except I don’t think they are. Each time it gets mentioned I see comments along the lines of “Why haven’t I heard about this before?” and this is because not everybody reads these sites every hour of every day and things rotate off the front page quite quickly. If you want to leverage these sites you have to get mentioned on them at least once a month which means giving them reasons to write about you which means updates, DLC, Controversy, Sales, Videos etc. This is not something that is easy to do as a solo developer and especially not if you want to work on something new. I want to work on new things not be stuck adding new hats to Waves just so I can grab a headline each month.
The IGN and Eurogamer reviews of Waves have barely any comments on them and I would suspect have very low page views. Nobody actually wants to read about something they’ve never heard of. This is the biggest problem facing a new IP from ANY source (not just indies). This is why advertising is again so important. You have to tell people that they should be interested in the game BEFORE the reviews are out so that they then read the review and see that it’s actually worth buying. Good reviews are worthless if nobody is reading them.
The other problem with press is that most of them don’t know what’s worth covering in the PC indie space. Most sites play it safe and ignore indie games entirely unless somebody else posts about them. If you want your Indie game to sell well on PC then get it released on a console first. When you have Sony or Microsoft sending out press releases about your game everybody will write about it because they legitimize you. Even if you go on to sell only 3 copies on a console the press will pay more attention to the PC version of a failed console release than a complete unknown. Rock Paper Shotgun and IndieGames are the clear exception to this.
The highest result on youtube for Waves is Total Biscuits WTF is… of the Waves demo. Which he didn’t like. This screwed me quite badly because that’s basically 150,000 people who will now never try the game because Total Biscuit doesn’t like Score-Attack shooters. It’s also annoying because some of the complaints levelled in that same video are fixed in the full game because of his feedback. If you want your indie game to do well make sure Total Biscuit likes it because he can send a few hundred thousand people straight to your Steam page to give you money.
The second biggest result is the official trailer. The trailer is made up of game play footage with a good soundtrack. It’s impressive but it’s not effective advertising. I made a fatal error with the trailer. It doesn’t tell you why Waves is one of the best Arena Shooters on PC. The trailer tells you that the game involves killing geometric shapes in a top-down point of view and there are some inexplicable explosions and bullet time going on. Waves is unfortunately a game where the depth doesn’t become apparent until around your third go at which point you start to see that there is a lot more to it than just holding the left mouse button down and making pretty explosions. How you get that across in a trailer is beyond me. I understand now why game development has gone down the route of Content over Mechanics. Content is alot easier to sell to people.
I’ve Already Played Geometry Wars…
…and I suck at these kind of games. I hear this one a lot. Geometry Wars occurred at an important time. A time in which Geometry Wars did not already exist. Twin Stick shooters were very rare and the majority of people playing games at that point in time had never played one. It had novelty because to a lot of people who had never played Robotron it was new and the vast majority of people who bought it were absolutely awful at it. Arena Shooters are hard games. They are not games that are completed by bashing your head off 200 levels of content until you’ve seen everything they have to offer.
Arena Shooters give you a set of skills that you must master in a limited context and are not just hard but hard and unforgiving. Lots of people found out that they may never be able to drag themselves out of the bottom third of the leaderboards no matter how many hours of practice they put in. Waves is actually very easy to learn and the adaptive difficulty present in the game works really well. The problem exists that people assume they are going to be bad at the game and would rather spend money on something they think they will be good at or at least isn’t going to constantly remind them that they are at best average. People want to think they are better at a game than they really are and in a way leaderboards undo this and remind them that they are a bit rubbish.
This brings me on to my next point: Nobody wants arcade games at the moment. The trend is towards games that are geared for “Completer Finishers” which means lots of unlocks, content, achievements and story. This is because people still measure the value they get from a game in how many hours of their life it was able to distract them from their inevitable death. As grizzly as this may be a big reason we need to entertain ourselves is because if we have too much spare time and not enough to fill it we’ll start to think about things we really don’t enjoy thinking about. Most people would rather buy something that will give them 20 hours of pink fuzzy feelings rather than 2 hours of intense neon sensory workout. There are clearly exceptions to this and I’m massively oversimplifying to make a point but the phrase “Content is King” is still very true.
Waves also looks like Geometry Wars. This isn’t because I ripped off Geometry Wars it’s because Cakebread and I had the same problem: We’re programmers not artists. Abstract Polygonal shapes are easy for us to knock up quickly and we both clearly like Tron and played games in the Eighties. Sharing an aesthetic makes people assume the game plays exactly like Geometry Wars which it doesn’t. However if you’re the kind of person who assumes two games play the same because of their art style and camera position you’re probably also the kind of person who doesn’t know how to farm a back hole in Geometry Wars so the differences would probably be lost on you anyway.
The above is all slightly ironic because before Waves was released I had lots of people telling me I had “The next Geometry Wars” on my hands and telling me I’d be a huge success as a result. Being “The next Geometry Wars” did nothing but hurt me I think.
What Went Wrong
Time to look at some of the technical and design things that I wish I could change if I was doing this all again.
The Score Cap
From a technical point of view the existence of a Score Cap is one of my biggest regrets. During beta testing nobody got anywhere near it and I thought nobody ever would. I was proved very wrong very quickly once the game was released.
The score cap exists as a result of a specific restriction in the Unreal Development Kit: The Steam integration only accepts a 32bit signed Integer when submitting scores to leaderboards. This is because this is the only kind of integer available in Unrealscript. Regardless of whether the Steam database can store larger numbers this is your only option when it comes to vannila UDK.
I realised far too long after the game had released that I could have probably stored your score as a float locally and dropped the last two digits when submitting it to the leaderboards as these aren’t going to be significant when you’re talking about scores in the billions. As it stands less than 1% of all players have ever hit the score cap so it’s not a huge problem for the majority of people but it’s something I wish had never been a problem in the first place.
The Friends Leaderboard
It’s very slow to download. This is something that is a result of the version of the UDK I was using and I was constantly hoping would be fixed before I released the game. It was unfortunately something I had no control over as it wasn’t in my code but in the C++ that you don’t get as a UDK licensee. The Steam integration hadn’t been updated since February of 2011 and the actual fix for this problem didn’t hit until this year and would have completely invalidated every single leaderboard. Wiping leaderboards and steam stats is not something you do if you don’t want to piss off all your loyal fans so I’m afraid everybody is stuck with the slow download times for friends scores.
This only came about because I needed to release Waves when I did. The game had been “finished” for weeks by the time it came out and I was mostly waiting to see if the next UDK update would have the fix I was waiting for. I know that it gets trotted out but I had to release the game when I did not to hit some marketting dictated deadline but because if I didn’t I would not have been “Mostly broke” but “Actually genuinely broke”. As it was the ATM was starting to laugh at me when I went to get money out and my bank balance basically read as “Very No”. It was either release with slow leaderboards or not release due to having no internet access.
What Went Right
I made a great game on my own (mostly) released it and over 15k people bought it. I’m putting that in the “Win” column. However there are some specific things that I’m quite happy with.
Patches and updates. I haz em.
I like to think that I did a good job responding to bugs and feature requests post-release with alot of usability requests (like being able to toggle the aim line and extra graphics options) being implemented very quickly. The month after the game was released it had alot of updates that improved usability, framerates and fixed a bunch of bugs that only show up when you have a thousand people hammering your game for hours. I also managed to sneak in an entire game mode. The competitive nature of the Waves leaderboards means I don’t want to just add new features or change the existing game modes alot because it would invalidate the old scores people worked hard to get but I’m glad it got a sixth game mode.
Considering I’m not a 3D artist I’m bloody happy with how the game looks. You can fix everything with particle effects and pixel shaders. I fell arse first into a visual style that is distinct enough that you can look at a screenshot of the game and recognise it instantly. A lot of manshoots can’t claim that.
Out-sourcing (hah!) the challenge mode to Rob was a brilliant decision that essentially prevented the game mode from being cut. I’m terrible at making scripted content like this (I’m a procedural kinda guy) and Rob is excellent at it. You can see his account of how that all went here.
A universal truth among games developers is that we all hate coding the GUI for games. It is the least fun part of the job and something that feels like it takes forever and never gets any of the glory yet without one the game completely fails to be a game. It is for this reason that so many indie game trailers include the UI. It’s boring and nobody wants to see it in a trailer but goddamn we spent weeks working on that and you’re bloody well going to see it!
I wrote my own UI for Waves because it was easier for me than learning how to use flash because I’m not an artist and flash seems to be designed for artists. As a result I am bloody proud of my UI and it is far swisher than it actually needed to be. That little ripple/distortion effect you see on the menus? That took ages and caused huge amounts of problems but I had a vision for the UI and I nailed it. It’s not often that happens so I am stupidly proud of how it turned out.
Did I mention it was a bastard and took forever?
I’m very happy with Waves. It’s turned out to be one of the best Arena Shooter on PC according to the reviews and that’s quite the thing considering it started out as a crappy physics puzzler.
Right now I am not in the position of having to flip burgers to make a living but I am also not in a position where I can make any game I want next. Art costs a lot of money and I can just about afford to keep myself employed so an incredibly content heavy game is probably a bad idea right now. It’s a shame that the game I want to make next is a content heavy turn based co-op RPG.
The real winner though in this story is that I was able to make a game on my own and release it to the public where they could spend money on it. Up until a few years ago this is a thing I would never have been able to do but thanks to the convergence of UDK and Steam and the PC being an open platform I’ve been able to achieve a dream: Start a games company before I turned 30 and make a living from it.