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.