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

Production Line: towards a better financial model

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?

 

 

Design Dilemma

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.

Launched into Early Access. Blimey etc

So…Here we are, a few days after the release of Production Line into Early Access on Steam and GoG. How did it go I hear you ask?

Well if you read my earlier post on the pre-release guesswork and nerves here, you will recall that I was hoping to sell 300 copies in the first day, and had extrapolated to that showing the game to be a decent success that i would be very happy with. It turns out we sold about triple that amount (including humble,steam and GoG), so suffice to say I am very happy with how well the game is being received. Also we are getting some very nice coverage like this, which is always good.

On the flip-side, we clearly have a few crashes in the game AND also had a bad problem with balance. Essentially, the 1.19 release which was the EA build was unbalanced in terms of the rate at which the AI researched car technology, and also the number of technologies that could become universal. The system meant that very rapidly the AI had reduced cars to being effectively worthless because you needed a ton of essential tech which you could charge for, and went bankrupt…yikes.

This was patched yesterday, and the AI is now much calmer, the list of tech that can ever become universal is shorter, and the universal tech is still (partly) chargeable, making the game much more playable. of course now a few people say it is way too easy so…thats the next step in the path of game balance :D

The big moment of stress for me over the weekend was a sort of self-induced problem. I had been working for a while (in the run-up to the 18th) on a major revamp of the way car designs are done, allowing you to define different car ‘models’ such as ‘Standard’ ‘Sport’ Deluxe’ etc, and have your production line recognize each car and install the appropriate bits. This is VASTLY better than the old system  that shipped in 1.19. This was also something that players of the game had requested quite strongly through the priorities voting, and something I wanted to get in ASAP. The problem is that I hugely underestimated the ramifications in code of doing this, and how much needed to be changed, tweaked, fixed, and tested. The result was that I had a half-finished feature I really badly needed to finish before I could look at the balance and crash issues people were angry about.

At one stage we dropped out of ‘positive’ steam reviews to ‘mixed’. ARGHHHHHHH.

So to cut a long sleepless story short, I worked a damned lot of hours on coding, testing and verifying this feature, did some emergency code fixing for the balance stuff (which is also a vast improvement) and finally after a lot of testing released 1.20 to the world yesterday (GoG build still uploading…damned internet). As a result we are back in ‘positive’ scores, and things can only get better :D

So…apart from how stressful EA launches can be what else have I learned?

  1. People don’t leave steam reviews. Maybe 1% if you are lucky. You really would be amazed at how skewed steam reviews are. I have no idea how to fix this to ensure its more balanced :(
  2. Youtubers who request keys through a proper site (like keymailer) often do not accept the key when you give it to them. then most of them who accept it never install or run the game. Most of the ones who install and run the game don’t make a video, or even tweet about it. This is both surprising and infuriating.
  3. People automatically expect to get a game cheaper in the future. We have about 15,000 wishlists already. I have zero intention of dropping the price or putting the game in a sale. it will be interesting to watch what happens as a result.

I feel so much happier than yesterday when I was stressed as hell. And yet then, today some extremist maniac blew up children in my country. FFS.

48 hours until early access. The state of play

I’ve been around a long time, and released a lot of games, so this is hardly a new experience for me to be releasing something new. Plus its already out there in alpha pre-orders anyway, and this is just the appearance on Steam and GoG, plus I am not in dire financial straights or debt needing this next weeks sales to buy food, so taking all things into account, this weeks release of Production Line on Early Access should be no big deal.

Holy fuck its stressful.

I’m kind of prone to ‘fear of the future’ anyway. Nothing to do with games. As a kid, we did not have much money and I was aware of the constant fear of future financial problems. I also grew up during the height of the cold war, where we actually assumed we would all die in a nuclear war. We had TV programs like this, for crying out loud. I also remember watching a TV show (for kids, believe it or not) where armed police broke into a kids house, arrested his parents and seized their stockpile of food, because they were hoarding some. (70s TV for kids was pretty fucking bleak).

I am a political junkie, and an avid watcher of predictions about the future. I go from worrying as a kid about money and nuclear death, to worrying about the politics of my country, the environment, my own finances and pretty much anything I can worry about. I worry about how this blog post will be received. maybe thats why I used to have lots of hair.

..and now have less.

Anyway, I find solace in numbers, facts, statistics, and so on. Nothing reassures you that you don’t need to worry about X better than a chart showing you that X is fine. So lets go to the data!

Production Line went on sale to pre-order alpha buyers from my website on 22nd January. Since then it has sold about 9,900 copies. The price has risen steadily from $10 to $13. On Thursday it leaps to $15.99. You can do some rough maths and work out how much the game has earned so far, and indeed, it is in profit, if you assume all that code I wrote was free. if not, it works out as $23.84 per hour of my work. Thats not *bad*.

If we assume that the game sells another 10,000 copies at full price during its time in early access, plus another 20,000 at an average 50% price during its full release, that would bring in a total of roughly $425,000 revenue. Deduct development and marketing costs, and distribute that over the current dev time plus another six months… and my hourly income would be $93.22. Holy fuck. I can live with that. That sounds good.

Of course that assumes a long term tripling of sales. How likely is that? The market is tough…hmmmm.

Right now Production Line has a total of 2,313 wishlists on steam. There really has not been very much press about it at all. Press just seem impossible these days, and I can see why. they are swamped with whats new on steam. How to cut through? The occasional promoted post and facebook ad is ticking along for me, but I admit I am aiming for a lot of word-of-mouth here. I’m paying close attention to what players of the game think, and hoping if they really like it, they will play for a long time and encourage their friends to get copies. I’m also hoping people who played ‘Big Pharma’ will find the game interesting.

My YMLP mailing list has about 8,000 people on it. I have about 9,000 twitter followers and the PL Facebook page currently has 2,616 likes. I think all these numbers are ‘ok’, but does that put me in the top 5% of indie games? Hardly anyone above the real beginner tier of devs shares this information, so who knows?

I have bought a bottle of prosecco to drink Thursday night regardless, so I need to deduct that in my spreadsheet too… hmm….

So I have to ask myself what I am assuming here, and allows me to predict future trends. If I’m thinking 10,000 copies during say 6 months in Early Access, then I reckon 25% (2,500) in month 1, probably 1,200 in week one, so I’m thinking 300 sales on release day is a sign that I am on track.

I’ll let you know how it goes. I’ll aggregate GoG, Steam and mine direct, because you cant legally reveal exact store numbers. Even as I type this I find myself thinking ‘fuck, 300 sales in a day is *not* going to happen. ARGGGHHH. Quick! Add it to your wishlist :D

BTW I am still sending out review copies to popular youtubers, and websites, so email cliff AT positech dot co dot uk about that. I’ll be using keymailer on the launch day to send out some more.