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

More Production Line customer modelling

I’ve talked about this issue in the design of customer AI in Production Line before.

In the last patch, I made some changes. here is the current system:

Each customer arrives at the showroom and looks at the cars on sale. That customer has a fixed ‘budget’ and have some leeway around that budget, from 20% less to 20% more (so a $20,000 customer checks out cars between $16,000 and $24,000, regardless what price range this puts them into). Every customer looks at every car and calculates a ‘score’ for that car…

They take into account the value of the car by comparing its estimated fair value to its actual value (basically they look at the markup you set). They then get a value from 1% to 100% saying how likely they are to buy that car. if the car is a different body style to the one they had originally wanted, they penalize that score.

The top five cars by this rating system are then looked at, and the player effectively rolls a percentage dice against each one to see if they will buy them. They may buy one of them, or not buy at all. The other four cars (or maybe all five) get given feedback by this customer on why they did not get bought, with the options being:

  • Wrong Body Style (assuming thats true)
  • Too Expensive ( failed the random die-roll)
  • Missing features (The car was missing some essential features, and this had a 5% or more impact on the likelihood to buy.
  • Bought an identical model (The customer bought exactly this model, but there was just more than one).

So like I say…thats the current system. It appears to have problems.

The most obvious problem is the customer budget. A top budget makes sense, but a bottom budget kind of does-not. If the customer wants a top feature sports car, and has a set budget of $200,000 and we are trying desperately to sell them for $100k, they should snap that up!. This is clearly nonsensical. What the customer should have is reasonable feature requests, not the minimum budget (which was being used as a proxy for this). The problem is, I need to do this sensibly, accurately, correctly and also fast, because some people have a LOT of cars on sale and a lot of customers. So how can I do this…

Right now I think the first thing I’m going to try is to remove the lower budget limit, but instead represent it as a quantity of features, that at a reasonable price, would be equivalent to that value. In other words, if My budget range is $80-120,000, I actually cap my buying at $120,000, but will consider any car that has $80,000-worth of features, regardless how far below $120k that car is priced.


Post-EGX, Build 1.32, dev blog video etc…

So we survived EGX! Me and Jeff from stargazy studios were manning the Production Line booth. TBH Jeff was there more than me, as I just get crushingly tired in the presence of lots of people, especially if they start talking to me :D. I realize now what an introvert I truly am. Still, it was great to watch people try the game for the first time, as it gave us a lot of insight into the really obvious mistakes I’ve made with the GUI and tutorial. The biggest and most obvious screw-up was the tutorial did not (and still doesn’t, as of writing this) explain to you that the middle mouse button, or ‘r’ key rotates the current object… ooops.

We also had some non-intuitive GUI, which we never realized, because presumably players of the game work it out, and then forget they were ever confused. here are some examples.

  • Some players got confused as to what was an export slot (for finished cars) and a resource import slot. I think I’ve solved that by adding little animated GUI for them:
  • Some players tried to place a slot down on top of existing conveyor belts, which in theory should work, but in practice doesn’t because the code just refuses to let you place a slot on top of any ‘occupied’ tile, even if it makes sense because you are aligning the conveyor tile of the new production slot with the existing conveyor tile going the same way. I now have code that detects that you are doing this and lets it happen, which feels so natural; now its implemented.
  • Some players tried to place a bunch of slots then drag a conveyor belt through all of them, which also makes sense but doesn’t work because of the way the drag-routing works, but I think I have a solution to that (maybe… it might be a bit hellish) This is one of those things that sounds simple to code… until you code it and realize how you still have to create a sensible route for the dragged path, and also ensure all of the directions line up…etc. I’ll think about it.
  • A few players didn’t seem to notice research *at all* and considered the game pretty much ‘done’ when they had shipped some cars, which is so very very far from the truth :D I’m going to have to work on some advice popups in the mid game to point out that you need to get some research done.

Anyway… we learned a lot, and met some of the games early players, and also some streamers and youtubers, and gave away 1,000 Production Line badges and a bunch of leaflets and stickers (I really should have ordered more than a token 100 stickers…). I find these shows tiring, but I think having a presence at them does help.

I also gave a very well attended talk on the show floor called ‘How not to go bankrupt’ which I’ll also be giving at indiecade paris, and maybe after that, I’ll put the slides online on this blog. That was a bit nerve-wracking, but also good to do, for PR purposes etc…

And so, because I like to be that indie who gets things done, I have returned home and immediately released build 1.32 of the game. There is a full breakdown of what changed in this forum post. I also recorded the latest developer blog video today:

Plus…we are close to releasing Chinese, Portuguese & Russian versions of Democracy 3. PLEASE if you have a steam build, check out the beta branch (even if you only play in English) and let me know if you encounter any text rendering issues :D

Exciting news on Shadowhand soon!

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.

The Democracy 3 unicode post. Oh yes

Right then…here goes…

A while ago, we decided that what we really needed to do was translate our biggest selling game (Democracy 3) into Chinese and Russian, and also probably some other languages too. This probably sounds easy but its not, because Chinese and Russian and other fancy languages use non-ASCII characters, so we had to translate the games engine to use unicode instead of ASCII. In theory this is easy, in practice not, especially because there are a LOT of Chinese characters, and you cant just whack em all in a phat bitmap like you do with western characters. This means a lot of assing-around which was all done by jeff from stargazy studios (of Democracy 3 Africa fame) who is my able assistant in such matters.

Anyway, the ups and downs of this process are enough to write a major opera over, but suffice it to say, we think its actually done now. As a test, we are dipping our toe in the water by releasing just now (OMG!) a new beta build of Democracy 3 on steam. (Windows only, steam only right now). If you right click the games icon/name and select betas there is a no-password beta to opt in to this version. This version will only be served to you if your steam language is set to English (we will be changing this…), but it now gives you the ability to change language in the game and select from:

English, French, German, Spanish, Italian, Polish, Portuguese, Russian and Chinese.

You can do this under the options screen in a new drop down box. You can then enjoy wonderful screens like this:

And this:

Which excite me more than they should.

In practice what this means is we will be able to simultaneously support a bunch of new languages AND get rid of the silliness of separate builds for German French and Polish (WTF were we thinking…?). It also means we have some cool new rendering etch built into the engine which we have secret plans for…

ANYWAY… If you are an English speaker who also happens to be fluent in one or more (or even none!) of the above languages, and have Democracy 3 on steam, and feel like opting in to the beta and giving it a spin, we would really like to know what you think. Ideally you cannot tell ANY DIFFERENCE to how the game used to be (although perhaps the text is crisper). All we are really worried about is if it just fails or bugs-out on certain video cards. Any feedback is welcome!

Its so shocking that I’m posting about Democracy 3 again isn’t it? Next thing you know I’ll be telling you we have a release date for shadowhand :D