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

Programming video: VTune for thread concurrency

Not of interest to many, but I made a little demonstration video (using Production Line) to show how I can check out the concurrency of threads in the game using Intels VTune software. Enjoy:

Announcing Democracy 4

Development has started on Democracy 4, the latest iteration of the political strategy game by Positech Games. Democracy 3 was released in 2013 and…quite a lot has happened in global politics since then, which we hope to reflect in the new version. We are still very early in the development of the game, so are not ready to show anything yet, but here are the answers to some expected questions:

Lead programmer and Lead Designer on Democracy 4 will be Jeff Sheen from Stargazy Studios, who also designed Democracy 3:Africa and worked on the Unicode port of Democracy 3 recently to allow support for Russian & Chinese translations. Cliff will help with design & testing and will be producer.

Democracy 4 will incorporate the extra features introduced in Democracy 3 Africa, which simulated corruption, limits to press freedom and other political phenomena from the extremes which are starting to become more common in western politics since the release of Democracy 3.

The game will be completely updated to reflect modern issues, so no more worrying about the ‘V’ chip and other long forgotten issues, and more worrying about fake-news, social media, and other social phenomena driving politics in 2018 onwards.

The release date is ‘some time in 2019’ and we expect to offer an early-access / playable alpha version to players before the games final release. Target platforms are PC, OSX and Linux.

The plan is to roll content from the existing 4 expansion packs (Extremism, Social Engineering, Clones & Drones and Electioneering) into Democracy 4 where appropriate and relevant to provide a single version of the game.

More details coming over the next few months :D

Glossy and not glossy car paint in Production Line

I was never convinced that the cars in Production line looked shiny enough. The average car on the average street looks…ok, but when a car is BRAND NEW, they look insanely polished and shiny, and I think that we were not achieving that in the game until recently.

Some messing around with re-rendering off images, and some adjustment of shaders and some code has allowed me to produce the following images, which I’m happy with, although I may end up toning them down ‘a bit’. (its a shader where I can easily adjust the strength downwards a bit).

Exhibit A is a car that is still being assembled. Structural bits are matte, and the final external panels are a bit shiny, because they are brand new shiny steel/aluminium:

Exhibit B is a car that has received an undercoat. Currently this is way too dark, so I’ll be adjusting that to be much lighter:

Exhibit C is a car with its final coat of colored paint. This is a standard car:

Exhibit D is a car that has had the ‘polished paintwork’ feature researched and applied to it, so it looks extra shiny:

I may adjust these a bit, depending on feedback. Interestingly I asked a lot of people for their opinions and although a lot of people on twitter preferred an unglossy look, the players of the game on my facebook page tended to prefer a more glossy look, so obviously those people are my priority. I also still intend to maintain the ‘glossy cars’ option so players can just toggle off the shader entirely if they dont like it. The cars will still look a bit glossy, because its baked into the textures, but it wwill tend towards the look of the undecorated cars (matte) rather than the glossy or super glossy.

Open top sports cars with gold plated wheels are going to look super over the top :D. (and they should be for the price).

THE END OF DEMOCRACY? OR? …

Democracy is the game I’m best known for. Its the ONLY game I have made three versions of. The very first version was released back before the invention of color television when I was really young. Winston Churchill gave it decent reviews, and the rest is history. It remains my best-selling game to-date, and the one that has got me by far the most press attention, as you would expect given the subject matter and title. The list of weird offers and proposals and deals I have discussed with people over the years (including foreign governments and military institutions) has provided me with enough interesting anecdotes to compensate for my inherent boringness. Its been a fun ride.

Because Democracy 3 was built on Democracy 2, which was built on Democracy 1… there were some coding decisions made right at the start that effectively bit me in the backside years later. The most obvious two were the dependence on directx9 (meaning no cross platform capability) and the development in ASCII (well… MBCS) instead of Unicode. The game was incredibly popular, so not having mac or ipad or linux versions AND not being able to do a Chinese / Russian version was kinda silly and had to be fixed eventually.

With this in mind, I hired people to make a mac port of the game, and for a long time we had linux and OSX versions, even eventually ipad versions of the game. They make up about 10% of revenue (9% mac, 1% Linux), and definitely have paid for themselves over the long run (although I was sceptical at the start. The linux build existed purely as a humble-bundle price-of-admission at the time). The ipad build is *sub optimal*, due to the RAM limitations in the device, but still, it has turned out to be profitable in the long run.

A while ago now, I decided that it made sense to bite the bullet and have the game translated into Unicode, which would allow for non-western character sets, and thus Chinese and Russian support. Who could resist the opportunity to bring Democracy to Russia and China right? After all, as  Spock explains in Star Trek 6: “Only cliffski could go to china”. I HATE middleware, and hate compiler/development environment bullshit, so I had always avoided it, so it wasn’t until Jeff Sheen (Stargazy studios) offered to handle it, that I actually got around to making it happen.

The next part of this story contains so much grief, hassle, WTF moments and ‘how the hell is this even possible’ mini-stories that it is surely worthy of a Klingon opera, or a Netflix miniseries. The short version is that yes, its 2018 and still if you want to code a game and have it seamlessly support Unicode for both display and text entry, and support every possible language known to man AND also run on really old hardware (which often blatantly LIES about its capabilities…) then you are in for a world of pain. A lot of games *claim* to support Chinese and Russian character sets, but they are not doing so fully, they just create a huge sprite-sheet of the few characters they use, and dont allow for modding or user input. Modding is a huge part of Democracy 3 and we wanted to do it properly.

So anyway… today is the day I am declaring that yup.. its done. Finished. Finito. DONEZO, Completahontas maximus rex. IT.IS.DONE. TYhe updates to Democracy 3 we sneaked out (purely Unicode-related bugfixes) last week are the final ones. Development on Democracy 3 is FINISHED. After 4 expansion packs (Social Engineering, Extremism, Clones & Drones and Electioneering), Ports to Ipad, Linux and OSX, and translation into a long list of languages…we are done. I’m sure that it still crashes or wont run for 0.1% of potential players (which is actually a lot for a game that popular), but at a certain point, you just have to accept that PCs are VERY variable, and you will never have 100% compatibility.

Now you might think that with everything that is happening politically in the world right now, surely this would be a good time to be working on a political game, not a good time to finish working on one.

And I say to you people who think this… follow me on twitter or bookmark this blog :D.

 

Dealing with a workaholic temperament

There is a huge perception gap between how people perceive those who are wealthy/successful/accomplished, and how those people really feel. I’m not a billionaire, or a nobel prize winner, but by the narrow criteria of solo indie game developer, I’ve had a lot of profitable games, certainly made decent money, and should be feeing pretty content, stable, secure and pretty much able to enjoy life in the way most people would choose to do so. The ‘me’ that people who do not really know me see, is someone with a stupidly fast car, nice house, decent income, and on the face of it, no worries whatsoever. He must be really chill, and really happy.

This is a superficial view.

The reason I’ve done so well in indie games (and other earlier careers like IT), is that I have a completely obsessive workaholic nature. I always overwork, and aim to overachieve. When I was trying to be a heavy rock guitar player, I didn’t set my goals at anything other than the very top. At the time, the best guitar teacher in the country was Shaun Baxter, so I took weekly lessons with him (involving 3 hours each way train journey with a guitar case) at great expense. I saved up to do a course at the Guitar Institute. I bought books of guitar-tab by yngwie malmsteen and steve vai. I read about steves 10 hours a day scales-exercise regime and tried to copy it. I was playing guitar all-the-time.

When I worked in IT, I was told that the ultimate qualification was the MCSE. I studied really hard, and got top marks in practically every exam towards it, getting an MCSE really early, and allowing me to earn a cushy £54,000 a year as an IT contractor (about 20 years ago). When I had an MCSE hardly anybody had one, it was seriously hard to get.

So obviously with programming I’ve taken it equally ridiculously. I code a LOT, and I don’t trust other peoples code. I use C++ and STL, and tbh I’ve spent a lot of time profiling some STL stuff to ensure I am not compromising performance by using it (some iterator stuff *is* slow.). I code my own engine (obviously) and even rewrite my own versions of some of D3DX because they were hilariously slow. I work a LOT, and I think about work a LOT. My bookshelf is 95% code/business and 5% science fiction.

Now the end result of this is great if you judge someone by their bank balance, but health/quality of life wise it can be *pretty bad*. Annoyingly for anyone reading this with physical health problems, I am fine. My heart was described by a doctor as ‘pristine’. my BMI is in the normal range. I am rarely ill. Physically I am not in bad shape, although my cholesterol is highish. But as for my state of mind: thats more kinda frazzled, and bizarrely, its not by alcohol!

Being a workaholic/perfectionist can be very negative because you see the world through faults, problems, errors, failings and potential disasters. I can be very depressed by the state of the world. I can be very negative about the quality of my own work and my prospects. Always worrying about the future is something I’ve kind of had since childhood, but throwing yourself massively into work does not make it better. They say the best things for your mental health and your lifespan are to forge many meaningful relationships with people. Not Facebook friends, but people you physically hang out with. I don’t do nearly enough of that, partly due to being an introvert.

The best thing for my lifestyle in the last year has been falling into a habit of regularly playing online games with buddies whist we voice chat on discord. This is the equiv of a pub for me, and its great, as my game buddies are all indies (we have a lot to chat about) and all work from home, so we are all basically seeking the same kind of sociability. No amount of self-help books or meditation will give me the same feel-good effect as regularly ‘hanging out’, even if its over voice, and not physically.

I’m trying hard to cut out other things in my life that are causing me negative feelings. For years I used the BBC radio 4 today program as an alarm, but its basically politicians shouting, and I don’t need to start my day like that. I’m going to experiment with various gentle alarm apps or soundtracks.  I also consume way too much chocolate, alcohol and do too much day-trading for my ideal mental health. I eat chocolate and drink wine for the short-term serotonin bump, and its self-defeating. I’ll keep doing both, but I’m going to moderate them.

Day trading is a weird one, because although I’m not bad at it (if you ignore my current live trades, I’m £8k up this year), and I do ‘enjoy’ it in some ways, its an extra level of stress, and ties me to a roller-coaster of emotions over which I have zero control. Its a needless ‘game’ that I play with real world consequences and ties me to real world market and political news which I should avoid for my mental health anyway. Again, I’m planning to moderate this, almost certainly quitting for good when/if my current live trades turn positive. At my height, I was playing Battlefield 1 on one monitor and checking day trade charts whilst respawning. That was my ‘relaxing’ time.

Managing my mental state is, for me at least WAY harder than managing finances. If you gave me a choice of having to earn an extra £200k somehow, or learning to work less hard and relax more, I’d probably take the former as I’d find it way easier. That has to change, which means I need to take the idea of work/life balance a lot more seriously. Its hard as hell, but I’m trying.