At the time of writing, a quick check of stats on steamspy for player unknown:battlegrounds reveals this chart:

A very basic analysis suggests 500,000 copies this month, at $30, minus maybe 40% for refunds/taxes/steams cut gives us:  roughly $9million this month. Total sales stand at 3 million, for a total estimate of $53 million so far since release 3 months ago. Assuming a lifetime doubling of that 9conservative) that gives us about $100,000,000. income.

The developer is listed as bluehole inc, who apparently have about 90 staff:

So the average income per employee there is a million dollars. original team size was 35, so assume that half the money goes to equity holders and its split equally between the 35, that gives them roughly $1.4 million each. In practice thats bollocks, because more likely 80% would be going to the equity holders and I’d guess 90% of that belongs to maybe a handful, at best 4 people? (I have ZERO idea, this is my guesswork), which means company founders are probably getting about $22 million from the game. Include sequels, potential DLC, merchandise and so on, and you can probably round it up to 25 million.

Thats a fuck-ton of cash.

But the problem is, the chances of Joe Indie game developer achieving this are close enough to zero as makes no difference.  There are 348 pages of ‘top sellers’ on indie games on steam. Taking the mid point, and looking at the top game (I wont pick on it publicly, so lets not name it). Its an RPG with Zombies in apparently (that shouldn’t narrow it much :D). Steamspy says…. *drumroll*

3,500 owners. Top price has been $9.99, been out 9 months. Maximum conceivable income is $20,979 to the developer. In practice, as its been on sale, lets multiply that by 50% and get about $10,000.

This game isn’t exactly World Of Warcraft but it has a proper 3D graphics thing going on, positive reviews and a decent capsule graphic. lets depress ourselves with the numbers:

Assume the developer is a single person with no other costs and keeps all the money: $10,000 a year, or roughly 1% of the revenue/employee as PU:BG.

Assume they are the founders/owners/creators and keep all that sweet cash, they earned roughly 0.04% of the equiv person behind PU:BG.

Yes…these figures are very very rough, but I didn’t deliberately pick something bad, in fact I picked half way through the indie top sellers. Are we really thinking they sound so out of whack? This is a WINNER TAKES ALL market. You are either in the top 0.1% of indie game developers, or you are unemployed, with an expensive hobby where you make effectively free games.

This is nobodies ‘fault’. Steam didn’t cause it, Unity didn’t cause it. games got easier to make, and more people got access to PCs, development kits, computer skills and broadband. Its really no different from waiting tables whilst pretending to be an actress, or avoiding admitting you are unemployed by claiming to be a writer. There is virtually nothing I can do about this, and nothing you can do about this, but there is something we can collectively do to at least minimize the collateral damage:

Lets admit that the default position for an indie game developer is pretty much poverty. If you want to make money, maybe one day buy a house, start a family, have a pension, why are you making indie games? You KNOW you are almost certainly screwed right? or to put it another, simpler, TL;DR way:


Now, *some* people don’t flop, and do well. And that *might* be you, but I urge you, go into this job (like any other) with your eyes WIDE open. Your chances of success are incredibly, incredibly small. This is not a sensible career. This is not a wise career move. This is almost certainly personal financial suicide. You may (like me) feel compelled to make games regardless of success or failure, but ALWAYS know the odds. ALWAYS. (Han solo is wrong about his topic). I know people get inspired to make games by reading about the success of some developers (including me), and that’s great, but always know what you are doing. Do not remortgage your house to do this. Do not both quit your job and live off savings to do this when you have kids to support. Do not assume you are different or special.

Treat this as a disclaimer for my blog: You are reading the thoughts of a guy who was coding since age 11, has 36 years coding experience, has shipped over a dozen games, several of which made millions of dollars, got into indie dev VERY early, knows a lot of industry people, and has a relatively high public profile. And still almost NOBODY covered my latest game (in terms of gaming websites). Its extremely, extremely tough right now.


Although in general I’m pretty happy with the design of Production Line, its clear that there are some issues with the way research is implemented in the game. Something I really like is the idea of a BIG tech tree, and players making decision as where to concentrate their resources in terms of competitive advantage. For example, you may focus on production efficiency, or maybe on product range, or maybe on costs, or on high-technology to making high-end cutting edge cars. Different strategies should work.

The trouble is, despite the big tech tree and different approaches, the research-choice decision (which should always be *interesting* as every decision in a decent strategy game needs to be), tends towards more of a nuisance in the late game than a joy. The reason is that research seems to get quicker and quicker, and the costs of doing it become trivial.

At the start of the game, I really need the player to be able to buy some research facilities, otherwise they cannot progress. The problem is, as we go from a tiny little factory to a big one, the cost of ‘one more facility’ becomes relatively trivial. Of course, I can make later techs more expensive in points to research, but you can’t go ‘too far’ in that direction without it automatically herding the player towards doing ‘lvl 1′ techs first and removing that initial flexibility. The flip-side is that if you *not* scale the tech costs, then later in the game, someone who has ignored a specific branch of the tree can normally just go click click click’ and research it in seconds. again: unsatisfying.

FWIW I note factorio has this problem to some extent too, although generally it works better overall because the mechanics of research there are way more involved, rendering the ‘cost’ of the facilities fairly minor compared to the manufacturing of tech ingredients.

Anyway, how do I achieve the following in my design?

  1. Make tech tree choice interesting from the start, with multiple paths accessible.
  2. Allow tech to continue to be researchable at a reasonable, but not annoying rate.
  3. Prevent tech-spamming where the research cost becomes moot.

I’ve mulled over a lot of possibilities. here are some solutions that I have considered, either together or separately:

  1. Have hard caps on the number of research facilities that can be built before some other (expensive) admin tech unlocks ‘advanced’ research, thus putting the brakes on research in the mid-game
  2. Have variable costs to run or buy research (probably let scientist wages rise as more are hired), making research spamming non-viable in the late-game.
  3. Allow research queueing, so that the player can ignore research for longer periods. (Not ideal, as each research SHOULD be a catalyst for production line and car model re-evaluation).
  4. Have different ‘types’ of research require purpose built facilities. Maybe design-related research requires dedicated design studios? Maybe super-high tech research requires very expensive dedicated and large labs?
  5. Reduce or prevent the immediate construction of any research facility, but require a construction or hiring people for staff. Maybe placing a research facility means it takes 3-4 hours before the staff can be located to fill the facility and start work?
  6. Maybe introduce licenses, or patents that act as gatekeepers for research. To research reversing cameras perhaps you need to license a patent for it ($400,000) AND then research it once you have put that money down.

The problem with 1) is it seems very ‘gamey’ and arbitrary, and not intuitive for the player to understand. 2) sounds like it would actually make sense, although I need a decent way of letting the player know about the changes. 3) seems a quality of life improvement in general, but its also treating the symptom (research-popups are annoying) rather than the true cause (research happens too quickly in the late game, and does not seem to have enough of an impact to demand attention.

4) is interesting, and certainly one I’m attracted to. I like the idea of having to place down a design-studio facility, and to effectively research car designs entirely separately. I like the idea of a purely ‘design’ based arm of research for stuff like interior styling changes, new paint colors and types, and so-on. It also seems unlikely that someone who helps design the tire-making press is also working on voice-recognition software.

5) Sounds like its acceptable because build times for facilities are quite common in games, but then how do I justify the fact that everything else in the game is placed down instantly?

6) Could be interesting, and probably plays into a wider revamp of the research system where I need research-pre-requisites not to be limited just to other research items.

I need to get this right, so I don’t want to rush into a solution. I also feel this post is way too designy, I haven’t even tried to pimp the game. QUICK! Add a steam widget!

So Production Line has been in Early access on GoG and Steam now for about three weeks now. We were in pre-release pre-order thingy for a long while before that. I’m almost at the point now where steam sales equal the number of pre-EA sales, and things are ticking along quite nicely. At one point there was a BIG discrepancy between the review scores of pre-order direct customers (97% positive!) and Steam, but the overall steam review score is creeping up (76% positive as I write this).

Basically we went into EA with an under-done tutorial and poor game balance, and although you can say that about absolutely every single EA game I have ever played, apparently we shouldn’t have done that. Thankfully improving the tutorial was fairly quick, and although the game is far from balanced, its much better than it used to be, as is the GUI.

Interestingly the game is phenomenally popular in Germany (our #1 sales country) despite being only in English, hence today’s update provides all the code support required to enabled multi-language support, and I know a bunch of players are already keen to help out with a fan-translation, so that should be something we can get into the game pretty quick.

I’ve been using keymailer to send out youtube keys, which is revealing in just 1)How many people with FUCK-ALL followers and viewers think they will get free keys, 2)How few people who even request keys actually accept them and 3) how few of those even install, let alone cover the game. I am close to thinking that the traditional ‘send out youtube keys’ part of PR is close to useless. Most of the youtubers who have actually driven traffic are people who presumably bought it, as I never sent them a thing.

My strategy for Production Line has revolved around two plans:

  1. Try to be as responsive as I reasonably can on youtube/twwitter/reddit/facebook/forums/steam to everyone with questions or comments about the game
  2. Regular updates and regular developer blog videos.

This is all FREE, but it takes up a lot of TIME. Fortunately as a workaholic whose job IS his hobby and who lives in a field with few friends, I have lots of time. Hurrah? In all seriousness I do wonder if the true equation of indie game success is something like this:

GameSuccess = ((Experience + Originality * (1.0 – SocialLife)) – (0.1f * NumberOfChildren)) * (AdvertisingBudget + GenreProfitability).

Probably not far off anyway. The amount of indies I meet who seem to know EVERYONE, who are very extrovert, who have been to every show, and have played EVERY game, and are incredibly well travelled and love to party…whose game you can then look up on steamspy and realize they are living on food bank donations is non-trivial.

Anyway, I am in the happy position to be able to work on PL in a relaxed and fairly calm way, because believe it or not Democracy 3, our politics game from 2013 is still making enough money to keep positech running even now. Speaking of Democracy 3, I have EXCITING news that is coming soon, although for horribly technical reasons its not *quite here yet*. Anyway… expect version 1.23 of Production Line today, its a cool update featuring touchscreens, cameras, a better car-sales design, and multiple language support.

The hardest part of game design for Production Line has been the sales model. Not hard as in technically hard (frankly after 36 years of coding, not much is *technically* hard), but hard as in balancing the various needs.

The current system for selling cars in production Line works like this:

Each feature in a car has a ‘base value’, which is essentially derived from the resources and time/power/research required to make that component, plus a normal profit margin. That gives a value of say $100 for the feature, and if we include that feature in our car, we will get $100 for it when it sells, assuming we sell cars at a ‘normal’ rate.

If we are wildly profitable, more companies will enter the market and put general downwards pressure on prices, squeezing the profit margin thats considered normal, and forcing us to reduce prices. The reverse is also true.

The value of a feature decreases inversely with its ‘rarity’ as more and more competitors make that feature available. Some features (most) can eventually be considered ‘universal’. There is a multiplier applied to the final value of each feature based on how rare or common it is.

Finally, ‘customers’ appear on a regular basis and shop for cars. They have a probability based approach to buying. So a cheap car is likely to sell immediately, an expensive one will get passed over again and again until eventually a customer buys it.

So that is the current system as it stands, in build 1.22 of the game. Its not bad, it achieves a lot of my objectives. Competition acts a a balancing factor, research is incentivised, and mass market production means you need to lower your prices to compete. However, its not perfect because it assumes that basically there is just one model of car and one type of customer. This needs to be fixed.

My current thinking is that I need to reflect a number of new characteristics in the model:

  • Demand for your cars need to be scalable with marketing (not implemented yet)
  • There needs to be different overall demand for each body type (sedan, compact, SUV etc), which I can control with events.
  • The ‘rarity’ of features needs to be associated with final price. Everyone expects sat-nav in a $50k car. Not so much in a $10k car…
  • All of these factors need to be clearly presented to the player so that they understand how the market is working and WHY cars are selling or not selling.

So in other words, if our car showroom has a dozen SUVS where we set a 20% price premium, all of which have the rare and modern climate control, but none of which have electric windows, and competition from other car makers is currently extremely high, we need all of that to be displayed in a way that shows the player why its taking so long to shift those SUVs, and what they can do about it. The current system does none of this.

Also, because the game is in early access, I can’t just take months off to faff around, I need to make steady progress on this stuff. So with that in mind:

The current sales(showroom) GUI does nothing to show the level of price competition with other car manufacturers. This is already in the game, but not being shown. Maybe a pie chart or bar chart showing our current market share would be a good indicator to add to the showroom?

The number of customers who visit the car showroom that do (or do not) buy a car is also currently modelled but not shown. I should probably get some GUI added to reflect this, even if its just (for now) a percentage indicator showing the number of people who did/did not buy a car. (Plus I could also show the average length of time each car was on the showroom floor?

Once that is in the game, I can start thinking about modelling those per-body-style markets. This could be a multiplier that reflects the needs of each customer, so instead of being open-minded, they could now be SUV buyers or Sedan Buyers. This would allow me to show a breakdown of the visits to the showroom by each customer, and also breakdown showroom-times and sales percentages for each body style (or each car model) in an additional stats tab in the showroom window?

And then phase III would be modelling the different expectations of features on a car-price based model (electric windows expected on cars above price $X…). That would require a fair bit of internal code wrangling PLUS some fancy GUI changes.

Anyway, I’m interested to hear peoples views on all this, does this sound like its going in the right direction?



So, when watching a lets play for my new game Production Line, I encountered the point that ‘surely compact cars should sell for less than an SUV? given the same options…?’ Which is of course absolutely true. As a result I immediately leapt into my code and made it so. There is now a price modifier for each body style, with compact cars being cheaper, sedan being the default and SUV being more expensive. So far…so good.

But in the current game, producing all 3 cars takes the same time and resources, so why would anybody ever build a compact car? Suddenly I have introduced yet another dodgy piece of game balance. Argggh. In the back of my mind, I have always planned to simulate multiple ‘markets’ for cars (sop one sort of customer is looking for a compact car, another for an SUV etc), so the strategy of purely producing SUVs would be a bad one, but there still remains the problem that I have hard coded higher profitability into the larger vehicles. Plus this means that because it only applies to the base car features (wheels, doors, roof etc), there is an additional incentive to sell ‘basic’ SUVS, whereas we all know that cars make a lot more profit on the extras…

So to quote Tolstoy, ‘what is to be done’?

The obvious solution here would be to reflect the extra effort in building a bigger (or smaller) vehicle in the game mechanics, and have everything balance out. Presumably making a door for an SUV is harder work and more expensive than making one for a mini. Also in theory I guess you need bigger stronger robots exerting more power to lift heavier doors, yada yada. The amount of steel in the roof of an SUV is likely noticeably bigger than for a compact car, and so on.

The trouble is, I have boxed myself into a design corner in my game by making resource units ‘discrete’ (ie: not fractional). Components use up ‘1’ steel or maybe ‘2’ steel, but never ‘1.2’ steel. To change this would not only be a huge endeavour, I suspect it would lead to confusion, as individual items of resources are represented graphically and fall into neat slots. As a result of this, pretty fixed, design decision, I don’t think realistically I can change the resource quantities needed to make different car body types.

So the alternative that presents itself is to instead vary the time taken to assemble them, which is fractional, and could be relatively easily adjusted. A set of robots at the ‘fit doors’ slot could easily take 20% more time on an SUV than a sedan. I could probably code that in 30 minutes. The only problem there is how to represent that to the player. The window that shows the slot status for something like this does show how long the task will take, but there is no further breakdown. Hovering the cursor over some upgrades will tell you how much time they have added or subtracted to the total, but that involves some maths by the player to work out the ‘base’ process time.

Maybe this is something I just have to accept, and possibly just provide a little ‘i’ icon to hover over which shows a breakdown saying that the task takes 2 minutes 10 seconds, plus 2.3 seconds because we are fitting an alarm as well, minus 1.2 seconds because its a compact car, – 0.65 seconds because we have extra robots…etc…

Too clunky? or a reasonable compromise? I haven’t decided yet.