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

After 36 years of it…its mostly just typing

I guess that a lot of people who read my blog are programmers and a lot of them are younger than me. I’m now 47. I was coding a new feature for Production Line yesterday, (the colored overlay & icons for the zoomed-out view) and it occurred to me to kind of ‘live-blog’ it in my head as I was typing, wondering if it would be of interest to people if I recorded doing that sort of thing in a video. Maybe if you are new to coding, or wondered what the real-world dev process for coding a strategy game was like…it might be interesting.

As I did it, I started to realize it would be VERY hard to follow if I did it. Frankly I can code faster than I can describe what I’m coding. Much faster. In fact I write C++ code faster than I write this blog. Visual studio has Intellisense, and I use Visual Assist (from whole tomato) to make use of their even smarter intellisense, so I’m only typing a few characters of each word anyway. Plus…after coding since age 11…I can pretty much write the iteration of an STL container in a for loop and call member functions whilst drinking tea (or on the phone to someone).

I am often AMAZED at how long it takes some people to make a game. I know that sometimes these people are perfectionists and they put a lot of ‘craft’ into their games, and they agonize more about design features than I do..and often it pays off with those mega indie hits that don’t look technically hard to make, but have such good design or polish that they sell a bazillion copies. I totally understand that, and I admit that I don’t spend *enough* time on my games (although I intend to change that with production line, which deliberately has no schedule or end date.

What I do *not* understand is the time it seems to take people, or the effort they seem to think is involved, when it comes to implementing a particular feature from a technical point of view. This is especially true when those people use ‘managed’ code or a higher level language, or unity or some other middleware. Frankly if an old fashioned dinosaur like me can code a feature from scratch in C++ in a day, then the younger more savvy kids with their middleware should be able to do it in an afternoon, but that never seems to be the case. For a long time, knowing this has driven me nuts, until I eventually have concluded that its just because I’m older, and have a scary amount of experience doing one thing day-in and day out for DECADES.

I literally have been coding longer than most indies have been breathing, and its always been in C++ (Actually I think Asteroid Miner may have been C) , and always directx, and always for windows. I went from DX5 to 7 to 9, but thats it, I’m still on 9, and I know it well.  As a result, when I’m coding, unless its some complex multi-threading stuff…I’m probably not  ‘coding’ as much as I am just typing. I know the code to type, and it flows immediately from what I want to achieve. Its just a matter of hitting some keys on the keyboard.

image1

I think this is a big advantage to not being a magpie when it comes to new software and development environments. I still use Visual Studio. I still use C++/DirectX. I still use perforce, I still use Photoshop and paintshop pro, and AQTime and nvidia nsight. In the last year or two, the only change to my development environment has been that I now also use the Visual Studio Concurrency Profiler, which is excellent. Thats one new piece of development GUI I had to learn in 24 months of work.

As you can imagine, this makes life extremely easy. I also coded my own graphics engine, which means it never changes unless I want it to. I don’t have to ‘work out the bugs introduced by the latest changes’ in the engine, because there aren’t any, and if there are, I did them, and I know what I did. And obviously I have all the source code anyway, and can roll-back whenever I like. Its easy. Never underestimate how much keeping a stable work environment can boost your productivity.

In addition, I also am a bit of a workaholic (which helps), plus I have no kids and only low-maintenance pets (cats). I live somewhere incredibly quiet and am rarely disturbed. My office is dedicated to my work, not shared with anyone, and its quiet, and laid out very comfortably with a comfortable chair, big desk and lovely big monitors, so its a nice place to be. This all definitely helps.

My tip to anyone finding their coding productivity low is to resist that urge to upgrade to the new X, or the new Y, or to make any change to your work environment just because you like new things. Sometimes keeping things the same is the best way to boost your productivity.

Production line video blog & political Animals update

logo550Committing yourself to weekly blog update videos on the status of the game sure does make you feel bad if you don’t get much stuff done! So in that spirit here is a short video with me trying to spin a new GUI screen and a line of text on another screen into a weeks work:

I’m getting even more efficient at making those, almost like its own production line…

animal_group1

On other topic, Political Animals is getting updated today and tomorrow (depending if you are holding a steam or GoG/Humble copy), and the official list of changes from the bunch of cute animals in charge of the game are as follows:

Bug fixes
– Fixed crash on finish of North Island
– Fixed localization related bugs
– Pause after election such that players can take screenshots
– Settings are now saved (your language and sound/volume setting will be saved until you change them)

If you aren’t familiar with political animals, and like the idea of re-running a recent election campaign to get a result you prefer, you can grab political animals from here, and its worth noting there have been quite a lot of youtube lets play videos.

New Production Line Pie Chart thing

I’ve tweeted and facebooked it, so may as well add it here too. I’ll hopefully make a new video tomorrow, but in the meantime here is a screenshot showing the efficiency GUI for each slot. In this case you can see that fitting valves to the engine is massively held up by waiting for resources (valves one assumes!) to show up…

screenshot_12-11-2016_11-25-34

More details at www.positech.co.uk/productionline

Donating revenue to War Child

Yo.

So… I got introduced to a charity called War Child, at some speaking event on democracy I attended up London recently, and it seemed like a great thing. I won’t go into tedious detail, but I’ll quote from their website:

“We’re providing life-changing support to the most vulnerable children whose families, communities and schools have been torn apart by war.”

I’m lucky in that I live in the UK and have never been affected by war. Thats just temporal and geographic luck though. I grew up riding my bike around the rubble of a nearby munitions factory the Germans had bombed. My grandfather fought in WW2 in Burma and North Africa, I have a friend who remembers watching V2 ‘doodlebug’ bombs dropping from the sky. My Fathers family was divided when he was a child when London children were evacuated to the countryside. I live near an airfield that was used by spitfires during D-Day, and I hear British Artillery practice in a training ground near me from time to time. I’m surrounded by memories of something I so fortunately have avoided all my life, but obviously many people are not so lucky.

I cannot begin to imagine the traumatic effects of war on small children, especially those who lose their parents. It seems an admirable cause to help out people affected in this way, and I’m proud to say I’m doing a bit to help this month.

From the 21st November to 2nd December, all the revenue positech earns from Democracy 3 and its DLC on steam will be donated to War Child. We don’t have any noticeable ongoing expenses, so its revenue, not profit, as they are the same thing. I’m hoping to raise $15k doing this.

A bunch of other gamers are doing similar stuff, you can read more details here.

US politics thoughts. How to fix things.

Relatively non partisan thoughts incoming…

I was strongly against trump, he won, I’m not going into a debate about him, or individual policies, but thought I would try to articulate what I think is going wrong in the US (also the UK and Europe) and how (maybe) to fix it.

Most pundits are suggesting (I’d guess accurately) that trump won because of the disillusionment of  blue collar workers on low wages, or with no jobs. Putting aside a lot of the surrounding fluff that the campaigns were wrapped up in (personal accusations, talk of misogyny, who-slept-with-who, size of peoples hands and so on), I think it basically comes down to blue collar American workers saying that economically they are losing out and something must be done, and they are absolutely right about that, and have been for a while. Trump tapped into that, and has become president as a result, and although his identification of the problem is spot on, his remedies are absolutely wrong, and in my opinion will actually make things worse, for those very blue collar workers who see him as their saviour.

There is a fairly watchable film released way back in 1991 starring Danny De-vito called other peoples money. Its not comedy gold, but it has a very well articulated point about, bizarrely the US election in 2016. Here it is:

For people who don’t want to watch it, its basically a rant by Danny DeVito as an ‘evil’ wall street guy telling cable factory workers that fiber optics killed their industry, and the company is dead, and to deal with it. Its harsh.

It’s also true.

Fact: Kodak in 1998 employed 145,000 people worldwide. It went bankrupt in 2012. Its one of many companies that have been technologically vaporised. Facebook employs 14,495 people, almost exactly a tenth of kodak at its height, and provides a lot more than the sharing of photographs. Arguably facebook provides 10-20 times the ‘end consumer services’ that a mere photo printing company did, for 1/10 the staff. We are talking about a situation where we need 0.5-1% of the people now to do the same work in terms of providing value. And facebook lets me share a photo (for free) with the entire planet. Kodak gave me a blurry cardboard feeling thing at high cost that fades and was a fixed size (and only 1 copy).
Yay for technology.

People complain about unemployment in the US. The US unemployment rate is 4.9%. There will also be an issue of under-employment and low wages, but still…thats actually not *that* bad. When every company does a Kodak and gets replaced by a Facebook, that 4.9% will be a far off dream, a paradise that people think back to.

Technology vastly improves and transforms our lives, but its killing jobs, and replacement jobs are not being created fast enough. The BIG problem, (and here is where it becomes relevant to the US election), is that when it does create jobs it only creates very highly skilled, high pay ones. If you do not have an absolute familiarity and understanding of computers, and preferably some computer programming knowledge, engineering knowledge, or maths/science skills, the future economy is not going to work out for you.

Trumps blue collar jobs are gone. They are not coming back. Its not the Mexicans who took them, or the Muslims, its these dudes:

image1

Robots.

Stuff can be made anywhere. Trump bemoans outsourcing to India/China, but with global trade, stopping that is impossible, and walling the US off from its biggest markets will only accelerate the death of the US economy, and encourage facebook, google , apple etc to relocate outside the US. Trying to stop global trade or automation / technology is liking trying to stop the tide. The only solution for trumps voters is to find a way to be useful in the post 2016 automated high-tech economy. That means skills, that means education. (I know some people think that means universal basic income instead. Personally I’m not a fan, but thats a whole different topic).

If I had to pick one single policy that would fix the problems in the US in the medium to long term, it would be adult education. Not schoolkids, they already understand and use computers. They aren’t scared of them, they will eventually realize that they need to knuckle down and ensure they study hard enough to get a job programming or high tech engineering/science. Young people in the US are pretty tech savvy. The people who need education NOW in the US are the age 40+ blue collar workers who used to work in factories, on assembly lines, or in warehouses. They need to skill-up, NOW.

They have no money, because tech killed their jobs, so they need help, and the government HAS to step in and fix this. I refuse to believe that you cannot re-skill at that age. I refuse to believe that you cannot transition from manual work to complex tech work. When I was 24 years old I hammered rowing boats together for a living. It was the technological opposite of what I do now. I’m 47 and work as a computer programmer. Transitioning from one to the other is HARD, but it can be done.

When I wanted to learn programming, I qualified for free evening classes in C and advanced C programming, paid for by my government here in the UK. I also attended a 2 week crash course on C++, paid for by the government because I was unemployed. I also studied my ass off, spent a LOT of time in libraries and the few books I could afford, and it worked out. The government could have made it a LOT easier, but at least they did something.

Despite my hatred for him, Trump DOES know what is wrong in America, and identifying the problem is actually very helpful. Now is the time to help focus on the real long term solution, not short term knee-jerk misdirected anger.

The USA does not need a wall, it needs a program of adult education & training.