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

Who would be a game developer?

Some people, noticeably kids, seem to think being a  game developer sounds awesome. You sit there and play games all day (no) and you earn money like notch (no). It’s fun because you do whatever you like (no) and anyone can make a game these days (no).

I’ve blogged a lot about the work, and effort, and technical knowledge required, and the likely rewards (low on average) and chance of success (very low on average). What amazes me, is that in addition to all that, you also often get abuse hurled at you from people.

Granted it’s worse in the mainstream industry (no 45 person company that behaves like this is ‘indie’ I resent them using that word to describe themselves). in that your actual direct boss may be the one shouting at you, and threatening to fire you if you don’t work an 80 hour week, but the minute you have an online ‘persona’ and direct contact with gamers things can get kinda nasty. For example, a recent game developers tweet (I wont’ draw further attention to it, in case he doesn’t want any)  revealed how someone following him on twitter had threatened to turn up at his house and stick a knife in his throat, because (as far as I could tell) this guy wanted him to roll back a recent code change).

People like that should be in a cell.

It’s an extreme example, but I do not know a *single* indie game developer who does not have a story of harassment online from someone who is a gamer. I don’t mean the usual forum trolling crap that idiots on sites like you-tube are always guilty of.  I mean people threatening physical violence, wishing you would die from some disease, insulting you racially or threatening to spread rumors about you to destroy your business. I’ve had people threaten to kill my cats, to spread lies about me to try and break business relationships or put me out of business. I’ve had people saying they will dedicate their life to ruining my business.

Let’s just pause here and point out what I do for a living. – I make games.

I just thought I’d stick that in, in case you forgot, and assumed I was a gun-runner, drug-dealer, sex-trafficker or terrorist for a minute or two.

The general consensus amongst devs is that you never ‘engage’ with abusive people. You just delete the email / ignore them, act super polite and hope they will forget about it. But in a way, that’s how bullies go through life without changing their behavior. Eventually, they become senior management and treat their staff like crap, one can only assume? I don’t think as a group, indie game developers should treat ‘receiving abuse’ as ‘part of the job’. If we were actresses who were being abused, nobody would say ‘that’s just the job, deal with it’. People would be outraged. Why is it ‘ok’ to hurl insulting abuse at people who make video games?

I met a fellow indie dev at GDC who got on to the topic of dealing with anonymous internet abuse being hurled at him. We chatted a bit, and he had a big smile on his face as we talked about the different people and what they had said to us / threatened us with. He was smiling with relief, because he realized it wasn’t just him. He wasn’t being picked on, he wasn’t doing anything wrong, he was just a game developer, and that means the internet thinks he is a punch bag.

It’ s pretty crappy, and it’s no way to get what you want. People don’t listen to your arguments about games more because you are abusive to them. They probably just delete them. It’s about time that abusive 1% of the gamer community learned that lesson. I have some customers who can email me and ask for new features to be put in the game, and they go to the top of my list of things I need to do, because they asked for them, and they are great people, and I want them to enjoy the game. Nobody on that list is someone who was abusive, insulting or patronizing.  That’s probably the 99% of gamers who are great. pity about that 1%.

 

Economic model…strokes beard…

So I think you can probably see the problem here right…

economic_model

Behold my cutting edge game design tools!. Anyway, I got annoyed that ‘wasteful economy’ in Democracy 2 was pretty nebulous, and tried to fix it for the sequel, and realized I probably needed a measurement of wages for that, and then tried to avoid adding ‘competitiveness’ or ‘exports’ because frankly its complex enough as it is…

Generally I’m pleased with most of this,(BTW the bottom left circles are low and middle incomes), but I hav2 big phat question marks, namely

1) How does wages affect GDP and vice versa

2) how does productivity affect wages and vice versa

Can I fix this WITHOUT adding new variables? Do I really need wages? my plan is to be able to add a new item of ‘uncompetitive economy’ which is basically just an extreme example of low productivity. Essentially, we are paid too much and achieve too little (Italy! ahahahaha hahah ahah…). How does this fit in? Basically labour laws (restrictive practices) will keep wages high despite low productivity. Is that really possible? if so, maybe the combination of high wages and low productivity will reduce GDP (implicit hidden factor of reduced competitiveness).  maybe low wages could be another positive input into international trade, or perhaps I *do* need competitiveness and have both cheap imports and international trade (re:exports) keyed from it? with wages pushing competitiveness down and productivity pushing it up?

ARGHHHHHHH!

Democracy 3 and overrides

I have long wanted to code a particular system for Democracy 3, and finally got around to adding it, just before I (recently) put in mod support. I’m calling the system in general ‘overrides’. Essentially, what it is, is a way for someone to create a text file that specifies a connection between two game objects and define them with a new equation, or negate them, or add a totally new link. This is best served by an example…

“AND ON THE EIGHTH DAY HE CREATED GAMBLING”

There is a relationship, coded into the game (data-driven of course) between gambling policy and the happiness of religious voters. By default, as you legalize and liberalize gambling, religious voters become more upset, with a degree governed by an equation, such as -0.2*(x^3), where x is the intensity of gambling (degree to which it is legal).

This equation is picked by me, as being my best guess of the general effects of gambling on religious people. However… In the USA, I get the impression gambling has a more negative connotation. You guys banned online poker, for example. Maybe religious people should be more annoyed? maybe -0.4*(x^3) or maybe the curve should be 0-(0.45*x), or whatever else you like… Overrides allow this to happen, because each country has a folder full of overrides which get automatically applied when that country is played, enabling me to tailor each country a bit.

It gets better…

In theory, adding the capability for a folder of player-designed overrides is trivial, meaning players who decided that in their view, gun ownership reduced, not exacerbated crime, could save out an override to that effect, and never be offended by cliffs liberal gun-hating ways again! :D

Also… it’s a modders paradise, because not only can you add new simulation values, policies etc… now you can zero-out existing effects. So if the game has object A affects object B, and you want to mod it so in fact A affects C and then C affects B, to add some subtlety and complexity and extra feature… then you could do that without *ever* having to alter the original game files at all. This should make experimenting with player-made mods much much easier, and less risky than normal.

I hope people get stuck in and use them :D

 

Dumb multithreading question (how to safely quit a multithreaded app)

I’m not a multi-threading expert. my main process trundles along nicely then when loading the game it calls CreateThread() to do some loading stuff. Then, while the main thread is rendering my lovely loading screen, and the new thread is loading in data, some evil player hits the top right X button, or alt+F4s the game…

Instant crash!

Unless I add code which calls my thread manager and then calls TerminateThread(). This works…but then the app does not actually properly quit, so it can’t work right. Also… I now read that TerminateThread() is not the way to exit a thread anyway, and I’ve been using it all this time… arghhh!

How do you handle quitting a multithreaded app when the player arbitrarily exist it? Nobody seems to have a definitive answer…

Some Democracy 3 simulation changes

Sooo… it REALLY helps to talk over your game design with other people, especially as a lone indie. I sit here shivering in the small dark basement I program in sipping tea in my luxurious gilded office, and realize that I am alone in a bubble of game design where other peoples input goes unheard. So after a brief chat about the design with someone else, I’ve realized I need to make two changes to the simulation stuff:

Democracy3-Brand

Firstly, there is the topic of dilemmas. Dilemmas are a good mechanic because they are issues you cannot kick down the road. For example, there is an application to build a toxic waste dump. Do you say yay or nay? Saying yay obviously annoys environmentalists, but for how long? Right now… the answer is FOREVER.  I now think this is wrong. I think it should decay over a long timescale, and also that dilemma should possibly be re-usable. if the player *wants* to play an endless game of D3, surely they shouldn’t ‘run out’ of dilemmas? This is a change that needs making.

Secondly, the current system has a negative effect on your popularity after an assassination attempt. This was because I wanted it to reflect how bad and unpopular your government was, implying that people who were on-the-fence about you, would see someone trying to kill you and go ‘oh Obama must be a fruitcake, look at those guys shooting at him’. I now think this is just WRONG. Surely the opposite is true? I might not like the UK prime minister, but would I like him less if someone tried to shoot him? Especially if I was a ‘floating voter’. I suspect the spirit of ‘rallying round the government’ would kick in, and maybe have a positive effect on your support.

That also has the positive effect that it is a nice self-balancing game mechanism, rather than the current spiral of failure. I’m pretty certain I’ll replace the impact with a slight, short-term popularity jump.