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

Boxed myself into some design problems I really need to fix.

There are a number of things wrong with the nitty-gritty fine detail of Production Line’s design. I don’t mean easily adjusted stuff like ‘this costs too much’ or ‘that happens too quickly’, but actual design issues that may require me to change the way some of the mechanics work. Here is an explanation and some background:

Production Line is a car game where cars move along a production line from one ‘slot’ to another, and new components such as doors, engines, wheels etc get added at each slot. Different cars may be different designs, meaning they get a different series of components added. For example all cars get wing-mirrors added, but some get heated wing-mirrors, some get heated+folding wing-mirrors, and so on. Where I have gone wrong is this ‘fitting complex components’ mechanic.

Essentially, the problem comes from the relative simplicity of when I first started work on the game. For example, fitting door panels was just a thing that happened, taking X minutes to do. Then I added a new feature ‘car alarm’ which I decided could be fitted at the door panel slot. This slightly slowed down that slot. (For cars with alarms). then came lane-collision avoidance tech, which again involved extra components at the ‘fit doors’ slot. Then came keyless entry…and so on. As a result, something that was once simple (fit door) became really complex, and really slow, causing a bottleneck not only due to the sheer penalty time for all those features, but also waiting for all the myriad of components (sensors, alarms etc) to arrive for each door, meaning the slot was often ‘waiting for resources’. This also felt unrealistic. Surely the doors get fitted with all this stuff already assembled?

Because I’m clever I fixed this.

Now you have a system where some upgrades (folding/heated wing-mirrors is one) can only be installed if you make them yourself. As a result, you have a slot in the game that will manufacture wing-mirrors, and you can then upgrade THAT slot, and it will attach extra ‘features’ to each wing-mirror. The wing-mirror then gets requested by the fitting slot, attached to the car and the final car now has the features it wanted, fitted no slower than the normal wing-mirror.

A combination of method A and method B of adding features keeps a nice balance between bottlenecks and free-flowing of the line, encourages the player to experiment with local production, and adds to the complexity, maybe even the fun of the game?

Unfortunately it leads to big problems!

Imagine a situation where there are two car designs, Budget and Luxury, and production alternates so the line sees B,L,B,L etc. B has basic wing mirrors, luxury has everything… A local production slot ‘factory’ is upgraded, and thus churning out a load of heated & folded wing-mirrors. This is the process by which it all screws up:

The fitting slot encounters a BUDGET car. It fits some basic wing-mirrors, which because its closer to an importer than the factory, it imports. It also fills up the pare 14 slots with new basic wing-mirrors.

The fitting slot now encounters a LUXURY car. It now needs wing-mirrors that are heated and folding. Should it trash 2 wing-mirrors and order them from the factory? if so, does the player get the trashed items refunded? What about numbers…does it order just 2? or 14. it cannot be 100% certain that the end car (due to complex junctions) will be a Budget or Luxury. It has no idea. Does it order half and half? what if there are four designs? or eight and they all have different combinations, and production ratios? How many do I order? Also…back at the production slot, should I be just making a bunch of fully-loaded wing-mirrors? or some ratio? how do I set this? is it automatic? does the player decide?

Plus…because some components now have upgrades, how the hell is the supply stockpile GUI even working any more? when I say this stockpile should be full of wing-mirrors…which type? does it care? should the player be able to control this? how?

Why did I start making video games? what the fuck am I doing with my life? What made me think I know how to do this? ARGGGHHH.

Obviously this can be solved somehow, but I need to do it properly and not flail around coding random hacks, which is basically how I ended up here. How on earth am I going to fix this mess? Here are some solutions, not all to the same exact part of the problem, and not mutually exclusive:

Solution A: Downgrade components where required.

In other words, when we fit a wing-mirror to a budget car, we effectively snip the wires, and it acts just like a cheap wing mirror. We fucked up here in some ways, and spent the money to make an expensive component that got wasted. This is effectively very simple to implement, as some code can handle this at the fitting stage (stripping inappropriate features before adding them to the car). This is potentially very frustrating to the player, as if they want to produced everything locally, they are effectively wasting money (and resources) on every cheap car they produce. This is not efficient, and efficiency is the key to the game :(

Solution B: Scrap the idea of embedded features in components.

This means that all the component fitting is done *at the assembly line*. So factory slots now just make wing-mirrors, and the upgrades move to the fitting slot. This simplifies the games design from a tutorial POV very much, but it re-introduces big bottleneck, is very unrealistic, and involves a lot of change which will fuck up save games. Plus it doesn’t solve the core problem anyway, we still may have the wrong resources at the fitting stage.

Solution C: Allow manual configuration of assembly-line stockpiles.

Right now, the player has no control over what components a fitting-slot orders. It decides what to order when a new car arrives, and it then ‘over-orders’ on the assumption that the following car will be the same design. Because the player knows that all those aluminium stocks for an aluminium body shell are not needed for 90% of the cars, he/she could specify what to keep in stock instead, giving the player micro-management. The downside is this will not work AT ALL if you go BBBBBLLBBBBBLL, and thus the local ‘caching’ demands change. Plus its rife with the possibility of bugs, and confusion.

Solution D: Allow automatic ‘flushing’ of unused resources in a stockpile.

If I order 5 chunks of aluminium for a body-shell, and then take the effort to order another 11 to fill my stockpile, but the next car doesn’t use aluminium, I should immediately flush (probably refund) all those spare aluminium chunks the minute I realize this. This would eliminate a current ‘blocking’ problem, but mean that if my cars go BLBLBLBL (where L uses aluminium), I am constantly wrong-ordering and flushing. In a sense, this is for the player to spot and fix right?

Solution E: Express composite resources as their own resource.

Life might get simpler if I allow the player to refer to ‘folding wing-mirror’ ‘heated wing-mirror’ and ‘folding,heated,wing-mirror’ rather than just ‘wing-mirror’ in terms of supply stockpiles etc. This only solves a minor issue, regarding supply stockpiles, and vastly complicates the supply stockpile resource picker list (and others for that matter0. However this would theoretically allow the player to import them ready-made rather than produce stuff locally, which gives the player more flexibility.

ARGGGH.

I’m in a design mess here. It *will* get better, probably through a process of far better tutorial & player feedback combined with some combination of the changes listed above. I’m interested to know how annoying all this mess is for actual players right now. Have you encountered any of this? does it bother you? do you think I’m getting too fixated? Is this just something you enjoy working around? How bad is it? :(

 

Fighting to get ad click costs down.

I’m running on-going promotional campaigns for Production Line at the moment across a variety of sources. My plan is to work out the current best value for money in terms of cash paid per impression and per click/like, and then to ramp up in that area. Getting a decent click cost is proving tricky though.

After a lot of fiddling, and narrowing of audiences, I’m still struggling to get a Facebook like for Production Line at less than $1.00. I’ve seen my costs wave from $0.83 to $1.95 over a period of a week, even after cropping the lower performing ads out of the equation. The CPM on facebook is currently $13.06, which even as a really targeted demographic, is way too high. It could be that my ad copy sucks, although I have tried variation there. My relevance is  4 or 5.

Switching to AdWords promotion of my trailer gives me different results, The CPM there is £0.33 (roughly $0.44) which is tons better, but possible less effective? The cost per view is just £0.12 / $0.16, which is very attractive…

On reddit I’m seeing roughly $0.66 CPC for ads that lead directly to the steam store page. This is very direct, but is it really 4x as good as getting people to see my trailer?

What I don’t like about ad-words trailer promotion is that its 99% branding with very little engagement beyond that. Viewing my trailer is fine, but how long will that memory persist? When advertising my trailer, I got 642 steam store visits from youtube, and spent £1,500 to get them. If I look at the period before (no ads), I got 506, so effectively I’m paying £1,500 for 142 visits plus general brand awareness. The game is £12, so if all of them bought it now, I’d still make a slight loss under steams cut. How much is brand awareness worth to me? And how annoying to not know the actual real conversion rate of those steam visitors…

There are pros and cons all over the place to thinking this way. there is also the Uber/Tesla/Amazon strategy of really not giving a damn if you are losing money on ads, as long as you can spend enough to get 50,000 players one way or the other, and hope that this then becomes self sustaining and viral. This sounds nuts but it might not be, as lets be honest, you *do* get paid for the games, its only the difference (the loss per customer) that is actually an expense…

Looking at the adwords example.. £1,500 for 142 visits is a loss of £2.17 per sale, or $2.82. Lets imagine I could scale that up in a linear fashion to buy another 12,000 production line steam buyers (doubling its current steam sales, and making 34,000 players in total. The cost of that would be $33,840.

Thats a lot of money, but not impossible. I’ve certainly risked similar amounts on share dealing on a regular basis.

Interesting…

In the meantime here is today’s production Line video in which I wear a hat:

Launching and promoting an early access game on steam, 2017.

Production Line, my latest game released on steam on May 18th 2017. Thats 77 days ago, and according to steam spy, its sold 13,055 copies. We had a prolonged alpha test off steam where we sold another 10,000 copies. The game currently retails at $15.99 but was cheaper during our pre-early access direct sales period. How do I feel about that, how did I do that, and how can I sustain this?

Firstly some perspective. assume I have earned on average $10 per copy, thats roughly $230,000 income from the game. Development costs are not high on an art & music basis, but they aren’t trivial either. I’m looking at a raw profit, before I get paid anything of about $150,000. Theoretically pretty good, although I worked a LONG time on the game before going public with it. it looks like I have earned roughly $38 an hour from developing the game so far.

A lot of this is ‘front-loaded’. Games can continue to sell well long after you finish development of them. Despite my pessimism shortly after its launch, Democracy 3 Africa has gone on to earn a reasonable profit (nothing earth-shattering, but a surprise nonetheless). Although there is a lot more to spend on PL (sound effects are barely in, more art is to come, also trading cards and a LOT more code support), I suspect there is more to earn too. So far the game has not been discounted a single time, not even at launch. Its final price may creep up above $15.99 towards the $20 mark, and we haven’t actually had our version 1.0 release yet.

So how to ‘keep up momentum’ and continue to stay afloat and profitable with the game?

Regular readers of my blog will know that I advertise, and do so fairly extensively (for an indie). I’ve advertised in many places, but my preference in 2017 is social media. I don’t do that much chasing of press any more, as press coverage seems only very weakly correlated with sales these days. I think what matters is eyeballs, eyeballs, eyeballs. A lot of new indies rely entirely on exposure through steam. That strategy is doomed. Dead. Passed-on. Ceased to be. Expired.

So far, Production Line has spent 17.84% of its revenue on marketing, or put another way 25.64% of profit. I believe this figure should be higher to get any sort of real awareness, and am currently trialling 8 different facebook ads to see which one has the best conversion rate to page likes before ramping up that spending. I’ve spent roughly 68% of my ad budget on facebook, 16% reddit, and the rest split between adwords and twitter.

The place where I am arguably being really slack is trade shows. I have a 2xPC booth coming up at EGX, and me and Jeff will be there handing out flyers. I have badges ordered, some PL stickers, and a silly yellow hat and jacket to wear so I stand out a bit. Its all a bit meek though. Really I should be appearing at other game shows too, but there aren’t many within the travel distance and date-range that I require, not that get any actual traffic, anyway. Appearing at a show can be expensive, I put the total cost, including hotels, travel, swag and booth at roughly £3,500.

So is any of this promo stuff worth it?

Very hard to tell. Conventional year 1990-2010 thinking was that its all about conversion rates and track-able sales. In 2017 I no longer think this is true. I think all that is desirable is awareness. There are a TON of games out there on GoG, Humble Store & Steam. The sales events can be big, and the store traffic enormous, but what matters is getting YOUR game noticed. In a sea of game logos, you want to be the one that gets clicked on, and thats much more likely if the logo or game name/image has been seen before.

Why?

Well actually its science. We have, hard-coded in our brains, a connection that says ‘familiarity == desirability’. Why? because basically if we have seen something before and we see it again, we know it didn’t try to kill us last time. Its a basic survival instinct. So what you need is people to see your game name, screenshots, video, logo, etc as often as possible, for the lowest cost. Making that work is tricky, not least because thousands of other people are trying to do the same thing. In a perfect market, all costs would level out exactly to match their effective impact, but we know that no market is perfect.

For example, is a view of my production trailer worth 10 ad impressions? or 50? Is it worth 10 at 10 seconds view until skip, and 50 at a full watch? This stuff is guesswork, we have no real idea, so we have to develop our own crude guesses. I once carried out a very exhaustive (and expensive) month of testing where I tried a whole bunch of ad media, and tracked conversions of all of them. I concluded that one media was vastly, vastly better than the others (facebook), but I now suspect it is not that simple. Facebook may be good at driving engagement in the short term, but I want long term name recognition, not just short term clicks and buys.

And that thinking brings us back to EGX and shows, and similar shenanigans. Is handing out a badge or leaflet to someone worth the same as a like on facebook? Are show-visitors more engaged online and more vital in terms of social network graphs for telling people about your game? I strongly suspect so, but there is little data or science on this. Unfortunately, as indies, we do not have the option of saturation marketing, where you spend ten million dollars and EVERYONE knows about the game. We know that works, we have to see if you can get 1% of the effect for $100k. I doubt that equation is linear, but does it skew in favour of size? Who knows.

And of course, this is why its so hard to effectively promote a game like Production Line. However, it can also be fascinating, and even fun.

 

 

Get to your cubicle and stay off the factory floor. (Production Line 1.27)

I released a patch for production line recently, then found a minor save game bug that I patched right away. There is a long list of stuff we improved and added and changed, so here is the full list:

[version 1.27]
1) [Design] Touchscreen is now an upgrade for fit dashboard instead of fit electronics.
2) [Bug] Fixed bug where the AI would be very reluctant to research air conditioning or polished paintwork.
3) [Bug] Placing facilities and slots is now correctly recorded as a capital expenditure in expenses charts.
4) [Bug] Bubble next to car sales icon now expands to show numbers greater than 999 correctly.
5) [Bug] Fixed visual bug where scrolling in the sales showroom resulted in invisible cars.
6) [Balance] Research costs of some later-game research items have been increased.
7) [GUI] Various improvements to the style scheduler window.
8) [Feature] Marketing campaigns can now be launched to boost brand awareness, and thus visits to the showrooms.
9) [Bug] Fixed crash bug if the game autosaves within a minute of a manual save, the next time the save dialog was launched.
10) [Bug] Fixed bug in slot-picker where expand icon buttons (+/-) would not unlock when research triggered if slot picker was open.
11) [Bug] Fixed bug where the market screen doesnt show the correct market segment of cars until you have viewed them in the car design screen.
12) [Bug] Fixed bug where cars would have a red error message on them if the next slot was a really long conveyor journey away.
13) [GUI] The style scheduler at the start of the production line now lets you edit existing quantities of entries.
14) [Feature] Wingmirrors can now be manufactured, and also have folding and heated upgrades.
15) [Balance] Costs of wingmirrors and alloy wheels has gone up. Making alloy wheels requires more steel.Keyless entry worth more, requires 2 chips.
16) [Balance] Resource prices are now affected by demand from AI competitors.
17) [Balance] Crossing up to a new price category now produces a ‘bump’ in value which prevents pricing anomalies.
18) [Tutorial] New pop-up explains what to do when you have researched a new body style.
19) [Balance] Increased price of last robot upgrade so its less of a no-brainer upgrade. Also slight increase in power-draw.
20) [Feature] Offices (marketing and research) can now only be placed in office areas zoned on the map. Non office items cannot be placed there.

There is some cool stuff in there, and I think that 8) is a big change (ooh look! actual marketing!) and 14 adds new stuff to research and play with, plus the combination of 16),17) and 19 is actually pretty vital (and much needed) to increase the extent to which the long term game is balanced. The game has definitely tended towards easy, with cash becoming a non-problem once you have put a good few hours in and done half or most of the tech upgrades. balancing a game is hard, and a constantly moving target as new features and bug fixes go in, so this is something I will have to constantly revisit.

However, probably the biggest obvious gameplay change in there is that last one, which frankly was a last-minute decision to add. (I have mused on the mechanic for a while, but made a last minute decision to actually include it now rather than later).

Basically the old game let you slap down a research office or marketing office anywhere on the map. The new game sets aside dedicated office space which cannot be moved or expanded. Nor can you build production stuff in there. It adds a new restriction on the game which may annoy existing players used to the free-form style of the previous version. So why did I do it?

  • Firstly, the  corralling of offices like this prevents ‘research spamming’. Essentially you could ‘cheat’ in the game by slapping down 30 or 40 research centers right at the start using a loan, and then splat through all of the research in record time. You then had an advantage over the AI, and could quickly start producing cars with high tech, and never put down a single production slot without access to a bunch of upgrades. I disliked the ‘spirit’ of this approach, and it seemed unlikely to be practical in the real world. You wont get financiers to back a 10 billion dollar car company that employs nothing but researchers. I like the idea of encouraging research alongside the game, not as a prelude to it.
  • Secondly it introduces some new difficult and strategic decisions. The layout of the factory is now slightly more complex, and the positioning and size of research centers is more tricky. it also encourages upgrading to more efficient research offices (space-wise) which otherwise had little to recommend them. Plus when it comes to expansion, it means you have another factor to take into account when choosing potential lots to acquire.
  • Thirdly it feels more ‘real’. In a real factory researchers desks are not next to car-body stamping machines, for obvious reasons. This makes the layout look more like a real factory and less like a game, which has to be a good thing :D.

Its always going to be difficult making a gameplay change during early access. So far I haven’t got any angry shouts at me, and we have over 20,000 players, so that looks like its a good sign. I *do* need to include a LOT more tutorial hints as to what is going on, as its not explained at all, but I think in the long run, the effect this change will have will be seen as positive for the experience of the game. I guess only time, and checking of forums, reddit, twitter and facebook posts (and blog comments) will really tell. I expected more outcry YTBH, so it seems things are going well (or people upgrading slowly :D).

In unrelated news my construction hat for my EGX booth is now here, along with Production Line stickers :D

Production Line Marketing: Balancing out the factors

Not marketing the game…but marketing *in the game*. As You may be aware, my car factory sim Production Line got its first taste of marketing as a feature in the last patch (1.26). The current setup is very simple, you can research marketing, then place down marketing facilities that generate ideas, but nothing else (yet). In the next patch, the games marketing system will be fleshed out more, introducing marketing campaigns which you can use to generate brand awareness. here is a screenshot of the resulting new dialog box:

This is all in, coded, tested, and works. So hurrah. SHIP IT.

Maybe not yet, as it requires balancing, and when considering how best to do this, I made the following list of potential balancing factors I should consider to get things right first:

  1. The research cost of marketing as a base research item
  2. The purchase cost of a marketing facility
  3. The running cost of a marketing facility
  4. The idea requirements of each campaign
  5. The idea generation rate
  6. The cost requirements of each campaign
  7. The effects of each campaign and the variability of those effects.

Obviously this is effectively a system of counterweights, where increasing or decreasing one will impact all the others. There are reasons for/against changes to any one of these. Ideally marketing campaigns last long enough that they are not too ‘needy’ in terms of interrupting the player. The effects should be noticeable and strategic, but not unbalancing or sure-wins. Marketing will work great as a mid-to-late game feature, so it shouldn’t be attainable too early. It should be something that requires an investment, but not a crippling one, and one that generates a positive ROI in general.

Thinking about the real world, a marketing campaign is essentially a fixed cost, one that you hope makes a positive ROI when spread over a sufficient number of sales. I would like to engineer a system that means it makes sense to run a $500k print campaign if you are selling 10X cars, but maybe not worth it if you are selling just 1X. To put it ion car terms, if you have a single showroom in one city, spending $500k to increase footfall in that showroom by 50% wont be worth it, but if you have 10 showrooms and 10x the potential customers, it will be.

Right now we have a system where there are 3 car body types and 4 price points, so 12 customer categories. Those categories have no fuzziness, so if I want a mid-range compact car, no amount of bargain pricing or marketing will change my mind on that basic fact (I may introduce some fuzzy logic to this later). What this means is, if I have a single car model, then 11/12 of my customers are wasted anyway…

With a general ‘brand awareness’ campaign (the only type I’m working on this month), it will not make any sense (hopefully) to do this for only 1/12th of your customers. In effect, I’d be generating even more footfall from people who come into the showroom and say ‘I keep hearing about positech autos, but they don’t make SUVs in my price range’. A waste of money… If I have a fully kitted out range of cars, that calculation changes.

Lets examine my test numbers:

A print campaign lasts 24 hours and costs $500,000 to run. It boosts brand awareness (and thus footfall) by (on average) 10%. Current footfall is 5 customers per ‘sales interval’ (which is 4 seconds, or 4/120 of an hour) That means we get (on average) 150 customers per hour, and this campaign will mean a bonus 15 customers per hour. 24 hours means a bonus 360 customers. This means its cost us $1,388 per customer through the door.

Assuming that we offer cars to 50% of the possible market (note not all of the 12 categories have the same market share), then we have to double that to $2,777 per customer. Assuming an average car sale of $20,000, we are selling cars with a 13% marketing spend. That actually sounds pretty reasonable.

Of course, the real strategy for the player comes in when they have cars piling up in stock, or not. When you have excess stock building up, you can ALWAYS shift them by dramatically lowering the price. The strategy will be in knowing whether or not it makes more sense to lock in $500k to bring in *more* customers to view those cars, or to lower the price.

I like the way this is balancing out, because without explicitly saying “this is a late game feature”, it becomes evidently true because its not worth advertising to the mass market without having a mass-market range. The real problem is how I convey that to the player. Player-feedback is something that production line is currently bad at, and something I need to work on. I could maybe have a pop-up from your head of marketing that runs through those numbers… a dialog saying “our campaign has resulted in X new customers, so $X per customer, but only Y% of them found a model in our range they would consider. Maybe we need to expand the range?”

As usual; in complex sim games, it becomes a case of 25% code the feature, 25% test the feature, 25% balance the feature, 25% explain the feature. I guess I’m half way there for brand-awareness marketing…