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

Progress on Democracy 4 speeding up

It must be hell being a ‘producer’ in the big budget triple-a games development system. The development of a video game proceeds at almost any conceivable rate other than linear. I’m sure for some games there is an immediate sprint of exciting new stuff…then a drought as bugs are fixed. In the case of Democracy 4, we have had a whole lot of under-the-hood re-coding with little to show for it visually, and now a sudden rush of cool stuff happening.

Of course a lot of this tracks from the point at which artwork and music and sfx start rolling in. I use contractors to develop music, sfx and art, so I don’t have the option of just hearing the odd new piece of music or peering over an artists shoulder to see how stuff is going. It can be hard to drill into people that “yup, you can send me new stuff EVERY DAY, its fine”. As a result, Democracy 4 seems to progress in sudden jumps and spurts when new stuff goes into the game.

When I talk to players of D3 about the new game, they are always focused on new options and content. What new policies will go in? what new events? what will they be able to do that they couldn’t do before. This is all vital stuff, and I’ve kept quiet and felt bad about discussing the games development for quite a while because we simply haven’t been working on that.

For ages, it feels like I’ve been tweaking the shape or size or color of buttons, the layout of dialogs, and jeff has been recoding the way everything gets rendered (especially text, allowing us to support Russian/Chinese when the game leaves early access rather than four years later…) This is all super-vital stuff, and i’m glad we have been giving it the attention that it definitely deserves, but its probably left an impression that D4 is a shiny re-skin rather than a proper sequel…which is not true.

I recently mentioned that we now have third party support (if people choose it), which is the first new feature. We have also discussed (and its on my personal todo list) adding support for nationalization and privatization to the game. This will make quite a difference, but we haven’t reeled off any of the new simulation data we will be adding to the game.

Today I added some new simulation values to the game: healthcare demand and Internet Speeds. These are both pretty cool. High tech means more healthcare options (operations & treatments) are possible, but also increase demand. Immigration and actual healthcare problems such as contagious diseases, alcoholism and obesity will also feed into demand. Balance this against private and public healthcare provision to work out if you have a hospital overcrowding crisis.

Internet speeds is a fun one because its a much-needed policy that allows us to make young people happy or unhappy depending on speed. I’ve also added an effect where it makes people more likely to be self employed, which is relevant to me, living in a tiny rural village where there are lots of people working from home. Internet speed is way more of an issue here politically than you would think.

Other stuff we added recently includes multinational tax avoidance (especially by tech firms, such as ones that rhyme with ‘moogle’ or ‘blapazon’), and a ‘diverted profits tax’ (also sometimes called a transfer-pricing tax) which helps to combat it. There are a LOT more to come, and yes, to avoid 99% of the replies…universal income will be one of them :D.

Because I have been a bit slack on blogging and am reducing my twitter usage, I should point out to anybody reading this that OH MY GOD, you can now get our awesome pharmaceutical cure-em-up ‘Big Pharma‘ on the Playstation, The XBox and on something called the Nintendo Switch. I think those are game ‘consoles’, which all sounds very young and hip to me. It sounds like a perfect Christmas gift to me. (but not for me thx, I’ve got a copy).

Social Media Re-think

I’ve been on the internet since 14,400 baud modems. I’ve had this blog for a stupid length of time. I was on facebook and twitter *fairly* early. I remember IRC, I remember ICQ, I remember AOL. I remember the sounds modems made. I remember usenet newsgroups, and excite, lycos and alta vista.

The internet has never been as inhospitable as it is now. Its never been this toxic, this abusive, this unusable. Yes, I include usenet and IRC in that.

Three of the people responsible are Jack Dorsey (twitter) Mark Zuckerberg (Facebook) and Evan Speigel (Snapchat). There are others. They are mostly identical copies of each other, showing laughably little diversity. The people behind all this are white, straight, male billionaires. Why do I mention this?

Because ironically, the white, male, straight billionaires have weaponized ‘identity politics’ and similar topics to make more and more and more money. They are well aware that the way our brains work funnel anger and fear directly to us before our reasoning system even kicks in (an evolutionary advantage, now turned against us). The BEST way to get people to keep communicating and ‘engaging’ is to use hatred and fear. Nothing else works so well.

Social media’s business model is based on ads, marketed to people who are ‘engaged’ and always on the site. What drives more ad impressions? hatred and fear, hatred and fear, hatred and fear.

Constructive debate doesn’t sell newspapers and it doesn’t sell ads either. Every time you get dragged into a heated online argument or hate mob, or get talked into retweeting some angry aggressive hashtag deriding people as communist scum, or fascist bastards, or white-supremacist racists, or what ever other extreme hyperbole we can dream up… you are being whipped into doing this to make 3 white male billionaires more money.

Identity politics and ‘woke’ politics is PERFECT for this. What could possibly cause more hatred, anger and fear than making sure everyone is pigeon-holed into smaller and smaller and smaller and more rigidly defined groups. That way more and more people are OUTSIDE your group. The best thing would be for you to cram hashtags into every post, to ‘trigger’ as many people as possible, and stick as many identity politics terms on your Facebook or twitter profile as possible, to annoy as many people as you can. Make sure you update your Facebook profile to signal the latest opinion on topic X. You CANNOT possibly be a fan of David Bowie without changing your profile pic when he died, otherwise how would other people KNOW you liked David Bowie! the horror! Quick! fill out your profile even more, do you like THIS album? did you watch THIS movie…

People are being railroaded and goaded into sticking their politics and their sexuality and their innermost thoughts right into the faces of EVERYONE they meet, so we can all form instant judgments and hate each other even more to keep those white male billionaires in yachts and private jets. Keep arguing kids! keep being angry! you don’t know what people are angry about TODAY? oh my god…here is WHATS TRENDING NOW. (almost certainly not really whats ‘trending’, but what creates the most ‘engagement’, meaning anger, meaning ad revenue…).

Fuck it, I’m done playing this game. This year I left a mailing list for games dev I’ve been in for year. I closed my account at a forum I’ve been on for decades. I deleted 20 years of posts on one private forum. yesterday I nuked 75% of my facebook ‘friends’. I don’t fucking care if you are angry at Donald trump or Jeremy Corbyn, or you support the first amendment, or the second amendment, or you are white or black, or gay/str8/cis/nonbinary whatever.

Frankly unless I want to have sex with you what the fuck do I care about your sexual preference? Unless we are picking a restaurant together what the fuck do I care about your diet? Can’t we just get along without sticking ourselves in these stupid-as-fuck boxes? I don’t know if my next door neighbor is gay or straight or bi, or whether they support legalizing drugs, or if they voted conservative. We get along fine, it hasn’t come up, why WOULD it come up?

I’m keeping my blog. I may blog more and tweet less. I own this blog, its on my server, I can moderate and delete comments by abusive people, and only people who know me/my games read it, which is fine. I see little value in having arguments with random maniacs on the internet. I’m also keeping twitter because I find it occasionally quite funny, but I plan to tweet way less.

I’m less angry in person than online. SO many times I meet people and they tell me I’m not what ‘they expected’. Social media enrages us all, weaponizes us all to spread lies, fake news and the more extreme opinions as possible. Its bullshit and we should all do our best to stop dancing to the tune of three white male str8 billionaires who don’t care how much damage they do.

Stock Market Analysis ‘fun’

EDIT: lol. I had some serious bugs in my code, so ignore those numbers. The real ones are less extreme :D

To try and crack down on my almost comical tendency to overwork and be working 100% of the time, I decide to do some ‘fun’ coding today instead of work, to help me ‘relax’, which is something people keep telling me to do. Obviously I’m still me, so it involves programming..

I dabble on the stock market (I used to work up there many lifetimes ago) and something I have long found infuriating is the absolute awfulness of UK retail stock-market reporting. Its almost like they don’t WANT you to know if you are making money or not.

My broker (Hargreaves lansdowne) is great at telling you your current profit or loss as a percentage and in financial terms, on each trade, but this doesn’t take into account how long you held the stock, rendering it effectively useless. If stock A has been held 4 years and is up 4%, thats way less attractive than stock B, which I bought last Wednesday and is already up 1%. They make it IMPOSSIBLE to get the real ‘;annualized’ figure.

What I wanted was ‘the rate of return, if I held this stock for a year, and the stock growth was linear over that year, given its growth during the time I held it’.

It turns out, to do this, I had to copy and paste a bunch of PDF files into .txt files, then write my own code to parse it all and rearrange it into a CSV so I could visualize it using excel. This also meant grabbing a copy/paste of today’s prices for stocks I still hold and have not sold, and then doing the SUPER TEDIOUS work of copying and pasting dozens of names, because it turns out HL use ‘different text’ to describe a stock in their PDF reports than they do in their live prices (grrr). Its also annoying that they changed their formatting about 2 years ago to include the exchange code, so I had to detect those and strip those out of some lines of text. Plus there are other errors, and missed text here and there, meaning my results are (so far) probably not 100% accurate.

I suspect all the data I *do* have is correct, but in some cases there are some missing buys and sells, so I’ve effectively ignored those stocks.

Still…it amused me for over half a day, and means I can bask in my glory on these stocks:

And cry into my sleep about these…

None of it is as good/bad as it looks, because the results are annualized. For example I think I held my bitcoin for about 48 hours, and some of the others I held for very short periods as well. Its probably worth doing some sort of clever smoothing code to work out which are the ‘long term good picks’ versus me just getting lucky over a week or a month.

My TSLA stock is a good example. I’ve made a series of buys (and one sell) over a great many years, and although its been very volatile lately, the ROI on an annualized basis is looking pretty sweet. The Biotech Growth Trust is also looking pretty cool, and I’m also happy with Materialize and Teradyne.

I should probably do that pointless legalese bullshit here that says ‘this is not advice’, but frankly if you take stock picking advice from a British Chocaholic game developer who likes to drink a lot, then you probably aren’t going to listen :D.

Democracy 4 – Multi Party Support

So I had a sudden mad rush of adrenaline this past weekend and decided I should code multi-party support into Democracy 4. This is something people have asked me for over a very long period, but I’ve always resisted it. I thought it would change the game into some horrible three-way negotiation and back-room dealing simulation rather than be focused on actual policies and theories which is what I am more interested in…

Actually I’ve always found it weird people WANT the game to be basically more like the corrupt, undemocratic bullshit that a lot of western multi-party politics has become. Surely in our heads what we want is a trial of ideas and philosophies where the best policies for the people win? nobody fantasizes about having to implement policies you hate because you need to haggle with some other party leader?

The sheer optimistic joy of coalition government

Anyway…eventually me and Jeff got chatting and decided that there WAS a way to include some elements of multi-party politics, without totally breaking the way the game works, and which could work within the existing framework of political capital and policy decisions. But first, I had to sort out the UI.

Democracy 3 has always had 2 parties, and because I never intended to change this, there were actual hard coded ‘pointers’ to the player and opposition parties everywhere in code. Essentially this just meant a lot of donkey-work going through code and changing this to an open ended list everywhere, and checking everything would save and load ok, and that we didn’t have any legacy stuff referring to ‘the opposition party’ in the code.

Then I needed to re-jig a lot of GUI code. There were basically three places where parties get referenced, the party screen (showing members/activists over time), the fundraising screen (this was part of the D3 electioneering DLC but now integrated into the game) and the election results screen.

As I write this, I’m done changing all the GUI apart from the post-election breakdown of each voter group and how they voted (it needs different colors for each opposition group too). So right now, the post-election screen in a 3-party game looks like this: (work in progress BTW)

shiny new user interface (work in progress)

I’m thinking (for now) that a 3 party limit makes most sense. To explain that, I need to delve into the two areas that are needed to make this work within the simulation: Joining parties, and coalitions.

In the current game (Democracy 3) party joining is simple. Players build up over time a sympathy to a party if they are super happy (player) or super unhappy (opposition) eventually joining that party. A weakening of sympathy for a party over time results in the player leaving. I decided to keep this system, but to position the new 2nd opposition party as a ‘centrist’ party between the player and the opposition. In other words, if a value of 100% happiness means joining the players party, and 0% means joining the opposition, 37.5% means joining the new centrist opposition. Why 37.5%? because we still see 50% happiness as being the point where you will vote for the player (if you vote…)

Let me explain the term centrist. I’m not referring to politically centrist at all. In fact the game makes no explicit assumption about the political position of either opposition party. Basically the ‘opposition’ are the party who absolutely oppose your party position on everything, and the ‘centrist’ party (the new 3rd party) are midway between you and the opposition. In theory, your party could be centrist, the opposition right wing, and the new opposition mildly left wing. The key point here is that the new opposition is *closer* to your position than the old opposition is.

random image of yang for no reason

So…I’ve done all the code for this and modeled correctly voters joining and leaving all 3 parties over time. So thats in the game and working (hurrah!). The next thing I need to do is to code in the effects of a coalition.

If your party gets >50% of the votes in an election (ignoring absent voters) then you win just as before. If you do NOT get that, but you ARE the largest party…then you go into a coalition in government with you sharing power with one of the other parties. At first sight, this makes no difference to how the game is played…

…but actually it reduces your political capital each turn dramatically. In other words…you really cant get much done. HOWEVER, you will be regularly offered deals by your coalition partner, where they basically say ‘implement/cancel/change THIS policy, and we will give you X political capital’. Obviously we will engineer code that will always make that an *interesting* decision for you to make. In other words, to reference my own countries recent coalition government, this is ‘give us a referendum on political reform and we will stop blocking your economic policy’. Obviously in real politics this happens all the time (in >2 party systems).

yet another group of happy politicians in a coalition! compromise feel so great!

Hopefully this strikes an interesting and acceptable compromise between having all the machinations of multi-party government, while still keeping the game playable and understandable to people who enjoy Democracy 3. I do intend to make this totally optional as a parameter when you start a new game, so you could (for example) play the USA as a true 3 party system, or Germany as a 2 party system, whatever appeals to you.

This is the first big ‘gameplay’ change that makes Democracy 4 different to democracy 3. So far its been tech changes (multi-language text rendering and vector graphics) and UI changes (OMG it looks so much nicer). We also have a lot of content changes planned (policies,events etc). More on that over time…