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?