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

Half way through EGX and so tired

As people who follow me on twitter may know, I find appearing at trade shows really really tiring. The biggest one in the UK is #EGX and I’m at it right now. We have a fairy standard 2xPC booth with branding etc, a whole ton of leaflets and badges and stickers etc, and I have my white Production Line jacket and yellow hat. I gave a talk today on the stage and we are generally watching people try the game.

The problem with me being at EGX is threefold. Firstly, its a LONG show, 4 days long and ending at 7PM most days (an hour too long if you ask me). Secondly, its a really loud socially crowded place, which I am emotionally and personality-wise unsuited for, and Thirdly its designed in the normal manner of shows for Gamers.

Its the third point which I think is interesting.

We all know that plenty of gamers are introverts. Plenty are shy or quiet. Plenty are over the age of twenty, or thirty, or in my case, even forty. We all know that video games are just a medium, like books, movies or the theatre, there is a vast range of different types…

And yet game shows act entirely like its a festival for (mostly) make teenagers.

They are generally VERY LOUD. There is a lot of flashing lights, and people with microphones SHOUTING and getting VERY EXCITED. There are competitions for cosplay, highly competitive LAN party things, and the whole vibe is like a loud rave with computer screens. In other words, it is directly aimed at a certain cross section of gamer, mostly the shooter or First-Person Shooter or AAA budget RPG crowd.

Fans of farming simulator, or of Civilisation style games, or city builders etc.. do not seem to be at all catered for by the aesthetic of these shows. I think this is a mistake, and the shows should do more to cater to different, less LOUD and SHOUTY game styles. Why not divide EGX or similar shows into 2 or 3 sections. Have the loud shouty FPS game section, have the young cool cosplay area with minecraft etc and also the merchandise stuff, and then have the quiet(ish) strategy / sim / boardgame / developer sessions area.

Every time I go to GDC, all the parties are really loud, and everyone stands around shouting about how the parties are (yet again) too loud. What we need are events and shows that specifically cater to people who love games and game development, but don’t want to yell at each other through strobe lights all day. Like I say, games are just a medium. Imagine of literary festivals assumed all the attendees were just readers of crime fiction, or of thrillers. It would be mad. Cater to everyone.

 

Analyzing some user stats to help balance

Quick post before I stop work to eat!. I’ve been analyzing some play stats from sessions of the game to try and work out why some people are saying the game is impossible, and others are clearly generating a TON of cash. Some are obviously cheating the config files, but regardless of that I feel that there is definitely a problem with people amassing too much cash too early (in terms of providing a fun, balanced experience). Here is the cash balance of players at 50,100,200,300,400 and 500 in-game hours of play:

Its clear that there is a VAST range, and perhaps nobody should really be able to go beyond the 100million cash point so early, so I need to toughen up the cash in those first 50 hours. ironically the toughening up seems to overcompensate late in the game, as the trend is clearly to lose cash later, rather than increase it. yikes…

This second chart shows how strong the AI competition is during the game. I have made major screwups here, for example, the AI ignores you for the first 50 hours. BIG mistake, I need a lot more intelligence in deciding when to step in…

Lastly lets take a look at the players profit margin over time:

Clearly some cheating going on with those outliers, and some real disastrous, almost snapchat level loses for some people. Looks like that free fifty hours of no competition is letting people go nuts in the first 50 hours, and as I suspected from the above data, I then overcompensate and crush people with over-competition until their cash levels drop down.

I’m so glad I have this data, it will allow me to make a much better, much more balanced game.

Improving customer simulation in Production Line

The current system for customer simulation in Production Line is a bit too simple.

There are 4 bands of pricing, and multiple car body styles. Every customer, when created is assigned a price band and body style. They then show up at the showroom and see what is available. For each car that matches exactly their price range and body style, they rate that car based on their chance of buying it at the given price. There is a graphed slope based on the equation y = 1-(x^2) that gives the probability of buying a car, plotted against the relative premium that is being charged on it (or discount, obviously). This enables them to then pick a ‘best’ car (the one with the highest score).

That score is then the probability of the customer buying the car, which they then may or may not do based on a random number generator.

The positives to this system are:

  • Overpriced cars take longer to sell, under-priced cars sell easier.
  • There is a clear market segment for each body style.
  • There is a clear market segment for each price band.

These are all good things. However, it has problems:

  • As body style options increase, it seems unrealistic. Is there nobody who shops for an SUV who ends up with a sedan etc?
  • Price bands are fixed. This means that there is no difference in pricing at the low or high end of the price band, as long as the markup is the same.
  • The customer only really has a ‘chance’ of buying one car, the best one. Surely a wide range should result in a higher chance of a sale?
  • The customer seemingly has no opinions on features. The presence or not of a sunroof, for example never swings (or loses) a sale, the player can always afford it, if its in their price-range.

So here I’m thinking of ways to improve on this.

Firstly I can change customers so they have a price point, and some fuzz. So rather than be looking at all cars from 0 -$15,000 (budget), they can have a price point of $14,000 +/- 20%, and thus evaluate any car from $11,200 to $16,800. This means we suddenly have an incentive to make some ‘low end’ budget cars (with some missing features) and some ‘high-end’ budget cars, with m,ore features, effectively catering to more tastes, and dissuading the player from just feature-cramming every model. On the downside, this also makes the list of designs maybe quite big… This would give me cool customer feedback about being too pricey, or lacking in features depending how things go.

Secondly I should have some fuzz around body styles. maybe a customer wants a sedan, but only applies a 20% negative modifier to a car of a different style. After all, if all the sedans are overpriced and crap but the sports car is surprisingly cheap and awesome, shouldn’t there be a chance of a sale?

Thirdly, maybe features should come into it. How about assigning a ‘must-have’ feature to each customer (thats common or universal at that price point), and they refuse to buy any car that does not have that feature? This would allow me to store some pretty fun customer feedback on the car ‘doesn’t have electric windows’ for example…

Fourthly, the wide range should come into it. Maybe the player should be able to consider up to five different cars (discounting ones with similar options), and run the random check against them all. This rewards the player for having a wide range, even within a single price band and body style.

That involves a bit of code, but as always with big sim games, the code is trivial (when you have coded a lot), its the design, the balance, the GUI and the making the code run super-fast (so having 100 customers how up and evaluate all this is not a frame-skipping event) that will take all the time. I’d like to know what people think, and if any of this sounds like the wrong direction before I start coding it. Obviously numbers given are easy for me to tweak, its just the pricing and sales mechanics I want to improve upon.

Production Line GUI usability issues

I have been turning my attention recently to improving the usability and intuitiveness of the design for Production Line. I run some ads to promote the game, and have to assume a bunch of people buy it and play it without ever seeing me or anyone else play it in a video, have not read about it anywhere, and are relying purely on the in-game tutorial. Of course tutorials are all well-and-good, but ultimately the aim has to be to have a game design and GUI so intuitive that it just feel obvious to the player and they don’t get frustrated or stuck.

The next update (1.31, coming tomorrow with any luck), comes with a whole bunch of cool usability improvements. Supply stockpiles and new car designs now copy all existing options, which makes them much more useful features. there are some pricing and production hints on the sales matrix, and a host of other things. I have identified 2 small areas that I think are still confusing and want to improve upon…

The first is the interface for choosing which cars to produce. Basically the game starts with just one design, and only when you have created extra models do you need to worry about this. To edit the ‘production schedule’ you need to go the the slot at the very start of the production line (there may be several lines), click it to launch its details screen, and then notice the new button that gives you access to this feature (which is then relatively well explained).

There are several problems here:

  1. The player may not even realize they need to do this, and assume the cars are equally produced.
  2. The player may have no idea where the start of their line is, at first glance.
  3. The player may not spot the new button even if they do click on the start of the line.

There are a bunch of solutions to this. Firstly, I could stick a big fat warning on the car design window, along with a new stat showing production last hour, alerting the player to the fact that no production of this car is currently scheduled. Maybe add a tooltip on there explaining what to do to get to the production schedule screen?

Secondly, I could have a permanent icon floating above the start of the line indicating this is where the production scheduler is, and maybe double up as a button that launches the scheduler for that slot.

Thirdly maybe I need something more obvious than just a text button, something with icons, and which draws the players eye much more on that slot window? Just a button with ‘Change’ on it is kinda awful :D

Thats just the first usability issue. The second is a problem relating to missing features on cars, something that is very badly communicated to the player. The player selects which features should be applied to each of their various car designs, with some getting tons of them, and cheaper models getting few. This means that at a slot such as ‘fit wheels’ some cars will get alloy wheels, some will not. Thats fine, but sometimes the player gets out of synch, and researches the ‘alloy wheels’ tech, applies it to some designs, and then forgets to upgrade all the slots that fit wheels. (Or at least all the ones the expensive cars go through).  We currently have yellow text in the showroom for cars which have ‘missing’ features, but it makes absolutely no distinction between features missing because the cars production pre-dated this feature (old stock), and ones where there was a screw-up and a feature got missed.

Ideally the screw-up should never happen, but I’m wary of stopping the whole line when this happens. That may be confusing, and will need explanatory GUI anyway. However, it may be the best option. I could reserve that yellow text just for stuff which was really missed, and maybe leave it in white or labelled differently for stuff which is just ‘old stock’. That would at least distinguish between the two. I guess I could also have a popup on the vehicle as it goes around the factory to show a missing feature, so the player notices this before it gets as far as the showroom (by which time many poorly-configured cars have been made).

I’m still musing on the best solution to this.

A heads-up on future stuff. I will ship 1.31 this week, then I’m away for a week from Sunday, and just after that will have a booth at the EGX show in the Birmingham NEC in Birmingham UK. Please do come along if you can and say hi, or try the game (if you dont already have it). press interviews most welcome!

I guess I should point out to any new readers that Production Line is in Early Access on steam/GoG and direct from us. its $15.99 and you can grab a DRM-free copy, together with a steam key from the link below…

Stressful week

So I had some bugs in stockpiles, and I tried to fix them, and it got more and more tricky, and eventually yesterday I had a bit of a code epiphany and this morning I deleted hundreds and hundreds of lines of code and wrote a few dozen new ones and now finally seem to have a stockpile ordering system that does (as far as my testing can see so far today) everything I want it to.

It was pretty stressful trying to fix it, as when i have buggy code I cant fix, it really does bring me down. So last night I was typing away in visual studio, occasionally with my head in my hands after a bottle of wine, quite late, and quite depressed/annoyed thinking…

“Why the fuck do I try and make such complex games to such a punishing schedule. Why don’t I just do some buy-to-let properties and retire like any sane person…”

Luckily I feel tons better today, but its important to note that people tend to only turn to social media to talk about game development in a good mood, and its not all roses. so there..

On a happier note, here is todays’ video blog :D