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

On social media…

Social media is awful.

Not exactly news, but something I’ve been mulling over a lot lately. I’m old enough, and techy enough to remember the very early days of the internet, where you dialed in with a 28k modem and paid by the minute to be online. In many ways the experience sucked, slow downloads (google was initially popular because its homepage loaded quickly), no possibility of video, and only real maniacs bought and sold stuff online.

But in many ways, it was much better then than now. There were few people online, and very little commercialisation, so nobody tried to monetize the net. Accessing it was slow and expensive, so encouraging people to be online all the time was impossible. There was no social media, and there was a thing called ‘netiquette’ that people actually (mostly) took seriously.

In 2020, the internet is an absolute cesspit, bringing out the absolute worst in human behavior. Its almost impossible to enjoy surfing the web without being sucked into social media. Every site wants you to log in with your social media usernames, so you can be tracked, analyzed, categorised and above-all, monetized. Clearly at some point, someone realized that the one thing that keeps people online (and thus seeing ads) was anger. Anger is the ultimate emotion. Get people angry and they will keep posting, retweeting liking, replying, hating.

The lack of moderation on youtube, twitter, reddit, facebook is not an accident. its not penny-pinching or ineptitude or cost cutting. It is deliberate. Its trivial to have a blocklist of 1,000 most common abusive terms, and shadow ban anybody for 24 hours if they use >1 of those per day. Trivial. 5 minutes coding. no cost, easy. But that might reduce monetization, so it will never, ever happen.

I know people with 100+ word blocklists for twitter who say they still find browsing the site infuriating and abusive. This is insane. We have all got addicted to anger, fury, yelling at strangers online. It affects all our mental health, and achieves nothing. How many people’s opinions are changed by twitter hashtags? if it was >0 Bernie Sanders would be president and Jeremy Corbyn would be prime minister.

The weirdest thing is I have found it affecting my own thinking in a stupid and unproductive way. Not only do I sometimes see something or do something that makes me think ‘ooh! this would make a great tweet’, instead of just enjoying/laughing at it, I actually feel a real *pull* now to ‘engage’ on social media.

A few nights ago I watched a fairly good(ish) thriller movie. Last night I rewatched The Rise of Skywalker. I could tell you what I thought about both of them if you like… but honestly why do you care? There are professional movie reviewers out there. I’ve almost forgotten what its like to read an article/listen to music/watch some TV and NOT tell the whole world what was good/bad/interesting/silly about it. Look at me! I watched a TV show, here is my HOT TAKE that you all NEED right now. How bad does it get? I ate a sausage roll this lunchtime. it was ‘meh’. OMG HOLD THE FUCKING FRONT PAGE.

In some ways, this is harmless, but in others its just a massive waste of human potential. How much time in my life has been wasted reading random stranger’s hot takes on the new X men movie, or hearing what they think of Socialism/Superhero movies/Elon Musk/Cats vs Dogs? How has my life been enriched at any point, in even a small way, by seeing hashtags? Why do I care what Sylvia in Chicago thinks about Trans bathroom rights? Why should I care if Donald in Michigan is a ‘proud trump supporter’, how the fuck is it neccesary for me to know what random strangers think about fringe issues and conspiracy theories…?

I’ve had a blog for a long time (a REAL long time), and I think its a much better place for writing down thoughts. They can be long form, actually edited (omg imagine the technology), they can’t be taken down by some silicon valley dicks who think they can censor the internet (this is my own wordpress install on a server my company rents), and if I dont like peoples replies or comments I can just fucking delete them, or even ban the commenters. I think I vastly prefer blogging to social media.

So I have totally abandoned facebook, (I have an account purely to message people in my village, and manage my existing pages for games), and am trying to restrain myself from using twitter. (I have zero belief that using twitter really gives you any kind of real business benefits in 2020. All those game devs retweeting your game announcement are just gamedevs, they also are followed only by each other. Its not going to move the needle in terms of marketing.) In a perfect world, I’ll have disappeared from all social media in a few months time, and be happier and healthier for it. meanwhile people can continue hurling abuse at each other without me needing to know about it.

I normally tweet about new blog posts, but seriously, why should I do that?

Rethinking the game dev productivity gap

Its really only in the last six months I’ve realized this, and I’ve been an indie for twenty+ years and coding for 39 years, so yeah…this took a while to sink in.

I am frustrated on a CONSTANT basis by the lack of productivity of almost everybody in the universe. I am especially irritated by the low productivity of most people in game development, and most indie devs. I almost never read about the development schedule of a game, (mostly through post-mortems, interviews or chatting to actual humans), without being shocked at how long it took to do stuff.

For most of the time, I have attributed this to an attitude. I work pretty much every day, and for most of the day, although my schedule these days is deliberately lighter than the early years. I’m prone to going out for lunch or to coffee shops, but then I’m prone to working all day Saturday and Sunday, so YMMV. I also often reply to forum posts, youtube posts, blog posts and emails in the evenings from my laptop. I’m often thinking about code when I’m not writing it.

Because of this, I find talking to people with a less work-centric attitude to be infuriating. It boggles my mind how long it takes most devs to add what seem like easy and simple features to games. I am constantly told that I am woefully inefficient because I don’t use unity, but still seem easily capable of working faster in terms of adding features & content than the very people who berate me for not using such productive tools.

So yup, I often think such people are just lazy. Or do not have the same attitude as me, or do not realize just HOW HARD it is to compete in this industry. In other words I think that their mindset is less focused, and its a personal weakness on their part, because yup…i’m a bit obsessed.

But now..I’m thinking there are two other things that explain the disparity better.

First thing: Lack of distractions. I have 3 cats, and live with my wife and these 3 relatively-low-maintenance pets, but no kids. I have a hobby of playing the guitar, which I make myself do a bit each day, but thats it. I am not having to take time out to walk the dog, pick kids up from school, drop kids at school, answer questions from kids, sort out other stuff for kids, walk the dog again, and so on. My wife is a writer, so has the same introverted ‘happy to be alone with a keyboard’ daytime work schedule as me.

Nobody ever phones me, unless its an elderly relative. I have a call screener device to prevent phone spam, and we live in the middle of nowhere. Nobody knocks on our door trying to sell us anything. There is very little noise. Its the perfect set up for zero distractions. If you possibly can do ANYTHING to reduce the distractions in your day, do it.

The second thing: experience.

This is the big one. I’ve been coding for 39 years. Thats an AGE. When I first started learning computer programming, this person was US president:

Image result for jimmy carter

Yup, exactly.

That means any silly mistake you can make when designing code…I’ve done in thirty times. 95% of my conversations with fellow devs when I’ve hit a bug go like this:

“Could be a memory-bounds issue…?”

Me: “Nope”

“Could it be that you deleted the object?”

Me: “Nope”

“…Maybe its a multi-threaded synch issue?”

me: “Nope”

…and so on.

Now that sounds super arrogant, like I think I’m the bees knees at C++. Actually I am not. I am not that good an all-round programmer *at all*. I am VERY good at learning in excruciating detail about the elements of C++ that I use, and nothing else. Because I work for myself I have no marketable need to be an all-rounder. I don’t need to learn ‘agile’ or ‘scrum’ or ‘.NET’ or RubyOnRails or whatever the hell jobs ask for this week/month/year. Its irrelevant to me, so I can be VERY good at VERY few things. This is hugely efficient.

Plus… again, trying to put my arrogance in context here… language proficiency is language proficiency, whether its English or C++. C++ is way less forgiving than English, but still…how good at English were you when you had been speaking it for just five years…versus thirty years? Hardly an exact comparison I know, but I think its a good mental exercise. I get better at C++ every year, but in a way that is not exactly how you would think:

I do NOT know more ‘clever tricks’ than a newcomer to C++. I do NOT have a better memory of the syntax of C++ than a newcomer. I do NOT type *that* much faster. I do not make use of a wider range of the standard C library than anybody else. I don’t do any of those things. What I *do* better, is that I have just learned from my mistakes.

A lot of mistakes.

I used to take the odd coding test in job interviews back in the day. These tests are good for one reason: to see if the candidate has any clue about syntax. Thats pretty much it. The amount of code required otherwise renders the test pretty much useless.

The trouble with C++ is that it attracts hotshot coders. These are people who think a super-complex algorithm, or the algorithm that uses the most clever combination of features will somehow get them more sex/money. This is predictable and sad, but not useful in terms of real productivity.

The best code, is the combination of three things:

Simplicity, Performance, Readability.

A lot of really, really good code looks fairly boring, because boring is often simple, fast and readable. The worst possible insult you can get from a senior/lead programmer with experience is this:

“That looks a bit over-engineered”

Its truly a damning insult, but you only really realize how insulting it is after about thirty years of writing crappy code. I wish I knew of an easy way to help people fast-forward those thirty years and develop the skills you have at the end of it, without those thirty years but I don’t think I can. The only advice I can offer is this:

  1. Write as much code as you can. Not over-engineered nonsense, but just code a lot. Put the hours in. At least the thousand obviously, but likely way, way more.
  2. Get a job with a really experienced coder and ask for criticism of your code. Only someone who works with you all the time will read enough of your code to really give you structural, high level advice on why your code sucks.
  3. Read code-complete at least twice, if you have not done so already.
  4. Get cats not dogs. Cats don’t need a walk.

Hope that helps someone :D

Avoiding facebook

As an advertiser for my games, I like facebook. Its targeting is very easy to use, and very effective. That might sound sinister, in a ‘cambridge analytica‘ way, but I’m not harvesting anything dodgy or being cynical, just showing ads for my PC strategy games to… people who have tagged pc strategy games as interest, and who speak a language my games are translated into, and who live in a country where people tend to buy online games. That works quite well.

In theory, I like facebook. What a great way to stay in touch with people! and because I try not to fly much, staying in touch with friends I have in different countries is especially nice. Its cool to see people celebrating cool stuff they are doing, its great to get a different viewpoint on the things happening around the world. So easy to share holiday snaps, or opinions on the latest movie etc.

But facebook have fucked it up.

I’d happily pay $80 a year to be a ‘member’ or ‘subscriber’ to facebook, but this is not an option. If you can’t see the product, YOU are the product, and we all know that facebook is VERY into collecting data on us, and storing it, and monetizing it. This goes on to an incredibly invasive and sinister degree.

Image result for facebook memes

TBH I have the same feelings about youtube. Its like I find myself having to think ‘do I REALLY want to watch this video, and have similar videos spammed at me for the next six months?’ every time I click on a youtube thumbnail. I’m all for curating the experience to match my tastes but jeez… back off a little and don’t seem to obsessive and creepy ffs.

I’m not a full-on tinfoil hat wearing 9-11 was an inside job conspiracy theorist kind of dude, but I do find it really sinister how much information these tech companies have on me, and their casual approach to letting us know what they are up to. A recent example is avast. Who would have though you couldn’t trust an antivirus company eh?. /sarcasm Oh and the irony… that avast link is a new website with 21 (yes TWENTY ONE) tracking cookies on it…ffs.

So I decided recently I had enough of facebook, after being dragged into an argument with a swarm of likely fossil-fuel-company hired shills trying to argue that people were ‘demonizing carbon dioxide’ and that there was a CO2 shortage, and we would kill plants if we stopped emitting it from cars… FFS.

(another exciting facebook post everyone needed to see!)

I still use facebook for business, and have pages for each of my games, and a bunch of local friends contact me through it (basically people in my village my age or older), so I’m not deleting my profile, but I ditched half my friends, deleted every ‘like’ I could, left every group, and started systematically deleting all my posts. (Facebook makes that close to impossible BTW…and I’m not kidding myself they are really deleted either).

BTW one thing that I think is worth mentioning which isn’t conspiracy or liberty-related, but is another good reason to quit facebook, is that it essentially kills conversation. When you meet up, in real-life with your friends, you are drained of any real ‘news’ or opinions. Everybody knows what you have done, where you went, what you did, and how you feel. Why bother?

“Hey I went to Boston recently on holiday”

“Yes we know. we saw all the videos, and pictures, and check-ins, and status updates…”

“…*silence*…”

Quitting facebook means I’m *more* keen to see my friends, not less, because we can ‘catch up’. Thats great. I’m as nerdy an introvert-programmer as the next sheldon cooper, but we are still apes, and underneath it all, we still want to physically meet up for our own mental health.

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.

Updates for Production Line. DLC coming & more

This is a round-up blog post covering lots of things:

Firstly some meta-stuff. I haven’t been super-frequent in updating this blog recently, and I also have been tweeting a lot less (in fact the wonder of analytics allows me to say my tweets are down 36% in the last month). I also un-followed a lot of accounts, I removed a lot of facebook friends, and I’ve quit some other online stuff. I’m trying to avoid the harsher, more serious, depressing net.

Frankly social media, and much of the internet in general is making me unhappy, and I’m reducing how involved I am with it. I have never been one of the ‘hip’ indies that knows everyone else, and I’m moving more towards being an ‘offline’ kind of person, for my own happiness.

Obviously that doesn’t affect tech support, PR, or blogging/tweeting about what I’m working on, so here we go…

NEW DLC! is coming to Production Line. I have not settled on a final name for it, but its likely ‘Design Variety Pack’ or something like that. Basically every car design in the game gets a duplicate, purely for cosmetic reasons. This is so you can have more variety in the game, and also so that you can more immediately tell which cars are the ‘expensive’ SUVs etc, without having to always resort to selecting a color for each design (Which I tend to do, but it feels a bit of a hack…).

Here is a tiny tiny short video clip of the new sedan.

And here is another tiny one showing we toggling between two designs of the same type.

All the code for this is now DONE, and I am thus just awaiting final artwork before I add this as a new piece of DLC. It has to be DLC because actually the art costs are PRETTY HIGH for this sort of thing, because it basically involves redoing a*all* of the car art for the game, as every new design variant may need a different position for each wheel variant, each seat, and so-on, and thats a LOT of art layers, modeled in 3D and rendered in 2 different directions.

In unrelated news, I’ve been working on some tweaks to the UI for the game, and the latest thing I added is this ability to toggle the showroom view to a ‘summary’ view that shows you how many of each car you have, rather than an endless stream of them. This is togglable with a button, but it auto-guesses which view to show you based on how full the showroom is when you first open that window:

I need to have that toggle in there to support both views because there is some functionality ‘lost’ in the summary view, as you then cannot select an individual car to see its views from customers, its applicable discounts, any defects or missing (uninstalled) features etc. Hopefully its all pretty intuitive and I don’t need any extra tutorial stuff for that? (I do worry about needing an extra tutorial window for that new toggle button for the DLC designs…not sure if its obvious or not…).

Anyway…thats Production Line stuff. I am also starting to help out full-time Democracy 4 programmer Jeff, who is doing great stuff on making the crispest, sharpest GUI for a positech game so far. (Its vector based, so smooth scaling and pixel-perfect UI is here!) I know Democracy 4 seems to be taking a long time, but it will be worth it, and we will have screenshots to show the world pretty soon :D