Game Design, Programming and running a one-man games business…

Sanding the woodwork

For eight years I worked in a boatyard.

Thats not the start of a novel, or a poem, I really did, which might seem weird if you know me as a software developer or game designer. But its true! It was mostly part-time, but multiple days a week, and it was crushingly hard work in ways I wont even begin to list here. This is a post about motivation, creativity and getting stuff done. Like a lot of my blog posts it will seem on a tangent until I attempt to bring it all together at the end. So stay tuned :D.

Almost all of the boats we worked on were clinker-built Edwardian Thames Skiffs. Basically 20-30 foot wooden rowing boats. The details don’t matter, but one of the most common jobs was to sand the woodwork for the whole boat, and give it a nice new coat of varnish. This was the easiest job we did, but also at the same time it was the most boring. Apart from anything, it was also very incompatible with the job I had the other 50% of the time which was part musician/session guitarist/guitar teacher. If you have played electric guitar you will know you get very helpful toughened callouses on every left hand finger. They are essential. They are also very easy to totally rip to shreds with sandpaper. I was constantly tying my fingers up with masking tape to prevent this…

Anyway…

One day a fellow worker at the boatyard decided to give me his top tip on how to approach the task of sanding a skiff. This job would take maybe 2 days. I listened with interest as he said “You start off by doing all the really awkward bastard bits that are annoying, and then when you finish them, you realize that the job is done.” He paused. “Because they are all fucking awful bastard bits”. This was funny, but funnier still because I actually thought at the start he was giving me practical advice. Working in a boatyard is grim. We milked any humor there was.

Me sculling(not rowing!) one of the boats we worked on

The point of this anecdote is to try and convey how boring, and hard and more than anything unsatisfying this job was. A wooden boat that has had every surface properly and smoothly sanded in preparation for a coat of varnish is not a massively satisfying thing. Its not like stripping dirt away to reveal the ceiling of the Sistine chapel, its not something that passers-by stop to gawp at and exclaim ‘well thats some decent thorough sanding work my good man!”. Nope nobody gives a fuck. Why did I keep doing this for maybe 16 hours? Because I needed the money to buy food.

£2.50 an hour

Yes, I’m old, and its probably better paid now. But anyway, its a very very long boring day, and there is NO satisfaction from the actual work whatsoever. It did not require any brainpower whatsoever. I did it for eight years. Thats a long time. Also, if you think that you would mostly be on twitter or having a coffee break: no. No mobile phones then, and 2 allotted tea breaks at 10.30 and 3.30PM. Apart from that, you better be fucking working or you’d be yelled at and maybe have sharp things thrown at you with great force.

Ok, I get it, this sounds like a four yorkshireman sketch, and a typical boomer ‘in my day’ whine about how work was harder in my day etc. But actually its totally not that. Its about understanding that some parts of the best jobs in the world are also like sanding down the woodwork.

When your WHOLE JOB is doing tedious unexciting unfulfilling drudge work, you kind of just accept it and get to fucking work. In a way, this is EASIER than many creative and fulfilling/rewarding jobs. In a creative job (like game development), there is a ton of really cool shit. When I made Gratuitous Space Battles, I spent a lot of actual work time stepping through space battle clips from Star Wars, deciding on the colors of laser beams, and designing futuristic space weaponry. It was awesome. But in-between all that cool shit, there was also stuff like coding a UI to save/load ship deployments. Coding a system to adjust the UI to fit at different screen resolutions. There was code to handle different fonts for each language. There was code to handle online challenges and error handling from PHP and SQL. This was the woodwork-sanding stuff.

When you can choose to do the cool shit, or sand the woodwork, almost everyone does the cool shit, and just leaves a bit pile of sanding to do ‘at some point’. When you run out of cool shit you are then faced with a huge ton of tedious crap you have to do in order to finish the project.

Don’t do this

Take my sarcastic boatbuilder buddy’s advice. Sand the fucking woodwork. When you start work, when you are motivated, when you are excited, do some of the grunt work. Code the error handling, optimize the rendering. Check the game runs on min-spec. Do the multi-language support. Do the steam API implementation. Do the options menu. Do the level editor. Do the modding support. Do the stuff you know you wont want to do later. This is the way. Then when you feel your motivation flagging, go decide what color the laser beams should be.

Designing a system of orders for units in a war game

So… I am sort of working on a game as a hobby. It may never be released. But anyway, lets pretend its a Napoleonic war game.(its not). That allows me to at least talk in non vague terms. I am stuck slightly in the way I am designing a core part of the game.

Imagine a game where you have to place down a large number of units, on a map, and give them orders. The game then plays out the resulting battle against a pre-placed AI enemy. These days the kids call that an autobattler, but AFAIK I made the very first one (Gratuitous Space Battles), so I didn’t have a name of it back then. Anyway…

The goals in the design for such a game are actually quite complex. The system needs to be intuitive, so it can be played easily by a fairly casual gamer, but also provide depth where possible, must ensure that the way things play out goes as expected by the player (they feel like they had real control over events), and must result in a visual outcome that looks appropriately cinematic, and not just like a bunch of idiots in a bar room brawl. (This is my #1 critique of all the total war games, that seem to descend into this). These goals are actually quite complex and conflicting, and I have spent a lot of time and code trying to reconcile them.

Formations

One of the clearest places where stuff falls apart is when it comes to formations. If you have a long line of units, and declare them to be a formation, then you are expecting them all to operate as one. My solution for this was to make all the units but one the ‘dumb followers’ of this one independent formation ‘leader’, which would be free to care about other orders. If the leader moves forward, everyone in the line also moves forward. Sounds simple enough to design & code right?

Nope.

Firstly, the leader may die. In that case we need a new leader, so the system has to hold an ‘election’ to pick the most appropriate replacement. Initially I chose the largest unit at the time of election, but you then encounter issues where the lead ‘unit’ may weaken down to 1% health, but is still the leader. Ideally there are periodic elections to ensure ‘leadership’ is tied to current strength, but this needs to take into account units healing and not result in leadership ping-ponging etc. Also in my game the ‘strongest’ unit does not necessarily visually make sense for deciding who leads and who follows. Just picking a leader is complicated as it is.

Its amazing what good condition the grass is in after a thousand soldiers have cartwheeled around on it to form patterns.

Secondly, how is the formation maintained? A line of units that represents a column in the Y axis looks good at the start of battle, but is the formational-consistency based on the initial x/y offset or does the line ‘wheel’ around the leader? If the leader turns to the left are we now doing a wheel adjustment? and if so, shouldn’t the leader be the unit in the middle, not the strongest?

Thirdly how do we handle gaps? If half the formation is destroyed, does our line now close ranks to form a thinner line? a shorter line? or do we just ignore the holes and continue as a depleted sparse formation? What would the player expect, and what looks coolest?

Engagement Range

This is the one that has just stumped me and made me write this blog post. For example, lets presume that your unit is not in a formation, but it has an ideal range to engage the enemy, due to its weapons, of 800 meters. How do we take into account this engagement range (and maybe a minimum range of half this?) when deciding where on the battlefield we need to be. So for example, a unit of cannons is looking all over the battlefield, thinking ‘where is the place I should head to now?’. How does it decide where to go?

The first system I have coded looks ahead and slightly to each side, and evaluates every square it could move to and gives them a score. For each square, it looks at all the units, in all the nearby squares to this potential target site, and counts up the values of all the potential targets for each square. There is then some minor tweaking to penalize far-off squares, and a hellishly complicated system of ‘reserving’ and ‘occupying’ squares so that the units don’t all end up stacked on top of each other. All of this code is written, and to some extent it seems to all work but…

…you then get the Total War bar-room brawl situation because it turns out that with this algorithm the ideal place for every unit is to be slap bang in the middle of the battle where it can shoot at absolutely everyone. Hence the big furball of messy collision in the middle of the map.

My first thought is that this is just something needing a minor tweak. If units heavily prioritized locations where enemy units were within a certain percentage of the engagement range (in this case say between 600-800m) and actually penalized places where enemies were within that range (say under 600), then you would get the long range units more sensibly placing themselves at a nice aesthetically pleasing distance where they could shoot at each other in a classic war movie style.

I can throw a banana further than this. WTF is their engagement range set to?

The Bigger Question

However, I am starting to wonder if that is all a load of bollocks.

There are three different scenarios under discussion here. The military reality of what makes sense in a real war to win a battle. The movie version, where the goal is to look cool, and the game version where the goal is to be fun, and intuitive and satisfying to tinker with as well as watch. I have definitely been starting from a real military position, which is at the total other end of the spectrum in terms of where I need to be (a fun game!).

One of the primary drivers of the code I have written so far is that it is supposed to seem like it makes sense for military units to do this. But as a game, I kind of don’t really care. Games are not vaguely concerned with the inconvenient truth of military history. We want things to feel fun, even if that means the choices make little sense. It might be TRUE that a line of 10 gatling guns on a hill could obliterate an entire roman legion, but after seeing it once, is it still fun? Not really. What wargames like this focus on is a sort of block-puzzle game, where carefully mixing and matching and positioning units ‘unlocks’ a solution, which is a complex feat of ‘combined arms’ resulting in a close victory.

One of the great things about modern gaming is we can make some really cool special effects, and use massively powerful video cards to draw amazing spectacles. That takes a bit of the pressure off of designing a game that is so intricate in the abstract. I used to play a tabletop war game called Starfleet Battles. Its LUDICROUSLY complicated, and a single turn can take an hour with a group of players. The ‘fun’ comes from the complex interactions of highly detailed systems. It has to, because the actual experience is just hours staring at pieces of cardboard on a map, hoping nobody sneezes.

I was ludicrously obsessed with these games back when I was young and before electricity was invented.

Simplification

I’m not exactly known for simple games. But there are certainly companies that outdo me. The Hearts Of Iron games are just way beyond me, in terms of the amount of stuff to keep track of, and Eve-Online has become a game seemingly more involved than life itself. These games also have 100+ developers working full time, and this game is a hobby project I am spending an hour or so a day on, so its not going to go in that direction…

…and genuinely I am starting to consider the idea that my game should more resemble a simple puzzle game more than a complex uber war simulator. The amount of variables will still be high, and the outcome very pleasing. I think the cool ‘fun’ element of games like this is ‘I tried this… it failed, but was an awesome battle. I’ll try again’. It shouldn’t involve multiple hours of tweaking individual units decimal points in the AI decision making. Maybe the whole army is always just ONE formation, and it just moves right at the enemy as a single cohesive pattern? Maybe all the complex route-planning AI is utter bollocks? There are definitely a ton of much simpler games out there that seem to do this. I wonder if thats what a ‘roguelike deckbuilder’ game is? (I am sick of the term, but still don’t really understand what it means tbh).

Anyway, it might all be academic, as I might get bored and make something else. But I might not :D.

Emotional game design

It might seem weird for a self-diagnosed autistic game dev to talk about emotions in game design, but that would be incorrect. Its not like I don’t have emotions, in fact I have way too many of them, way too unpredictably! Like Vulcans. Anyway, this is a topic that I think doesn’t get enough attention when discussing game design, so I thought I would have a go at it.

ALL ENTERTAINMENT IS EMOTION

Not quite the classic ‘always emotion is the future’ yoda catchphrase, but close enough. For a very long time I have been aware that all entertainment is about emotion. It seems to be what we need as humans. We want to trigger positive emotions, and have controlled release of safe amounts of negative ones. We eat cakes to get the happy feels, we go on rollercoasters to get a safe dose of fear. True of all music, all books, all movies. Some make you cry, some laugh, some scream with fear. Time spend trying to be entertained that is not accompanied with an emotional release likely means the creator of that piece of entertainment has failed.

When you get quite into learning how to create entertainment in a field, you can very rapidly descend into very technical analysis and very clinical and seemingly unemotional advice regarding how best to do that thing. Novelists read about foreshadowing and ‘show don’t tell’, filmmakers learn about color-grading and dolly-zooms, and game designers learn about ‘player verbs’ and ‘design pillars’. To some extent, its all necessary, as you do need to know the basic building blocks of how most pieces of entertainment are made, but I do fear that people get so stuck into the weeds of the technical aspects of game design that they forget the core aim.

Normally at this point in an article like this, the writer would go for the classic phrase, perhaps in large bold type;

FIND THE FUN

But Actually I think that is bollocks.

The problem with ‘find the fun’, is that it assumes that the game’s purpose can be summed up as ‘fun’. Games are apparently ‘fun’ and ‘fun’ is the most important thing. When assessing a game, people often ask their friends ‘is my game fun?’ because its assumed that this is the purpose. Maybe not. Is chess ‘fun’? its arguably a game that teaches you how to wage war. Is watching Schindler’s list fun? I definitely hope not. Is ‘The Shawshank Redemption‘ fun? Is reading Anna Karenina fun? Is listening to ‘Raining Blood’ by Slayer fun?

Games are no better or worse or more worthy or less worthy than any other form of entertainment. Its fine to make playing a game stressful, or harrowing, or to make a game that makes someone cry, or furious. If you make a game about the holocaust, it SHOULD make the player furious. Making a game that gives people nightmares is a perfectly reasonable decision. We don’t criticize other media for a lack of ‘fun’ by default, and we should treat games no differently.

BUT

A game will fail if it does not generate an emotion. That emotion can include a sense of ‘flow’ which is basically the emotional state that combines relaxation with satisfaction. I am currently playing ‘Regency Solitaire 2’ by Grey Alien Games. It makes me feel relaxed, and also gives me slight happiness or sadness boosts depending how the cards fall. The game is crafted, from its art to its sound effects to its music to convey a non-threatening, relaxing and familiar mood, and it does it well. No surprise that the game’s creator, Jake Birkett is a very calm almost zen-like guy.

Far too many words are written in academic circles about game design, which focus on the mechanics. People say things like ‘Primary Ludic Structure’ and are not laughed out of the room. There are lots of diagrams, and lots of spreadsheets, and numbers, and lots of advice on how to BOOST PLAYER ENGAGEMENT and how to design TIGHT GAMEPLAY LOOPS. I feel a lot of this stuff is misplaced.

If you have the time, seek out the introduction to ‘the trilogy suite‘ by Yngwie Malmsteen, and also the first guitar notes in ‘shine on you crazy diamond‘ by Pink Floyd. I’m a guitar player, so these are natural choices for me to make a point. Yngwie packs about a thousand times (at least) as many notes into a minute of music as Pink Floyd’s Dave Gilmour. Both of the approaches ‘work’ and have become classics, not because of what notes they pick, or what the time signature is, or what chords they are played over. They both work because holy-fucking shit they are emotional-as-fuck, but in wildly different ways,

Yngwie’s guitar is super-fast, super-accomplished, and incredibly showy. Its a testosterone-fueled display of ability, the equivalent of standing naked on a pedestal and yelling proudly I AM DEFINITELY FUCKING HERE. By contrast, David Gilmour uses a tiny handful of notes. Subtle bends, very clear tone. Its both powerful and sad. It sounds like someone expressing grief, or huge emotional conflict, but unable to express themselves openly. Its the guitar version of sobbing in anguish.

Now you can just google for the notes of both those pieces of music, and given 20,000 hours practice, you can probably play them. Youtube is littered with people, often about fifteen years old, annoyingly, who can do just that. Here is one:

But the point is that ITS NOT ABOUT TECHNIQUE. The aim is of course to be something fresh and new, and special in the way that the original composers of those pieces of music are. How do they do that? How can you create something like that? Will cliff get back to discussing games soon? The thing is, both pieces of music are definitely hugely emotional, and personal and they come from the very sincere, very confident, very intimate desire for their creators to broadcast their emotional energy at the world. If you watch an interview with those two guitarists, you will immediately know who wrote each piece. Trilogy suite is not ‘written by’ Malmsteen, it IS Malmsteen. Shine on you crazy diamond IS Dave Gilmour. They didn’t try to put together popular pop songs by studying what was popular, or catchy. They just transferred their emotions from their heart to the world directly and unashamedly through their music. These musicians did not ‘pick hot genres’. Yngwie couldn’t play country and western if you put a gun to his head. Dave Gilmour couldn’t write a kpop song for a billion dollars.

…Yeah but games?

This is why I think we have a lot of soulless, uninspiring, even bad big AAA games now. When a game costs $400 million to make, then there is ZERO chance you let a single individual call ALL the shots. Everyone has to weigh in. The next big mega-franchise is not the distilled emotion of anybody. Its just a focus-group-designed and committee-approved venn diagram of core market segments. It lacks soul. If you are trying to make a decent piece of entertainment, you need to avoid becoming this!

I’m not a good game designer by traditional measures. I suck at balance, I suck at introducing mechanics to the player in a nice way. I have very little sense of what fits together in terms of clashing art styles. I have not played a whole bunch of classic games that are often referenced in game design circles. I do somehow manage to keep making games that sell lots and lots of copies though, and I think its because my games, even though they seem like they are not, are extremely emotional and passionate.

Democracy is far too complex a game. It does not slowly introduce concepts to the player. It is unforgiving. It has death-spirals and virtuous circles. Some levels are too hard, some are too easy. At first glance, its an impenetrable nightmare of overwhelming complexity. THATS THE POINT. The game is designed to mimic, as closely as practical, how it would feel if you actually did become president. Thats a job that *is* overwhelming. Often unfair, sometimes impossible to win. Some countries must seem like they are on stupid difficulty settings. The thing is, it encapsulates how I feel about politics and economics, and how complexity is fundamental to the experience. As a designer, I LOVE the complexity. The player often feels like everything is insanely interconnected, and that they are barely managing to put out fires and hope for the best, with all their hopes and dreams dashed to ashes the day after an election victory. That feeling of it all being a bit of a nightmare, is not a game design flaw. Its the point.

Gratuitous Space Battles is also too complex. And too big. There are too many ships, and ship modules, and its all too complicated due to the staggering amount of combinations. Its ludicrous. It is, at its heart, totally and utterly gratuitous. It is not a serious game, its one that should awaken the 13 year old boy who has seen star-wars a hundred times in grown adults. The point of the game is not to carefully strategize your way to victory. The point is to amass a ton of ships with different color lasers, watch them explode and then shout FUCK YES at the monitor as an adolescent expression of energy. Its puberty with lasers.

Maybe you like one of those games, maybe not, but when they ‘work’ they work really well because they are PURE. They are what one person (me!) wants the game to feel like. Not ‘play’ like, but FEEL. There is no POINT to games but to make you feel, or help you feel. Thats what entertainment is for. I’d rather my game’s angered people than just left them emotionless and untouched.

The most successful game I published by another designer was Big Pharma. The designer was young, chirpy, happy, upbeat and optimistic. His personality was not mine. He liked games by nintendo. I had only ever played one (a star wars one on gamecube). I thought the art style for the game was too simple, too flat, too symbolic. I thought the simple way in which the gameplay elements clicked into neat place was unrealistic, felt too easy, felt too ‘resolved’. The player could feel happy, and content and satisfied. This was not me. But I let Tim make the game he wanted to make. Its a Tim Wicksteed game. You can tell. Playing that game does not feel like a game I made. It’s also a very popular game, and did very well. I could have waded in there with my strong opinions and insisted on a less cute look, a more industrial feel, and changed the mechanics, but I deliberately let Tim make the game a Tim game.

…of course I then got all of my ARGH about how I would have made it out of my system by doing my take on the factory-sim idea, which is called Production Line :D.

Anyway. This is my way of trying to convey that you can NEVER put too much of YOUR emotion into your game, and you should NEVER let other people try to mitigate, or dilute the emotional content of it. If people say ‘this part of the game is too depressing’ or ‘its a bit fatalistic’ or ‘I hated seeing this character die’, then you should think VERY carefully whether or not to listen. Also, right from the very start, you should know what emotion your game primarily conveys. It doesn’t have to be a positive emotion, its fine to make a sad game, a stressful or harrowing game, or even a game that makes you angry about injustice.

Just be very careful of the game-design equivalent of having produced Schindler’s list, and then someone pipes up and says ‘couldn’t it be a bit more upbeat’? All entertainment should be driven by the emotional force of a single creator. Anything else risks becoming mediocre.

Is it harder to sell games on steam in 2023?

I had a chat today with a very knowledgeable fellow indie game dev. He asserts that it is way harder for a game dev to sell a game on steam in 2023 than it was in the past. My gut feeling was that he was wrong, but who needs guts when you have data and analysis? lets find out.

I dug around to find out what I could. There are various sites listing the number of games on steam, but the most interesting data I found was listing the games released on steam, but also breaking down the more recent years into games that have certain community features enabled, and games that did not. Steam requires a certain amount of sales and interest in a game before you can do things like have trading cards. I suspect this is a good proxy for what games are serious commercial releases as compared to student games, hobby games, and the sort of games that are made part-time on a low budget. The question I am interested in was whether or not there is more ‘genuine competition’ for full time indie game devs now. With this is mind, I think its far to ignore games that don’t meet the trading card threshold.

This required some stats mangling by me, because it took a while for steam to realize it needed to introduce this measure, so unless you fade-in the effect of the threshold sensibly, there would be a sudden peak and then dip. I did my best, and ended up with a chart that looks like this, for games released:

This goes from 2006 to 2023. I’m too useless on a laptop with office365 to get the horizontal axis right :D. This definitely shows a huge jump in the number of games, but this is clearly not the whole story. Steam launched just in English, with just valves own games. It took a while to add ANY new games, and in that time the number of users shot up. People might not remember but I recall how much everyone HATED steam initially. People really resented having to install it.

Over time, obviously steam has become huge, and more global. I dug out some stats that gave me the peak concurrent users for each year. Not perfect, but an interesting proxy for steam usage, and must be vaguely related to how many active users the platform had… Anyway, adding that to my chart allows me to then calculate the ratio of peak concurrent users to games released, which gave me a new chart:

I think this is more interesting. That peak is around 2012, and the low point to the right is 2017-2019. This data is far from perfect, because obviously people can continue to play games from previous years, and the accumulation of games is definitely a factor. However, I would argue that the tendency for people to buy games released a few years ago is also good news for developers, as it means your game will have a long tail and continue to generate revenue.

So a very rough hacky analysis suggests that peak-time to release a game on steam may have been 2012. It got a fair bit harder since then, but has been getting easier for the last few years. Obviously this is only a tiny bit of the picture though, as there is so much more to consider.

Steam sales changed a few years ago, due to laws regarding refunds. Because steam was forced to offer a refund in the event that a recently purchased game was suddenly cheaper, the whole concept of flash-sales and one-day spikes during steam sales became history. Gone are the days where you would have your game 90% off just for one day. That may have influenced how gamers value and buy games. I do wonder if the average price of ‘professional’ games has gone up since those days? Gamers like the refund policy, but it also made steam sales more muted, and more predictable, with less crazy discounting.

I do think its VASTLY easier to make games now. There is Unity and Unreal. There is also Twitch, Twitter and YouTube. Streaming is a huge promotional opportunity for game devs, Steam now has reviews, and video uploads, and trading cards and achievements. These have not been around for ever! Plus steam supports a ton of languages, payment providers and currencies. The available market for your PC indie game is now colossal. Big hits are now HUGE hits, because there are just so many more people available to see your game if it is good. I do not have concrete data for just how much money the first 100 indie games on steam made, but I’d wager its not much by modern standards.

I’m guessing Factorio made a LOT more than Rag Doll Kung Fu. Ditto Dyson Sphere Program, Prison Architect and RimWorld. It may seem insane that there was a time when just releasing a game on steam got you front page coverage for DAYS, but there actually were not that many people seeing that page! For one thing, not everyone had broadband, and certainly not uncapped broadband.

On balance, I think making a game in 2024 is hilariously easier than making a game in 2008, because of the tech, the price of tools, the ubiquity of tutorials and communities. When I started, I had to buy physical books about C++ and game engines. I followed the blogs of every indie game dev online, because there were really not that many of us.

The flip-side is that it is much harder to get noticed as a developer in 2024. I accept that. But this is just a change, not a deterioration. All that time you save not having to work out how to code a particle system in 2024 needs to be put into promoting your game to people. Its the same amount of hours for the same reward, you just have to work differently. Maybe. YMMV.

Some food for thought: 14.43% of Steam users are from the United States. There are more than 30 million Steam users in China. If you are making a puzzle-platform game or visual novel, and its only in English, then yes, you might struggle a bit. I find that ‘indie dev twitter’ (which I mostly ignore because its all identity politics), is overwhelmingly made up of US or UK game devs making a small unity game in English. They generalize massively from that experience, but I don’t think its the whole story.

Gratuitous Space Shooty Game is now on steam

Bit of a low-profile sudden launch, because its only a little fun hobby game. But I do think its rather good, and it is also super, super cheap, especially with a launch discount. So go grab a copy :D Its fab. Try to beat it on WTF difficulty level.