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

Democracy 4 crowdsourced translations now on localizor

I was musing about how on earth to manage the people who are keen to help out translating Democracy 4 when I was pointed at this awesome website called localizor which seems to be set up to do exactly what I needed: Localizor

This is so cool. Its basically an online database for you to share the translation keys for your game, and optionally a single reference language (in my case obviously English) and anybody who wants to contribute can enter text for any of the languages you have listed. There is a cool progress bar and it also shows you which users have made the biggest contributions. Its basically awesome.

This has cool features like showing you the google translate version of any string, so I guess you can check that people are not typing in absolute nonsense (or worse, something offensive), and people can vote on each others contributions etc. I think you can ban people too, if they are being malicious. Its basically a reall well-thought out system for doing exactly what I need.

There is a free trial, and then it costs a monthly fee, but its cheap, and a no-brainer really. TBH the biggest hassle was writing the code to output all my translated data (which is in csv files, and some ini files) into the right format to be imported into their database. It works on the assumption of KEY = VALUE as opposed to some of my stuff which has KEY,VALUE1,VALUE2,VALUE3 etc, for a bunch of different columns of data.

All-in-all it took about 90 minutes to write code to dump out all my text, and then manually submit the whole lot to the website. I also need to import the nearly-done fan-made italian translation I have, and eventually write my code in reverse to slurp up whatever format the site exports to and pump those values back into my own format.

Democracy 4 is, by its very nature, a global game, and its really cool to be able to leverage all the work jeff did regarding unicode, and vector rendering and fonts so we can support some often less-supported languages. I’m especially excited at the thought of Democracy 4 in Korean :D

If anyone can do it, everyone will.

Every now and then I come across a story about how mid-tier youtubers are making an absolute pittance, or that indie bands on spotify earn less than minimum wage, or that writers (like my wife!) can expect to earn a really trivial amount for what they do.

This is totally and utterly expected, and its down to barriers of entry, of which there are a few.

Barriers to entry is an economics term that refers to all the stuff you need to have to produce a certain product in the market. Some industries naturally have small barriers to entry (busking only requires a guitar, for example) and some have huge barriers (spaceships, cars, silicon chip production). Generally speaking, barriers to entry are very bad, from an economics point-of-view, because high barriers-to-entry lead to ‘abnormal profits’ by people in that market, as its difficult for newcomers to enter the market and bid down the price of the product.

It might seem that this explains why indie game devs rarely make any money, because the barriers to entry for indie dev are tiny. You need an office chair, a laptop, an internet connection, and…a rudimentary skill in programming and game design. Thats a LOT of people, and its WAY more than it used to be, now you dont have to code your own engine and dev-tools are affordable.

SIDE-NOTE: YES amazingly cliff is aware that there are millions, if not billions of people who cannot afford a laptop and broadband. Well done! 10 internet points for you! But this blog post isn’t aimed at solving inequality. Not everything on the internet is aimed at everyone, or is a political statement!

Anyway… indie game dev does indeed have super-low barriers to entry and this should mean that nobody in that industry makes much profit, but hold on! some of them do! Jonathan Blow! Introversion! Me! The Factorio & RimWorld devs… how is this possible?

Barriers to entry can include personal ones as well, not just financial requirements. Sure, anybody can buy visual studio (my dev tool of choice, about $500), the same chair as me (aeron, about $1k) and a decent PC (maybe $1,500 tops?). They can then decide to make an indie game. This will not be profitable, as there are a LOT of people in this green segment below…

Some games are technically much easier to make a first-game in than others. Platform games come to mind, as do arcade games. If you are using unity or similar, maybe a primitive FPS. Some genres are harder. Strategy games are harder, as are RPGs, Simulation games can be really hard. By choosing one of the ‘harder’ genres, you are already putting up barriers to entry to prevent your market value being competed down. Of course your job just got harder, but thats to be expected. There are fewer people in the white segment below.

Where it gets more interesting is in leveraging barriers than cannot easily be broken down by any means. That comes down to what makes you…YOU. Leveraging that unique venn diagram of skills and interests that makes you capable of making the game that YOU can make, but its unlikely any other dev can.

In my case, studying economics at LSE, and the son of parents who were both trade union reps, someone who got taken on ‘fun trips’ to the Trades Union Congress and Labour Party conference as a child (yes really), plus an aptitude for maths and logic (and clearly being on the autism spectrum) means that my venn diagram screams MAKE COMPLEX POLITICS SIMULATIONS. There are a handful of people in the white segment below. maybe me and Brad Wardell and half a dozen others?

Now in theory, anybody could try to clone Democracy 4 and force down my profits, but in practice its hard because you have to REALLY be a politics geek to spend the time and effort to make that sort of game, and the coding challenge is sufficient that it still gives me headaches after 39 (yes really) years of doing programming. Plus I have a special super-power that allows me to be even better suited to that exact project:

I’m pretty much a centrist. Politically I’m slightly right leaning on economics and slightly left leaning on social issues, but generally speaking I’m a moderate. That means I can sit down and have a meal and a chat with a hardcore bernie sanders supporter OR a trump-supporter, and get along with both as people. That means I’m not trying to have a big political agenda with my politics game, which broadens its appeal. (I’m not going to attempt to add another circle to that diagram…)

Every extra circle you can add to your indie game dev venn diagram of uniqueness™ is going to boost the probability of you earning decent money. Of COURSE…. you still need to work hard and make a great game, and make it appeal to enough players and do the other 999 things. This system only helps you maximise the returns WHEN you have an idea, and execution that results in something people want, and buy. I still think its worth keeping in mind.

Democracy 4: The fixed income rewrite

About a week ago I had this mad idea that it would be cool to plot every single Democracy 4 voter’s wealth on a graph, so that you could see where they were clustering in a nice easy-to-understand way. Within an hour it worked, within a day, a new rewritten version that looked much nicer with blue dots on it was done, and I was tweeting, and people were saying ‘yay’, and then everything went fucking mad.

By hovering the mouse over one of those blue dots, you could see a breakdown of how that persons income was affected by every government policy or situation, indirectly, through their membership of voter groups. This data already existed in Democracy 3, it was easy, it was just GUI code, and done really quick… and that showed me what an absolute mess the simulation was…

Democracy 1,2,3 and 4 are all coded as a homebrew neural network. Every neuron has a value either capped from 0->1 or -1->+1. Everything in the game is a neuron, a voter, a voter group, a policy, a minister, an event…everything. Voters also have an ‘income’ neuron which tracks how much money those voters have. So…in supersimplistic terms if you want to know why Bobs income is 0.78, you look at the 21 weighted inputs from all the voter group income neurons, and you see all the +0.2, -0.1,+0.32 etc, that adds up to 0.78. If you want to go one stage further up the hierarchy you can track the origins of those effects to policies etc.

Thats worked for 3 games perfectly. But its a crap system.

The trouble is, peoples incomes are on a 0->1 scale. And all effects are percentages. So for example if free bus passess give retired people a 0.05 income boost, that increases the income of all retired people by 5%. Fine?

NO

Because working class ex-street sweeper mavis just got a bus pass worth $500, but retired hedge fund manager Boris just got a buss pass worth $15,000. WTF? why does democracy hate poor people? The problem is that we have only ever been able to use effects to apply percentages to incomes. That means EVERY benefit, or tax, or effect is proprotional to your income. That means lambourghini drivers pay more in car tax than skoda owners (maybe intentional), but means the state pension depends on how wealthy you already are.

Its fixed. it was hard.

Basically I have had to code an entirely new shadow system of fixed-income neurons that can cope with values beyond 1, and then (this is the hard bit) written code that stitches it all back together internally so that we can still use the same mechansims to move people between middle-income and poor etc, and still display everything in the UI as though nothing has changed.

This was hellish, because it also means restitching together lists of totally different UI items on the fly with different calculation methods to come up with a result that looks the same as it used to. Its taken a week of fixing edge cases, checking, altering UI, and writing lots and lots and lots of code which mostly will go underappreciated :D.

But thankfully it now works, and it means we can have effects in the game which are +10% income of retired people, and also effects that are +$10,000 income of retired people, as the designer or modder sees fit. This means helicopter money can actually be fixed for everyone, free school meals no longer serve foie gras to rich students, and so-on.

You wont notice it immediately but its a massive improvement in the underlying simulation code in the game. It stressed me and tired me out so much to do it that im forcing myself not to code today so I can recover.

Liberalism/Socialism tweaks

I’ve been looking at the political compass part of Democracy 4 while running the first few decent play-tests and it was clear that the compass was not accurately reflecting my policy choices. Some further digging suggested that the problem was that not enough of the choices the player made were affecting the underlying values for global ‘liberalism’ and ‘socialism’.

In the game, every player has a (more or less) random innate level of socialism or liberalism (there are a few voter group and country based adjusters). Initially, this determines the extent to which they identify as socialists/capitalists and liberals/conservatives. The game also models all the effects on the global values of socialism and liberalism and pre-calculates how this will have adjusted voters opinions before the game starts.

I also take those global values to indicate where the country currently lies on the political compass:

It was clear that I had missed out those effects from a whole ton of policies and simulation values, where I might be upsetting liberals, but that didn’t actually make them less liberal. Obviously these are different things.

Some policies in the game (or situations etc…) anger people with a certain view, which is often instantaneous, and some actually change peoples view over time. For example, if you legalize cannabis, then this is likely to upset conservatives and make liberals happy, almost immediately as the change in policy hits the news cycles. The longer term effect though, is likely to be increased liberalism, and people get used to the idea that cannabis is legal. This is a shift in nationwide attitudes.

This has happened a lot in my lifetime. Attitudes in the UK towards homosexuality have definitely changed dramatically since I was a teenager. The idea that a CONSERVATIVE government would be the one to legalize gay marriage would have been ridiculous in the 1980s, for example. Also there have been big changes in the attitudes towards a free press and deference to politicians. (Free press in a driver of liberalism in the game). By the way, gay marriage and also gender transition are policies in the game.

In many ways, what I’m trying to model here is shifts in the overton window, which is a concept that illustrates how political values shift over time:

The way this works in our simulation is that we are effectively moving voters around on the political compass as you change policies (in fact-oh-my-god as I type this I realize I could add a mode that plots them all on there…). The actual policies you implement have to stay within that virtual overton window in which the majority of the voters are contained. In fact, I can plot it as a sort of flexible overton splat :D

I think the last two days of fiddling with this stuff have gone well, and the game is more balanced, more accurate and more fun as a result. I wrote some extra debug mode code that let me dump out a nice list of all of the potential inputs to these values to a spreadsheet so I could check everything looked as it should. Doubtless there will be further tweaks over time, in response to player feedback, but its a step in the right direction.

Anyway, thats enough blogging, I’m going to go add tiny voter dots to the political compass :D

Making a game with real-world issues

My current project is Democracy 4, a game about politics, at a time when politics is…explosive to put it mildly. Right now we are in the middle of a global pandemic, there are riots going on over America, and countries all over the world have problems with fake news, extremism, extreme nationalism, gun violence and many other problems.

Democracy 4 obviously has to reflect the real world. Its a game about politics, so you cant pretend some issues do not exist because they are awkward. In fact, we are hopefully covering all political issues regardless how divisive they may be. Our game lets you outlaw homosexuality, or lets you allow gender-transition on demand. You can outlaw guns or let everyone have machine-guns. You can close all the airports, you can ban abortion, you can legalize prostitution, heroin and much more.

However, one of the topic in the game that I worry about right now, due to the current news cycle is this one:

Race riots are not new to Democracy 4, they were in D3 too, but it feels weird to experience them in-game at the same time as they are actually happening. It reminds me just how *delicate* such topics are. What are the causes of race riots? Not just in the US, or where I live in the UK, but over the whole range of countries that we hope to cover. This is hard to nail down to a few equations in a spreadsheet… Currently the main causes of them are Racial Tension, Unemployment and Violent Crime. Racial Tension itself has a number of causes, but its linked to high levels of immigration. You can mitigate it with a high standard of living, race discrimination acts and a ‘stamp out racism’ week, which is a subtle bit of social engineering.

I’m trying really hard to make a politics game, not a POLITICAL game. There is no magical code buried inside democracy 4 that tries to arrange things to preach a subtle (or not subtle) ‘racism is bad’ message. As an individual, obviously I have my own views, but as I read more and more online political discussion I find it clear that preaching never convinces anybody of anything.

Democracy 4 is supposed to be a fairly accurate simulation. In it, I’m trying to guess what the causes of events are, and the outcomes and then just represent them. You can see that race riots hit GDP, and upset everyone. They should maybe arguably affect tourism too. They will also upset conservatives, who presumably worry that their houses may get looted in riots?

In general I am a believer that logic dictates treating humans fairly and equally, and that if we follow evidence, data and science, we tend to make good decisions. That includes following maths and economics. In Democracy 4, the player will learn that race riots severely affect their re-election chances, hurt the economy, and can be expensive in terms of the policies required to get them under control (rubber bullets, tear gas, water cannons etc). Someone who wants to *win* at Democracy 4 (constant election wins) will learn not to let any one political group get too angry, and that includes ethnic minorities. Its just simple good politics in the real world too.

I think this is self evident to anybody who plays strategy games. There is always a consequence to every decision, and its good to think long term. If you are playing purely as a capitalist, you might see the need for some seemingly socialist policies just to prevent the social-breakdown and expensive consequences of vast inequality. Sure, you can pay people poverty wages, but if that means you need twice the police force to keep you safe as a result, is it really a net win?

I think its also a powerful argument in environmentalism. Sure, you can hate those hippies who hug trees and bang-on about carbon emissions, but have you SEEN the economic costs of extreme temperatures and food riots/wars/sea level rise that are the consequence of inaction? And for that matter have you seen how cheap electric cars are to run?

There is a persistent myth that Henry ford paid his workers a higher than normal salary so they could afford to buy the cars he made. Thats bullshit. I’ve read several books on ford. They were forced to hugely raise wages due to incredibly high staff turnover, but nevertheless its an interesting myth, that makes a lot of sense. Inequality has an ultimate cost, not just in security, but in terms of its negative impact on the economy.

This probably all sounds unfeeling and harsh, but I think of it as pragmatic. I believe in equal pay for women, equality for all races, and fair pay for workers *on principle*, but the most powerful argument is an argument of self interest, and the hardest argument is the ‘you should do the right thing’. There are a LOT of gun-toting, trump-supporting, right wing electric car owners now, because they finally made fast, sexy, affordable ones that people wanted, Appealing to people to buy them out of guilt never worked.

Nobody sums up this school of thought as well as quark from star trek deep space nine when he constructs an argument for ferengi women being allowed to wear clothes. He argues that if they wear clothes they will have pockets, and if they have pockets they will want to put stuff in them, so they will buy more stuff and stimulate the ferengi economy.

Its comedy, but also true.

I write all this to make a point about the style of Democracy 4 and its intentions. We cover a lot of dark, serious topics, and we do so without comment. There is no flashing symbol reminding you that RACIAL TENSION IS BAD. Adding it would be redundant, and change nobody’s opinion. Decisions in the game have consequences, and learning what those consequences are without further comment, or preaching is, I think, the best way to cover issues like this.