November Devblog

Taking a bit longer than normal to get the Devblog up for November as I was messing around with a new format for the video but it was taking so long I ditched it for the old format.

First up are 3 new Primary Weapons; the last of the Primary weapons to be implemented from my current ToDo list.

  • Sniper Rifle - High damage beam weapon. It will pass through anything it can kill instantly until it hits something it can’t like a wall or a Boomer. This weapon prompted the ability to zoom out with the camera that you can see in the video.
  • Grenade Launcher - Fires an explosive projectile on an arc that detonates on proximity with an enemy. It can bounce off walls and around corners.
  • Burst Cannon - Designed to be fired in bursts. Spews bullets in a cone but uses energy to do so. If you run out of energy the rate of fire is significantly reduced.

November saw the implementation of the majority of the new Support Items in Waves: Arena Tactics.

Support Items are equivilent to the Slomo feature in Waves and are bound to the same buttons. You can equip one such item before you start playing from the number you have unlocked.

  • Slow Field - The slomo feature redesigned for multiplayer. It now only affects an area around the player using it rather than globally.
  • Healing Aura - Converts energy into health for everybody inside the bubble.
  • Energy Shield - Instead of damage coming out of your health it comes out of your energy reserve. Affects nearby team mates with damage they take coming out of your energy.
  • Shockwave - Knocks nearby enemies away from you.
  • Cloak - Limited invisibility. Firing your weapon deactivates it early and it has a cooldown after it deactivates before it can be used again.
  • E.M.P - Huge blast that stuns enemies and empties the energy reserves of everybody inside it (including yourself).
  • Teleport - Tap to drop a beacon, hold to be teleported to the beacon. Uses all of your available energy in the process.

I also added two new Superweapons.

  • Gas Grenade - Like the Grenade Launcher but instead of an explosion it releases a cloud of gas that eats away at enemies within it as well as obscuring their vision and slowing them down.
  • Proximity Mines - Visible only to the player that dropped them these mines take a moment to arm but once armed they explode when an enemy gets close.

December will be pretty light on updates due to the Holidays and the fact that I’ll be mostly working on a Kickstarter for the game so I can actually afford to pay an artist and sound engineer in the new year.

For now if you want to support the game then feel free to buy a few copies of the original to gift to your friends and family on Steam!

DevBlog - Rezzed and The Slump

How do!

So Rezzed is in the past and I was there! I ate lots of over priced convention food from wet trays and saw lots of indie devs looking incredibly knackered.

I don’t normally go to games conventions as a punter so it was an odd experience for me. My prevailing thought at these things is normally “If I have to answer the same questions again I’m going to kill somebody!” so bear that in mind when you go to these things. That guy in the studio T-Shirt has been asked all of those questions a hundred times already - try and come up with something new or just engage them as a person not just a walking brochure.

So as a punter what did I think about Rezzed? Well let’s explore that with a bullet point list!

  • Bloody hell this is a sausage fest.
  • Very little in the way of Merch.
  • Occulus Rift is the future! Assuming you don’t have a Lazy eye like me and my girlfriend then it’s a vomit simulator.
  • Sir, You are being hunted is going to be an amazing game that will sell incredibly well.
  • Revenge of the Sunfish made my brain go “What? Wait.. WHAT?!”
  • Where are the girls?
  • Hotline Miami 2 is basically Hotline Miami again. Kinda disappointed.
  • El Rancho!
  • Sunday was better than Saturday due to less people so I got to play more games particularly in Leftfield as I don’t like waiting.

Overall a lot of fun was had. I also got to handle a PS Vita for the first time and if anybody at Sony wants to talk to me about porting Waves to Vita then I’m sure I can work something out as I believe Unreal 3 works on Vita.

One thing that stood out was how many penniless indie devs had booths. I assumed that a booth at Rezzed cost several thousands of pounds to arrange but quite a few of the devs seemed to be on the very poor end of the scale (where I live) yet managed to pull together the cash. Either it cost a lot less than I thought or they are doing much better than they appear.

Lastly the most important thing to come out of Rezzed was some much needed inspiration. I’ve been in a slump for the last 3-4 months where each line of code comes grudgingly and slowly. This is largely because I’m at a point in development where I’ve done all the fun stuff (from a programmers point of view) like solving multi-player and procedural generation. All that remains is what is on my schedule and everything I have to do is pretty much known now and that tends to result in me grinding to a halt.

There are more interesting things I’d rather be doing than just working through a list of tasks and Rezzed has given me a bit of kick to work through that list and get something worth seeing out into the world. The first step of this was determining if my game was fun (it wasn’t) and then working out howto make it fun (more rewarding exploration as it turned out).

As always I am on the lookout for artists and sound designers particularly if you are in the UK so if you are interested drop me an email at [email protected].

Tara!

Developer Blog: The Infrequentness

I really should hire somebody to do all the non-game-making bits of this business for me as it seems I’m terrible at them. If you want the job you should be warned I can’t afford to pay you at all.

So here is a devblog post that is long overdue because I got distracted by basically everything on the way.

Studio Update:

I am still not homeless or starving! However the odds of me releasing a new game in 2013 are slim and as sales of Waves are no longer enough to support me through to 2014 I’m probably going to have to find an additional income source. I see there being two options that don’t take away from development time, Kickstarter and Steam Early Access. I’m investigating both of these at the moment.

The New Game is indeed a new instalment in the Waves universe. I say that instead of Sequel because the gameplay and focus of this new game is quite different. Where Waves was all about high scores the new game is all about exploration and co-operation. It will have an online co-op mode for 2 (maybe 3) players which is actually the focus of the game. I can say this with confidence now because online multiplayer is in and working and actually has been for about 6 months now.

My current task list has roughly 6 months of work in it just to reach beta and that’s not factoring in all the art and sound requirements for it. It’s a big complex game compared to waves and I really hope it pays off in the long run.

Currently Working On:

My current work is in creating the games “Ecosystem”.

Every level is procedurally generated and I wanted to find a way to populate them with entities in an organic way. This is an extension of an idea I had when I worked on the original Warhammer Online back before it went to Mythic. In that game the population of an area of forest would be determined by what was already there based on a dependence hierarchy. You wouldn’t get any Goblins until the Snotling population reached s and you wouldn’t get Orcs until the Goblins reached g etc etc. This meant that areas of the world that were constantly being farmed by players (such as those around the starting towns) would never spawn the really dangerous monsters but extremely remote areas would be more likely to build up.

It didn’t work in reality but that was because players would never leave the small monsters alone so that the nastier ones would spawn even if there was no benefit for them killing them. Players are a blood thirsty bunch.

This version takes entities that must exist in the world for the player to progress and uses them to create things that the player can fight. An example will help:

In order to move to the next level the player needs to get a complete key which is in several parts. They obtain a key part from an “input” node which is spawning entities that move “Data” from the input to the “Output” (Level exit). The entities that move the Data around sometimes drop some as they go.

Data if not picked up quickly will turn into “corruption” which can grown over time and turn into a “Bad Sector”. A Bad Sector will spawn enemies called “Errors” which are very similar to the enemies found in Waves. Some of these enemies will place traps, attack Data Carriers and generally increase the chances of more Bad Sectors forming.

There are several variations on this theme throughout the game that I hope will create interesting levels organically that I can’t fully predict. They are all designed so that in small levels where the player may encounter them very quickly the volume and size of enemy will be lower thus easier to deal with while in large levels the areas the player discovers later will have had a longer gestation period so have more bigger enemies to worry the player.

This is all fairly experimental at the moment and I’m still not sure if it will pan out how I hope but it’s something I really want to try out.

Rezzed:

I will be at Rezzed on the 22nd and 23rd of June. I won’t be exhibiting anything unless people ask if they can setup some Waves machines because they just had some space and machines going spare (which is unlikely) but if you want to meet up and have a chat just get in touch with me in Twitter, Facebook or Email.

Untitled Game

Blue Fire Dawn is on the backburner because making human shaped art is bloody expensive and I can’t afford it.

Fortunately all the work that went into BFD has not gone to waste and it has formed the basis for my new currently Untitled Game (OK it has a title but it’s awful and I don’t want to use it).

Untitled Game is another top-down shmup using a similar art style to Waves (because money) but with a totally different focus. While Waves is all about high scores this game is all about Power Ups and exploration.

It’s a blend of top-down shooting and tweaking your loadout played out in procedurally generated levels.

Currently the game is what I call Pre-Alpha as I’m still building all of the various systems needed to be able to populate the game with stuff but it is playable.

Here is a montage of the 4 types of weapon currently available:

From top left to bottom right: Beam Laser, Shotgun, Flamethrower, Rocket Launcher.

These are just test weapons that I made to test the weapon framework. It’s quite robust and flexible now allowing me to do a lot of different things and chain effects together.

As an example:

A Weapon can fire a random number of exploding projectiles in an arc between 0 and 360 degrees. An exploding projectile can create any number of new actors when it hits something including more exploding projectiles, enemies, explosions etc.

Any source of damage (bullets, explosions etc) can apply status effects to their target that can buff or debuff the target (setting it on fire with the flamethrower for example). These effects can be refreshed by applying them again and can even do things like periodically explode, spawn enemies etc.

So I could create a weapon that fires a projectile that does no direct damage but causes any enemy it hits to explode after a short countdown which damages nearby enemies and covers them in a goo that slows them down and slowly eats away at their health.

I’ve already done a weapon whose bullets create 8 new copies of themselves when they hit something. It crashed the game in just a few seconds.

One problem that I’ve got now is the system is so flexible that while I could create almost anything I am overwhelmed by the potential. I don’t know where to start!

If you have any ideas for weapon types then I’d love to hear them in the comments.

Waves - Ambient Mode

This is something silly I put together quickly which I initially called “Pretentious mode” because of all the “Art” games that think having a substandard shooter is OK if all your sound effects are musical (It’s not. Do some work and make a good shooter as well).

It’s an audio setting not a new game mode where all the existing game sounds get replaced by a musical instrument playing a random note in the pentatonic scale. Depending on the length of the original sound it either plays a Glockenspiel, a piano or an ambient Lustmord-like drone.

It really highlights the 64 voice limit in Unreal which you can hit just by firing the gun at the arena wall so you should be getting about twice as many sounds playing when you get a big explosion but sadly the engine it says no.

Once I remember how to do Steam updates (it being over 7 months since the last one) I’ll probably throw this up as a free update for Waves which you’ll be able to access in the audio settings.

Shaders Are Awesome

If you read this blog regularly then you should know that my next game will involve procedurally generated levels.

Well I’ve been working on that a fair bit recently with a specific focus on finding easy ways to add variation to the level art without adding to the generation algorithm.

This means I’ve spent the last week messing about with shaders. Hurrah!

Shaders are awesome because they are really good at procedural content - adding things like dirt, blood, damage etc over the entire level can be done in the shader without it accentuating the square tiles or seeing a repeat in the textures.

It also generates some pretty awesome wallpapers.

Here is a basic floor shader (Click for bigger):

Now here is that same shader but with some procedurally generated dirt:

Some areas of the dungeon are dirtier than others. This is the dirtiest spot I could find but in other areas you just get some scuffing or the cracks between the tiles have just a small amount of dirt accumulated.

So there we go. Shaders are awesome.

 

Waves: The Postmorteming

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.

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…

Continue reading

On Rolling Dice

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?

Multiplayer is Hard

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.