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

Settling into Early Access

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.

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.

I AM SO TIRED

I feel like I could collapse. In the meantime, here is today’s Production Line Blog video. Thanks to everyone who has bought it: