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

Trying to avoid the small indie valley

Whenever there are business stats released about games, I always find myself fascinated by what seems to be the huge gulf between the amount of money (and sales) the big games make, and…everybody else. Increasingly I get the impression that the mid-tier games, developed by 3-30 people, are just disappearing due to becoming financially nonviable.

In an ideal world, there would be a perfect path that led from part-time bedroom coder with a day job, right through to full-time bedroom coder, to bedroom coder with a few contractors, to smallish studio, to medium studio…to epic/activision/valve.

I don’t think this is the case these days, but I think its especially bad for the ‘small indie’. I think there is a valley between part-time indie and the BIG indie. lets call it the difference between the $10,000 budget game and the $400,000 dollar game.

At $10k budget, you are likely holding down a day job, or doing contracting part-time. You don’t bother with a website (you just use steam or the apple app-store as your exclusive store front). You likely use coder art, or free art or royalty free art, or a friend helps out. Your marketing budget is zero, you attend no shows. You use the PC you owned anyway, and the game is made in less than six months.

Image result for game developer tycoon
screenshot from gamedev tycoon

At that level, even a few sales can help you break even. Even a cheap $10 indie game *can* sell a thousand or two thousand copies without any marketing whatsoever, as long as you are skilled, you picked a decent genre, you did a good job, and you optimized your store page, did some social media marketing, and generally did the guerrilla ‘no-budget’ marketing thing in evenings and weekends.

At the mid-tier (in the valley). Things get tough. You are full-time, and have an office with 2-4 other people. You suddenly need separate work PCs because of the office, and office furniture, and need to pay rent, and office internet costs, and power, and likely some admin/insurance/employment related costs too. You now have a proper accountant charging at least $1,000 a year. You probably have a lawyer if you are American. You are now paying for webhosting, some unity subscriptions, some money each month to adobe, and to a few other bits of software that in 2020 are inexplicably subscription based.

Your 3 people now have no pension in the UK and in the US, no healthcare, so add another $1,000 a month minimum on top for that, and together with the rent blah blah, you are probably paying $2-$3,000 a month before anybody gets paid. Assuming nobody will actually starve, you can easily look at paying $150,000 a year for your people, and you need to get that back.

But hang on! a 3 person team is NOT 3x as effective as a single dev. They have discussions, disagreements, arguments, confusion. They are demotivated by implementing other peoples ideas. They are distracted by someone who slurps their coffee in the office. They want the office cooler / hotter / lighter /darker than anyone else. They are sad because their cat is no longer at work with them…

I guess a 3 person indie team is the equivalent of maybe 1.5 solo devs (at best). But they don’t cost 3x as much, they cost maybe 5x as much.

Eventually, as you scale UP and UP and UP things work out. Your 200 developer team now has 5 people working FULL TIME to make hilarious / amazing / exciting video and social media content that gets your name EVERYWHERE. Your game design and code is top notch because its got dedicated people working on everything. The number of devs who can compete with you is smaller because they simply do not have the scale or the marketing firepower. You can suddenly employ full-time professional HR and business-management experts who can actually handle people properly, so fewer arguments about heat / light / cats. Productivity has been achieved.

Image result for blizzard developers
Blizzards WoW team

I think WAY too many indies are stuck in the valley of financial impossibility. I’m not sure you can survive with a 3-5 person team any more. if you get ‘funding’ from somebody then maybe, or a grant, or some dumb hardware company has no clue and throws cash at you…yeah sure. But purely on the basis of the free-market… i’m not sure it works.

So how am I still going? (before you ask). Well I am a weird edge-case that is VERY hard to replicate. My magic powers are:

  1. Rural location so no sky-high-rent / distractions etc.
  2. Solo dev for most of career so working from home
  3. Back-catalog of pretty big hits, so cash not that much of a problem
  4. Actually earning decent money from stock trading so…see above.
  5. Age 50, child-free, 39 years coding experience, workaholic. Impossible to compete with that combo tbh..

BTW TOP TIP: people often make a critical business mistake. They look at other people doing X at a company and think ‘they are doing X it must be viable’. It often is not. That other company may be in debt/a multi-millionaires hobby/funded by a spouse/some sort of money laundering scheme. Do not think all those 3-5 person indie teams posting online are surviving. They may well be in serious trouble.

Are my numbers in this post COMPLETELY insane? let me know. Whats the running cost of your 3-5 person indie studio?

Social media, Voter Complexity, Anger & Democracy 4

I went to see a production of snow white recently (long story). Anyway, it was good, innovative, at times very funny & very cleverly done. It was also THE MOST WOKE PERFORMANCE ever. I could write an entire book about how woke it was, but suffice to say one of the dwarfs had to be sedated at one point because they temporarily ‘lost their mind’ and talked about building a wall, and keeping out immigrants. There was a lot of talk about recycling, carbon-neutrality, organic tea, the patriarchy, gender-roles, body image and so on.

Did I mention this was snow white?

Naturally the dwarves didn’t do any mining, which I guess was against their eco-agenda.

Now I AM a massive environmentalist, and should have found it very funny, and loved all that, and I’m a remain voter so should have loved the jibes at Boris Johnson and leave voters and brexiteers etc…but it was a little bit painful in places to watch it happen. Don’t worry, I will relate this to democracy 4!

(Some environmentally irresponsible dwarfs)

The problem is, the writers had obviously 100% decided that the audience would TOTALLY agree with them on every issue they mentioned. If you were a brexit-supporter, or a conservative, or against gay marriage, or a conservative, or not 100% into identity politics, you would have hated it, but its fine because they KNEW that people can be basically stuck into two camps now: The liberal, bearded eco-warrior socialist europhile pansexual feminist…and everyone else (who are *bad* people). Their view of the world is a venn diagram where two circles do not even touch.

This is nonsense.

The real world is more complex. You do NOT have to *pick a side* and stick to it. You can absolutely pick and choose. Here are some of my own very mixed-bag beliefs and causes:

I support a 100% inheritance tax (in theory), I support a slightly higher top rate tax. I support limits on immigration, I support staying in the EU. I’m 100% an environmentalist. I’m a feminist but have mixed views on positive discrimination. I am against the death penalty, but have no strong view on fox hunting. I’m for electoral reform, proportional representation, Higher salaries for MPs, against a higher-minimum wage, against rent-controls, pro-choice, pro-legalizing marijuana, pro-sugar tax, anti-gun ownership and so on…

I’m all over the place. I’m 100% environmentalist, 75% liberal (less identity politics please), 25% motorist, 90% capitalist, 65% retired, 5% Young, 1% ethnic minority (ancestors were gypsies apparently), and so on… We represent the way people are all-over-the-place in Democracy 4 in the focus groups like this:

(BTW that is another shot of ‘dark mode’ which some people prefer, still a work in progress…)

My point is, that people are complex. There are not just two camps…or at least there never USED to be just two camps, but we are moving that way. In the US, people seem to increasingly be Woke/Liberal/Democrats OR Trump-supporters. You basically have to pick a side. In the UK we are either remainers or brexiteers…pick a side! And this is silly.

NOTHING about environmentalism makes it a socialist position. NOTHING about animal cruelty is left or right wing. NOTHING about brexit or patriotism, or feminism is left or right wing. Its only a recent phenomena that has taken every issue and tried to polarize it and stuff it into these two violently opposed camps.

I honestly do blame social media. People have become so used to picking and choosing ‘the news thats right for you’, that they are increasingly only fed what they want to hear. If you are a fiscal conservative, you are on the ‘anti-environment’ side, so you get fed FUD and nonsense on the topic, even though in many ways conserving natural resources, increasing energy efficiency, and investing in fuel sources that are free is a very fiscal-conservative point of view.

(Famous right wing prime minister Margaret Thatcher in her pro-EU sweater)

Similarly if you are left wing in the UK, you get fed an exclusively pro-EU agenda, even though there is no real link there. Labour party leader Jeremy Corbyn was passionately opposed to the EU his whole life, and it was seen as a tool of neoliberalism by the hard left, until everyone was told to pick a side, and the capitalists had already claimed anti-EU…

Anyone who thinks you can not be a patriotic socialist or a fiscally conservative environmentalist or a right wing feminist has bought into this stuff. Social media is making it WAY WAY worse. The whole design of social media is to make us all ARGUE and FIGHT and oppose the ‘other side’. Its corrosive. FFS stop encouraging it.

In the last 28 days I did 90 Tweets. That number used be around 300. I’m going to aim for it to be maybe 4 or 5, which will be just links to this blog. Social media is tearing communities apart and forcing everybody to be argumentative and abusive. And like I said before, this is all to make a handful of straight white male American billionaires richer.

Website optimization in 2020

Sooo… in a random moment of surfing a few months ago I encountered an article of the webp format and how it was faster, and how it was a Google thing, and they therefore wanted you to use it. I knew I had a server move coming up (long story) so delayed worrying about it until now…

Basically webp is like a super-amazing improved replacement for PNG that is MUCH more efficient. Full details here, but for example one of the files I converted to webp went from 942k to 189k which is not to be sneezed at. I still cannot tell ANY difference when I look at both images. Sadly wordpress is too useless to upload webp, but here is one embedded:

…and here is the png:

…exactly.

So with this in mind, I replaced some of the larger images on the Production Line webpage with webp equivalents to speed up the loading. This IS WORTH DOING, but its also worth remembering that some Luddites may be using stupidly old browsers that cannot cope with webp, and you need to also have the option of a png for these people. You can do this with some magic modern html like so:

<picture>
	<source type="image/webp" srcset="images/thumb.webp">
	<img src="images/thumb.png" width = "1000" height="563" >
</picture>

That basically says ‘show this webp image, unless you don’t have any idea WTF that is, in which case here is an old fashioned png. All of the attributes for your image still go in the src bit.

That got me a nice speed bump, but some test done both with googles site checker and also the popular web speed test showed I was mainly slowed down by third party stuff, specifically humble bundle widget and youtube embeds. (I embed 2 large youtube videos on that page). This is annoying, but after a lot of fiddling I found a reliable way to get around the slow youtube stuff.

What I did was have 2 identical sized elements on the page for each video. One a ‘panel’ and the other a ‘vid preview’, which was basically a big thumbnail made by me (webp obviously) with a fake play button to simulate youtube. The code in the actual page body looks like this:

<div id="panel">
<table width="100%" align="center" cellpadding="0"cellspacing="0">
	<tr>
	<td align="center" width="1000" height="563">
	<iframe id="trailer_youtube" width="1000" height="563" src="" frameborder="0" allowfullscreen></iframe>
	</td>
	<tr>
</table>	
</div>
				
<div id="vidprev">
<table width="100%" align="center" cellpadding="0" cellspacing="0" onclick="myFunction()">
	<tr>
	<td align="center" width="1000" height="563">				
		<picture>
		<source type="image/webp" srcset="images/thumb.webp">
		<img src="images/thumb.png" width = "1000" height="563" >
		</picture>						
	</td>
	<tr>
</table>	
</div>

In practice what this does is say ‘here is an embedded iframe called ‘trailer_youtube’ with NO source. And here in the same place is a big phat image. BTW if we get clicked call myFunction()’.

Then at the top of the page in the header we add some code:

<style>
#panel, .flip {
  font-size: 16px;
  text-align: center;
  color: white;
  margin: auto;
  z-index:1;
}
.vidprev
{
z-index:2;
}
#panel {
  display: none;
}
</style>

…which sets the z index (bottom to top stacking) of the two panels, and then we need some actual code for when the thumbnail is clicked on, also in the header:

<script>
function myFunction() {
  document.getElementById("trailer_youtube").src = "https://www.youtube.com/embed/IhGTKBAC94c";
  document.getElementById("panel").style.display = "block";
  document.getElementById("vidprev").style.display = "none";
}
</script>

…that code basically grabs the youtube panel, sets it visible, and assigns it a proper valid youtube link, handily deferring any connecting to youtube.com until we need to. it also hides the thumbnail. The result is a MUCH faster page load (roughly half the time).

In addition, I used some javascript called ‘lazy sizes’, to make the loading of some items lower down the page asynchronous, so they wont even get loaded until the visitor scrolls down. source:

<picture>
 <source type="image/webp" data-srcset="images/resources.webp" class="lazyload">
<img data-src="images/resources.png"  class="lazyload">
</picture>

and that requires an extra include:

<script src="./js/lazysizes.min.js" async></script>

The result is pretty good, and raises Google’s estimation of my site speed quite a chunk. That will be good for SEO with Google, and they are basically the only search engine that counts so…yay :D. here is the full waterfall chart:

My year => 2019 <=

I’ve really taken to trying to avoid social media use lately, which came to angry prominence once during the year and again recently during the UK election, so I’m likely going to blog more, and continue to tweet less. Anyway, here was my 2019!

Personal stuff!

We had a few short mini holidays this year, one of which was to Bruge (Belgium) which is a great place to go to because you can just get a train there (no flying! yay!), another to the southwest of the UK (which I drove to), and one long flight, which was to Canada. I always offset my flights, and try not to do it often, but it was justified as a combined holiday, and 50th birthday and biz trip to a games conference. Somehow, I have flown in 2 different helicopters this year. Thats just ‘indielife’ I guess.

By far the best thing I did was fly in a helicopter over the mountains near Banff. Truly amazing, and impossible to convey in mere pictures. It was an expensive treat but worth every single penny. Cannot recommend it enough.

Also somehow, in a drunken moment of panic, I booked a balloon trip (near where I live). This was a bit scary for me, as I dont like heights, but actually it was fine, a perfect day, and good fun. Something I always wanted to do.

I played the guitar more in the last year than I have in the previous ten years (at least). I got back into it a bit. I used to be pretty good, now I just cant physically keep my hands moving that fast, but its still something I find a nice distraction from constant work, and its a cool thing to be able to do now and then.

Charity Stuff.

Our second school in Cameroon opened, and I also re-did the war child thing at Christmas where we donate about $10k a year to children affected by war. Really proud to have done this for so long.

Eco stuff

I took part in an environmental demonstration locally (very low key), and also joined the extinction rebellion London protests, although did not get arrested, but did have a very heated ‘exchange of views’ with a fairly famous climate change denying media-whore who I will not dignify by printing his name. Really glad I attended. Current news makes it pretty clear that events are happening exactly as scientists told us they would. Future prospects depress me :(

Stock-market stuff

I still trade a lot on the stock market. I made some very optimistic trades as a day trader about a year ago, which forced me more and more and more into the red over the last year, resulting in a shockingly expensive margin call where I lost a bunch of money. I have now made every penny of it back, all on a single stock. This is an epic story worthy of its own HBO mini-series but is summed up in this simple chart :D

I am glad I stuck with it :D

Positech

Oh yes…I also run a games company. LoL. 2019 was a fairly stressful but definitely improving year. It was the year in which I made a shocking number of updates to my car-factory game Production Line, and also released not one but two pieces of DLC for it: Doors That Go Like This and the Design Variety Pack. Both have sold well, and broken even, but these things only really pay off over a few years.

As of this moment, the base game has sold a total of 114,000 copies on steam, plus a fair few pre-steam and on some other platforms. Its a $25 game, so thats not bad, plus I have a large back catalog of other games that continue to sell well on steam. We have sold 150,000 games roughly this year, a 24% drop of the previous year, which was boosted by being when Production Line was initially added to steam.

The stress of 2019 company wise has proven to be Democracy 4, which was originally slated to be shown to the public much earlier, but some stuff under-the-hood proved to be harder than expected, so although the current version of the game is now awesome and looks crisp and has some l33t new functionality, we are behind schedule, and probably going to go over-budget. However, I’m now working on it quite a lot, and have currently 1 SFX person and 2 artists working on content, and will very shortly be showing it off to people both on video, and in March at a show in London, which will be interesting.

Its hard to stay objective about Democracy 4. Lost of signs point to this being a successful game, and the ideal game for 2020, but I hate to be too cocky about how a game will do, and the release of any sequel is always plagued by people (normally the loud 0.1%) upset that you have dared make a sequel, or saying its just a re-skin, or whatever. I do dread having to deal with that sort of thing… but its part of selling to the public I guess :(

I expect 2020 will be just purely the year of Democracy 4. its a HUGE game (we rolled 4 expansion packs into the base game), and will likely be our biggest release ‘event’ so far, in terms of people wanting to play it. It will certainly be the most expensive game I’ve ever released. Fingers-crossed it works out, and I don’t look an idiot :D. I am optimistic though. Democracy 3 already looks old, clunky and tired compared to the new game.

Social Media & other Stuff

2019 is the year I clashed badly with social media, and the internet. Not in the usual sense, that if you have known me over the years you will know I have got involved in controversy a lot and drawn the attention of people a lot… This year, I actually managed to avoid that, at least in public.

Certain events during the year (nothing related to me) made me realize just how AWFUL social media is. The angry hate mob was out in full force, directing righteous furious anger at whatever individual or group was determined to be the hate-figure of the day. I’ve seen online hate mobs practically salivating over the potential to drive people to suicide, and its just horrible. Combine this with the mess that is modern politics and ‘fake news’ and people happily sharing stories that are not true, and I think 2019 is the year the internet broke, and became a torrent of abuse, not an amazing place filled with information.

I carried out a few steps to isolate myself from all this crap this year. I quit a newsgroup I’d been in for many years, quit a forum I’ve been on for over a decade, removed all my posts from one I’d been in for fifteen years, deleted 75% of my facebook friends, and left every single facebook group and page that wasn’t for one of my games. I vowed to tweet less, not discuss anything contentious online, and reminded myself I should freely block and mute anybody who is rude or abusive.

I just don’t need, or want any of this. Also its totally optional. A friend of mine has a VERY successful indie games biz and he tweets maybe once a month, and he does write-only, he never even reads twitter. He is a hero.

One of the reasons I intend to blog more and tweet less, is that this blog is mine. Its not even hosted by wordpress, its on a dedicated server. if you are abusive, you get blocked for life, no come-backs, no exceptions. ah… *bliss*.

Things I enjoyed

Succession. TV show loosely based on a fictional Murdoch family. Amazing. Watch it

Silicon Valley. TV show, final series was this year, fantastic, loved it.

The Goldfinch. Great movie. I didn’t expect to like it…not my kinda thing. but it was a very nice surprise.

Samsung stupidly wide monitor. Absolutely amazeballs. Couldn’t imagine gaming without it now.

Company of one. Business book, the joys of staying small.

So yeah…thats my 2019. Hope yours was cool :D

Stability == productivity

I have had to update and change a few things lately, and will be changing a few more things, and it leads me to use on the fact that I generally do NOT change things and how that is *a good thing*.

Due to changes to the pricing of cpanel, my server (yes for historical reasons I still have a dedicated physical server for all my sites) has to switch to a different physical box, and that means a lot of checking, and fiddling with hosts files, and rechecking, and panicking about php and so on…

Also recently my company bank changed their user interface and made a total and utter hash of it, that has caused me no end of admin hiccups and annoyances getting everything to work fluidly again…

…and me and Jeff (co-coder on Democracy 4) will shortly be switching to use git, as a mutually agreed source control system. This will cue no end of gnashing of my teeth and moaning that I don’t know how it works…until I get the hang of it.

In general I have found that from a productivity POV, change is BAD. It is REALLY bad, and you don’t realize how bad it is until you have gone multiple years without changing anything. Production Line is developed with my same trusty engine as years ago, in directx9, with visual C++ 2013, perforce for source control, visual assist, and nothing else changed for years other than my monitor, and my PC a few years ago. I use the same sound engine middle-ware as I use for most of my games, without change, and no other middle-ware at all.

…not quite THIS old…

With a certain level of code experience, and a rock-solid stable setup that *never changes*, making video games i actually kinda EASY. Its just typing. Literally just typing. I started typing for fun around age 8, so you would be amazed how stupidly fast i type now. My wife thinks I’m being sarcastic when she hears me typing but thats the real speed.

When I hear people talking about how an (unwanted) update to their middle-ware has broken their game, or how upgrading to a new O/S or maybe a new dev environment has lost them a day (or more), I just wince. Thats totally unnecessary pain. You do NOT need to port your code to the latest engine, or the latest operating system version, or the latest API. Unless you are working on the frostbite engine, this stuff should not bother you.

I don’t have a vulcan API path for my games, in the same way I don’t have a ‘mantle’ code path either. Why would I? Why would I even use directx 10, let alone 11 or 12. I make isometric strategy games or iconic top-down games. I don’t need ‘ambient occlusion’ or ‘subsurface scattering’. I’m not 100% sure what they are.

has that much really changed?

Nobody will buy your game because it uses the latest API, or because it uses some cool graphical feature (unless…frostbite). Nobody will buy your game because you developed it on the latest IDE, or using the newest coolest system. And your in-house productivity tools? did you change those too? did you start using slack? why?

I chat to Jeff using skype or *gasp* email. When I work on spreadsheets I use Microsoft office, the old school purchased version from 2010. Tell me what features are in the new cloud-based tools that you NEED to make better games… BTW my software subscription cost is trivial, just malwarebytes and….oh thats it.

So my top tip from an old grizzled but stupidly productive game dev… Find a dev environment that works *for you* and then look at changing it maybe once a decade. If you HAVE to. That goes for everything. Get a decent office chair and you will have it for a decade. Get a decent keyboard and you will have it for ages. Don’t change anything, don’t install anything, don’t even move anything, just TYPE :D