DevLog

On Monday Waves sold it’s 15,000th copy during it’s 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.

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.

[singlepic id=61 w=700 h=525 float=]

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). Read on to find out why…

I’m implementing skill checks in BFD right now and got to wondering about dice probabilities. One of the things I wanted to try and avoid is using pure probability values in the belief that by using a dice based system people will have an easier time visualising what’s going on behind the scenes and can discuss it better. I also want to attract fans of tabletop gaming.

I have experience mostly with DnD and Games Workshops games and to be honest I always felt that both of them are lacking in opposite areas.

DnD (4e specifically) is as you hopefully know a D20 based game where your normal skill check is to roll a D20, add your modifiers to it and see if you beat the target skill. This results in some very large numbers being thrown around which can get a little confusing and having double the skill not always meaning you’re twice as likely to succeed.

GW games on the other hand prefer stats that only tend to range between 0 and 10 with 3’s being considered “average”. Most skill checks with their systems depend on looking up the two stats involved and finding a target value for a D6 roll. Normally if the two stats are equal then this would be a 4+ (50%) if your is 1 more than your opponents it’s a 3+ (66%) and if it’s more than double it’s a 2+ (83%).

I like the small stats of GW games but not the probability distribution. If I have double the weapon skill of my opponent I should be twice as likely to hit them (75%) and if I have triple their skill I should be twice as likely again (88%).

These values only come up when dealing with re-rolls though. A 4+ on one D6 with a Re-roll is a 75% chance of success (and with 2 re-rolls it’s 88%). So I could say that having double the skill of the target lets you reroll a failure and triple lets you reroll two failures. This sounds great but it makes having a slight 1 or 2 point advantage useless.

So I ask the tabletop playing public who have no doubt done the maths on this already: Is there a dice system that would give me the distribution I crave with the granularity needed?

As the topic says. Multiplayer is hard. If you are a games developer who has only ever made single player games before then you have absolutely no idea the headaches that are involved when you try to make a multiplayer one. They are many and painful.

I am of course talking about my new project “Blue Fire Dawn” and you would be forgiven for thinking that making a Turn Based game multiplayer would be easier than a real time one. It isn’t. With a real time game you can be quite sloppy – it doesn’t matter if you drop a couple of packets because there are so many small updates being sent every second that another one will be along any moment now. Turn based games on the other hand are all about synchronization. When a player tells the server that they want to do something they are usually sending a big long list of commands all at once which have the potential to arrive out of order at the server which has to put them into the right order. Then the server has to make sure what the client sent it is even legal before executing it, rolling dice and sending the results back to all the clients. There is a lot of waiting and validating going on that real time games don’t need to care about.

During an interview with Rock Paper Shotgun the Firaxis guy said that making XCOM was a huge scary project. This is a sentiment recently shared by the makers of Xenonauts. Now consider this: With what I’m working on now I could potentially make either of those games and I’m trying to make it work in Multiplayer. I’m clearly insane.

Here is the thing: It is working in multiplayer. About 3 weeks ago I had a rubbish prototype that worked in single player. Since then I have a rubbish prototype that works in multiplayer (with the exception of the revamped abilities system which I’ll get to). I’ve had to do lots of very boring things like login procedures, replication, lobbies and handling reconnecting clients (If you drop from a game and reconnect within 5 minutes then it’s as if nothing happened. Take longer than 5 minutes and your characters will disappear and everybody can continue playing) but the important thing is that it works. Levels are procedurally generated and match up between clients and everything updates correctly as things move around the world. It’s awesome.

I clearly haven’t hit the actual hard part of this game yet then. In fact I think I’ve just now run face first into it.

Firaxis and I have managed to independently come up with the same ability system for our games. Alternatively we have both managed to independently “borrow” ideas from 4th edition DnD (it’s this one – shhh). Your characters get a number of Action Points to spend each turn on abilities. Moving normally is an ability and costs 1AP. Shooting at a target is an ability and costs 1AP. Going on Overwatch is an ability and costs 1AP etc. You can do these in any order you want and so long as the ability doesn’t have a cooldown or use limit you can do them multiple times in the same turn.

It’s a bit like time units in UFO but instead of an ability being something tiny like turning 45 degrees or moving a grenade from your belt to your hand they encompass a goal or idea rather than the minutiae of how to achieve it. You’d think this would be easier to implement than Time Units but in reality it really isn’t. Time Units are probably the easiest method to make a Turn Based game entirely because they are so discrete.

Take my current head scratcher: The Charge ability.

Charging is conceptually simple – You can make a move for your full movement speed but it must end adjacent to an enemy who you will then attack in melee combat. In comparison to a regular Move or Melee Attack ability this is a tough one because it combines both of them into one. Add to this the fact that I don’t want to have to code every single ability in the game and have a lofty ideal of being able to assemble them as data and things become so very complicated.

I am also trying to decide whether to let players execute abilities one move at a time or if they have to send the entire plan in one go to the server. I know some people will really want to be able to agonise over each square moved just in case the next move reveals an enemy but there is a lot to be said for having to commit to a plan up front (with seeing an enemy allowing you to abort mid-move or continue – either way your action point is gone) and whatever I decide here can have a significant impact on how I design the abilities system and how it works in multiplayer.

In conclusion: Multiplayer is hard but not as hard as having to design an infinitely flexible system that has to account for an infinite number of unknown variables.

If I was good at marketing I would know that I should be building the Squid In A Box brand identity and associating it with a specific genre of game. Squid In A Box would be the developer that makes crazy neon shooters.

It’s probably a good job then that I’m terrible at marketing.

My policy has always been to make the games that I want to play and right now I don’t want to play Waves 2: the Wavening. Nope right now I want to play a turn based RPG with online co-op and procedurally generated dungeons so that’s what I’m making.

With this in mind I have spent the last couple of weeks working on a prototype of such a game. You saw the first stage with the “Blue Fire Dawn” tech demo that had a ball rolling around a procedurally generated maze. Well this has taken it a step further and now there are Space Marines Vs Angry Robots in a turn-based fight to the death.

As mentioned before I’m working on a content update for Waves which will add a new game mode and a big bag of achievements for Steam. So here is a preview video of the new game mode: CHASE

Chase is simple: 10: Touch a Red Pad and get 5 seconds on the clock. A new pad will appear somewhere on screen; 20: Touch the new pad within 5 seconds or lose a life; 30: Goto 10;

That’s it. I’ve nicknamed it “The Speed Metal of Shooters” because your first game will probably be very short lived. So far the beta testers have been very positive about it and this mode may need to carry a health warning for those with a weak heart.

There are also just under 30 new achievements coming most of which have been suggested by the community and some of which are my own devious creations.

Hopefully the update will be done before the 22nd. If it isn’t then it won’t appear until the second week of January as I’ll be away for the holidays.

So Waves was released a week ago and since then there have been 2 patches on Steam and a third that will hopefully go live tonight (EDIT: It has gone live already). That’s more patches than Skyrim has had and I’ve definitely fixed more things than I’ve broken.

Generally the only bugs have been with Achievements and that’s largely because achievements are hard to debug until you can actually see the stats for them which I couldn’t during the beta. Everything else has been adding little feature requests like being able to pick a Random announcer each game or turning off the Aim Line.

Since release several people have said some very nice things about Waves in what are known as “Reviews” I shall share the ones I know about below along with some of my favourite quotes:

DealSpwn “Prepare for hectic unforgiving splendour and retinal titilation of the highest order.”The72Pins “If you’re looking for a game to take the place of the never to be seen Geometry Wars 3, then this is it.”Kotaku “Waves is the most addictive little twin-stick shooter I’ve played since Geometry Wars.”IndieGamesMag “Waves is a hard hitting, spunk-filled fireworks display.”ElectronDance “1 min of its edge-of-seat bullet ballet = the handstrain of 6 self-love sessions.”DIYGamer “it’s a lot bloody good.”

Some other things that have happened since release is the Survival leaderboards have seen 4 players break the 1 billion barrier with one player managing to hit the score cap I had to implement because Steam Leaderboards and UDK don’t support 64bit integers.

The current top score for the Challenge mode was actually caught on camera and is on Youtube as well which was quite lucky.

I shall now address the things that people ask me (aside from “Can I have a review copy?”):

Q: Can we have more music?

A: Music is expensive. Really expensive. Waves has not yet made enough that I can afford to pay SMILETRON to make some new tracks. So at the moment no.

Q: Will the soundtrack be released?

A: We’re working on it. SMILETRON is mastering the ingame tracks into an album friendly format at the moment. When it’s closer to happening I’ll post about it.

Q: The Friends leaderboard is a bit slow isn’t it?

A: Yep it is. This is unfortunately a UDK issue and one I was hoping would be fixed with the October update. It wasn’t. This is one of those bugs that I can’t do anything about. The November UDK update may fix it but I’m not promising anything.

Q: Is there going to be a Mac, XBLA, PSN, iThing version?

A: XBLA and PSN isn’t going to happen unless the game makes a huge amount of money. The UDK licence doesn’t cover those platforms so I’d need a full Unreal licence. That’s assuming I got a slot which I think is incredibly unlikely. A Mac or iThing version may happen further down the line but it requires that I have a Mac and iThing to test on which I can’t afford right now.

Waves is basically finished now so that means I get to mess around for a bit in the name of “Prototyping”. At the moment I have a vague hand-wavey idea of what I want to make after Waves but I can’t really commit to anything properly until I know if I will have enough money for what I want.

There is however one thing that I have always been very interested in and that’s procedurally generated levels. This is a thing that common wisdom over on the UDK forums suggests should either be impossible or at least so very hard that you would be better off building your own engine instead.

Naturally I decided that this is exactly what I was going to spend my weekend trying to do…

After soliciting a name from Twitter (thanks to ElectronDance for the winner) I set about trying to generate a level in UDK.

The first attempt was horrible and shall not be mentioned again.

The second attempt is below and turned out quite well. In fact it turned out so well that you can download the prototype and tootle around an infinite number of procedurally generated mazes. Seriously there is nothing else to do in it except tootle. No baddies, no pickups, nothing. It’s not a game it’s a piece of tech.

Anyway you use WASD or the arrows to move and you can press G to generate a new level.

If you want to pretend there is a game in there then there is always one really big room that has only one entrance. Try and find it in the dark.

I’m not sure if I’m going to use this yet but it was fun to be coding something that wasn’t Waves (even though I did copy all of the rolling ball stuff from it).

There are no unlocks in Waves. None at all. If you buy the game then you get access to all five game modes right away. This won’t prevent most of you trying them all out in the order they appear in the menu but there is absolutely nothing stopping you from starting out with Bombing Run rather than Crunch Time.

This is for a reason and that reason is not “Too lazy to put in unlockable content”. The reason there are no unlocks is because the moment you have unlockable content gamers start to focus purely on unlocking the content rather than enjoying the game itself (See The Overjustification Effect).

I’m going to use an anecdote to support this (even though there is plenty of empirical evidence that supports this theory anecdotes are fun and more relate-able)…

I recently started playing Space Marine multiplayer. It’s a lot of fun when it isn’t lagging (which is sadly most of the time) but it has a few too many unlocks. Ever since I started playing I have been playing as a pure Tactical Marine – Bolter and Frag grenades only. At first this was because I just love the Bolter (it’s an awesome feeling weapon to use) but after a few hours it was because I wanted to unlock the Kraken Bolts for it. Then once I had unlocked the Kraken Bolts I wanted to unlock the Targetter (Which I still haven’t it being bloody hard to do). I was refusing to let myself play with any other class or weapon combination because I wanted to unlock one of the rewards (which I suspect once I had done I would use for two games and then try to unlock something else).

My quest to unlock everything for my Bolter was starting to affect how I enjoyed the game. It was no longer enough that I scored a kill or if my side won the game – if I hadn’t gotten at least one Bolter Kill Streak out of the game then in my eyes it was a failure. I was completely single mindedly focussed on unlocking content to the point where I had stopped enjoying the game and was playing in a way that was completely selfish and detrimental to my teams overall effectiveness (if it wasn’t for the fact that everybody else was playing this way I’d feel a bit more guilty about it). I’m now making myself play with whatever I want to or feel the situation demands rather than trying to unlock specific items one at a time. I may unlock the content eventually but I will do so in a much more organic manner over a longer period of time. Above all I’m having fun again.

Now I know that one of the reasons for having to unlock content is to ensure that the player has learnt how to use the pre-requisites sufficiently – but in the majority of cases the unlocks exist to keep people playing a game they may not be enjoying because they have sunk a lot of time into it and would feel horrible if they just abandoned it. Unlockables are more often completely cynical methods of trying to extend playtime (and coming from AAA console development I have been in the meetings where the solution to a game being 4 hours too short is to add some hidden objects that unlock concept art so I know it happens). In some instances the addition of unlockable content can completely undermine the entertainment to be gained from just playing the game.

Waves is about enjoying the game itself. It rewards good players with increasing difficulty rather than decreasing (which is often what unlocking powerups achieves) – the better you get at the game the harder the game will be in response. It’s designed to keep you in a sweet spot where your abilities are being pushed just enough to keep you from being bored but not so much as to make you frustrated (See Flow) – the score is only there so you have feedback on how well you’re doing (and also so you can gloat to your friends).

Waves can never be completed but it can be exhausted. It is not possible to “100%” the game but it is possible to reach a point where you feel that either you aren’t going to get any better at it or that you would rather spend the time doing something else. I don’t mind if you get bored of Waves and stop playing as it is in fact inevitable that you will. I just hope that while you are playing it that you’re enjoying it for the experience of playing, learning and improving rather than because you persevered long enough to unlock everything in it.

Thankyou for trying the Waves demo (You have tried it right? If not go here and do so then come back).

The demo has been available for a little over 24 hours now and the feedback so far has been great.

However the Demo has had some issues (one of which I fixed last night as you may see in the post below this one).

If you are having issues then first try the following steps:

Run the game as administrator. If this solves your problem then let me know in the comments.

Reboot the computer. Yes I know it sounds obvious but it does solve most problems.

Install the latest video drivers.

Redownload the demo, uninstall it and then reinstall it. Sometimes files get corrupt during download or during the install. It’s unlikely but it can happen.

If you still have trouble then you may be suffering from one of the following issues that I hopefully will have fixed later tonight.

If you were having problems with the demo on Windows XP then I urge you to uninstall the game, download the latest version and install it again. All the problems with Windows XP should now be fixed. I am however sorry to say that without making the installer about 200meg larger you will still have to sit through the .NET install process. You can thank Microsoft for this.

Crashing on Startup – If you are on Windows XP then you need .Net Framework 3.5 SP1 try installing this and see if it fixes it.

In terms of low-framerate issues then I can only recommend that you go into the video settings and turn off Distortion, Ambient Occlusion and Bloom and reduce the resolution. It won’t look as pretty but if you are struggling to hit 30fps this should help. If you turn all of these off and you still have problems then I’m sorry but your graphics card just isn’t powerful enough to run the game properly and there is nothing I can do about that.

For the record I developed the game on a Geforce GTS250 and it runs at 60fps with no problem with everything on. It runs at 30fps on my laptop with an ATI 5470 which if you look at this chart is actually pretty rubbish. Anything better than the 5470 shouldn’t be having any problems at all.

I hope everybody is enjoying the demo and if you are having any issues that I’ve not covered here then let me know in the comments. Part of the reason for the demo release is to find these problems so I can make sure they don’t happen in the full game so thankyou for your patience if you are having issues.

Of course if you aren’t having issues and want to tell me how great everything is then you can comment too 😉