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

Modelling cultural differences in Democracy 4

One of the biggest challenges in designing and balancing Democracy 4 is having a single simulation model work over all countries. In theory, if *everything* is modelled, then you have a perfect model of human society and behavior, and feeding in the correct settings to each country will produce the required results.

Because I am neither superhuman or crazy, I don’t think this is really feasible, so we limit the simulation to that subset of variables that I think makes the game playable and fun, and reasonablyt accurate, and then I am left with the task of working out how to fudge that simulation to fit real world experience.

An example of this in the game is productivity. In the game, worker productivity is quite an important simulation value. The player can see its value, a chart of its history and view its inputs and output:

Of course the simulation is assuming that the list of inputs and outputs to this value make sense over all countries, or in other words, in all cultures, but this is a very simplistic view. Whast actually makes one country more productive than another? there can be a million things, many of which we do not model. For example:

  • Extremes of temperature in a country may require a mid-day siesta where less/no work is done.
  • A culture of extreme deference to authority may reduce productivity due to a lack of suggestions/criticism of bad practice
  • Highly variable and extreme weather may mean that work is regularly interrupted as a result
  • A cultural expectation of strong work/life balance may reduce the tendency to do overtime
  • A cultural work ethic may encourage overwork and unpaid overtime by default

We do not explicitly model any of these things as tracked variables. You could argue that it would be possible, but in some cases they have historical roots that are now just cultural norms and cannot easily be explained. For example here in the UK, the British people tend to have a general distrust of, and dislike of politicians and authoritarian figures. ID Cards are NOT a popular idea here. The reasons for this are hard to discern, but its certainly rooted in the past and not something you could easily model with numbers.

Similarly there is a deferential attitude to age and rank in many Asian countries that works in a similar way, and likely has both positive and negative outcomes. I watch a lot of Korean dramas these days and its fascinating the extent to which people seem both obsessed with education and status, and also massively invested in the minutiae of office politics. Why is this? very hard to say.

Review: Misaeng (First Impression) – The Korean Lass

It might be hard to model this stuff, but we certainly cannot ignore it. For example Germany IS a very productive country, especially at manufacturing. It has decent holiday provision for workers, and strong unions, yet its productivity is super high. why? A lot of it can probably be put down to the cultural work ethic. Take this article, for example:

“In German business culture, when an employee is at work, they should not be doing anything other than their work. Facebook, office gossip with co-workers, trolling Reddit for hours, and pulling up a fake spreadsheet when your boss walks by are socially unacceptable behaviors.”

Because I need to model Germany as accurately as I can, I have blatantly included this as a script that runs and generates extra values for Germany to represent German Culture. in this case, a free bonus to worker productivity:

Adding this may seem like a 2 minute job, but NO. It triggered a boost to GDP that resulted in traffic congestion caused by the emergence of a gig economy (uber!). This has high regulation in Germany, so I had to boost labor laws, which then results in a corporate exodus away from germany…

I am currently considering whether the German language should act as impediment to corporate exodus (Companies tend to prefer to relocate to a country with the same language as them, and German is not as popular as English)… and so the balancing continues…

There are similar scripts for each country, and I’m gradually amassing as much feedback as possible and tweaking the values to make each country feel authentic, while keeping the same basic economic and political model. Lots more tweaking to come over the next few months!

On the topic of voter happiness in 3 party countries

I’m currently balancing Australia in Democracy 4, and its tough as almost any starting condition seems to result in a depressingly small number of people supporting the current party. I have been fiddling with the numbers for this for hours, and its occurred to me that its SO much harder in a 3 party system, and the game may be having trouble conveying this…

Take this screenshot:

Thats the current voter breakdown at the start of the Australia mission. Actually a few people are quite clearly over the 50% mark (to the right) and thus are more happy than unhappy, and in a 2 party election, things here would be looking bad…but not catastrophic.

But in a 3 party system, only people who have happiness of 66%+ are going to vote for you. Your polling numbers are going to be an absolute nightmare. But on the other hand, you do NOT need 50% of the vote to win, only >33% in order to be the largest party in a coalition.

This leads me to another conclusion… The current system has the opposition party taking a 100% opposed view to you on all issues. A 3rd party, if it exists, will take a position between the two, meaning its generally going to be trying to please socialists & capitalists plus liberals & conservatives.

Put another way… the 2nd opposition party will always be pretty moderate. That gives them a bit of an advantage, as they can vacuum up votes from all over the spectrum.

I do NOT plan on actually modelling all the political stances of opposition parties. This is a HUGE undertaking and outside the scope of this game. However, I would like to improve the current situation.

One thought running through my mind is that the 3rd party perhaps should be assumed to be suffering from some sort of ‘small party disadvantage’. So instead of happiness mapping onto votes like this:

0-33% opposition
33-66% 3rd party
66%-100% player

It could map like this:
0-40% opposition
40-66% 3rd party
66%-100% player

…or something similar. I am just brainstorming this right now. I think that there are basically 2 problems apparent here:

  1. The game is maybe a bit too hard for the player in 3 party systems
  2. The simple display of voting intentions on the main screen is perhaps a bit pessimistic in 3 party systems.

Feedback and suggestions are most welcome.

One month in: Democracy 4 in Early Access. Phew. We survived!

Sometimes I get so caught in the insanely complex todo list that is my public trello board for democracy 4, that I forget to occasionally taken a breath, take stock, and analyze how things are going. So this being two days after the US election, (A still undecided one as I type this), its time to catch that breath and reflect.

Firstly. OMG we did it. Democracy 4 is in Early access, and being played by thousands of people who got it through the epic store, GoG, Steam, Itch and the Humble Store. We are properly 100% out there and launched. For a game that has had a pretty long (for positech) dev process, it does feel good to actually be out there in the hands of actual gamers. From a business POV its also good to have a project flip, so that it brings in money each month. Game dev is a terrifying business where expenses go up and up and up in hope of some future reversal of the process :D

From a biz POV, the game is selling pretty well. Nothing earth-shattering, but we did have a bit of a weird relatively-soft launch, in that when the game launched on steam Early Access, there was ONE country, ONE language, and the game was $26.99 and had no discount. (The price is the same now). Since then we have added a crowdsourced Italian translation, and have added the USA, Canada, France and Germany, but still… there was a lot of reasons why people may have wishlisted the game thinking to grab it later.

Overall, I’m quite happy with the way things are going, from a wishlists and sales POV. As I type this, we have 50,000 wishlists for D4, which is quite good, especially as approach Christmas.

The next thing to reflect on is… we made it to the US election without major meltdowns. Nobody has screamed at me and called me a fascist (well…they might have done that on twitter, I block a lot of idiots…) or a communist. The games website/forums and steam forums have not been completely besieged by political extremists hurling abuse. There have been no major political arguments on my forums, or the steam ones, and the number of bans and moderstaion events have been pretty low.

I think in general, the game attracts an audience of people interested in political philosophy and economics and strategy. Its thankfully not acting as a ‘meme’ game attracting lots of twitter mobs and qanon style conspiracists. This is a good thing :D

Obviously there have been some bugs, but I think I have just about kept up with things, so that the games reviews have stayed pretty good (I expect them to climb later as more content is added, balance gets better and the last bugs get squashed). We got some press coverage and some popular youtubers played the game, but we also got pushback from some people saying “no way am I touching politics on youtube” and so on. I expect after the US election is settled, that will change.

We *have* had some tricky moments. There was some issues with some pre-order customers not being able to find their free steam keys, and we jumped from the humble widget to itch, then back to humble again as a result. We had hoped to simultaneously launch on steam, gog, humble and epic, but epic was actually about ten days later. I did have a bug (election day crashes for 3 party systems with colorblind mode) that went unfixed for a few days longer than it should have… but thats actually about it.

I sometimes think that these sort of blog posts can be dull, because lets face it, its more entertaining to read about how the developer was trapped in a canoe in a blizzard while terrorists stole the servers with the source code, and then the publishers turned out to be Chinese military who sold the source code to the mafia, but frankly, its been uneventful. Thats likely because its something like my twentieth game release, so TBH I should know what I’m doing by now.

However if you DO want to read about absolutely crazy-ass shenanigans going on in tech companies that make you shout ‘wtf?’ then I am currently enjoying this book.

Its amazing the absolute maniacs that run companies some times.

Modelling voter happiness in a video game is… interesting but also horrendous

Its less than 2 weeks until the US election in 2020, and although it looks likely Joe Biden will win, nobody really knows, because modeling how people vote is really hard. I know this, because I’m struggling with it in Democracy 4. Over the previous variants of the game, the voting model has got better and better and more complex, but its still a nightmare.

Here is a very very basic, simple description of how the voting system works:

We collect all of the various inputs to a voter from voting groups and calculate their happiness. If its over 50%, they vote for the player, if its less, they vote for the opposition.

Thats fine, but way too simplistic. For one thing…who says they will vote at all? so we have extra mechanics to decide based partly on age, party membership, and how angry/happy they are… whether or not they even vote. Plus culturally every nation has a background level of ‘apathy’ which feeds into this. Then finally, there are extra multipliers based on how strong a ‘campaign’ each party runs, which help to ‘get out the vote’ by financial means (adverts) or activism (party activist boots on the ground).

Thats better… but not perfect because it assumes rational voters making purely policy-based decisions based on self interest. So I have to then adjust the happiness of the voter based on their ‘perceptions’ of the candidate, which are affected by both policies and ‘spin’ events in the media. I then adjust *that* effect depending how educated the voter is. Basically the poorly educated are swayed more by spin, the better educated less so. (FWIW you can toggle that mechanic off in the game).

That all sounds complex enough…but its not. There is also the matter of party loyalty. So for example, say you are a trade-unionist left winger in the late 1970s, and have voted labour in the UK all your life. Along comes Tony Blair as party leader, by any definition a centrist. You still keep voting Labour because…well you always have done right?

The party position drifts dramatically but for a good few years, maybe multiple elections, you still vote for the same party. You become someone in a centrist party, holding left wing views, but still voting for them. In short, your loyalty has trumped your analysis. To make the game more accurate, we model that too! you can even hover the mouse over a voter and see their loyalty and analyze them (and click-through to a detailed breakdown).

(To illustrate this, generally you see cluster or red, blue and green on this screen to show members of each party, but sometimes those colored dots seem to be further away from ‘the pack’. These are people like I mentioned above… members of a party, and voting for them, but actually holding different views).

This is all a big improvement, but its not *quite right* yet, because the problem is…we still have what seems to be fairly wild swings in voting behavior. This is because of ‘soft’ support for a party position. To put it simply, if 100% of the country have an opinion of you that is 49.9%, you will get 0 votes, and be wiped-out in an election. Shift them all towards you by 0.2%, and you will win a landslide.

This is correct political modelling, exactly accurate and how it should be…but somewhere, some of our numbers are not quite right, so we are not ending up with the real-world results we expect. I have not *yet* completed my analysis of exactly why, but I suspect its because peoples opinions sway too wildly, and because party membership and loyalty is not strong enough.

For example in the UK right now, a lot of polls would suggest everybody is very unhappy with the current government. In Democracy 4, they would be in a bad way, because so many of the electorate are angry…. but I suspect the Conservatives would win an election tommorow, because despite their anger, many people who voted conservative in the last election still prefer them to the alternative. In other words, their party may have changed, and performed badly…but they still have party loyalty, and its not been bad enough for long enough to drag them away from that…

This sort of stuff is a nightmare to balance of course, but not that hard to code. I think I likely already have most of the data and variables exposed for me to get it right. I hope people realize that this is what Early Access is all about, and hope people can see more of whats going on by looking at that scatter chart (these are new to democracy for d4).

The real challenge is explaining all this to the player. I can get a better UI than I currently have. it just takes a lot of time, and experimentation, and analysis. Hopefully people are patient about this during Early Access.

Democracy 4 is on Steam, GoG, itch and the humble store