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

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

 

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.