Oh yes, I know all about search engine optimization. Can you tell?

I talk to a lot of indie devs, although TBH not as many as I would like to, and I find many of the discussions illuminating. Because I work mostly alone in a little room in a field in the shire, I get so used to my way of doing things that its easy to forget there even are other ways. However, one of the most illuminating things is discovering just how long it takes most developers to do things (whether its code, art, biz dev, production stuff, whatever), and I am constantly shocked at how my output seems to not be 20-30% higher than many devs, but seemingly 300-400%+ more than many developers.

This blog post will try and explain how.

Its harsh. This is not touchy-feely happy cliff. This may annoy you, and make me seem a harsh, competitive, aggressive workaholic. This is reality. Most people don’t want to know this reality, but they claim to want it. This will not motivate everyone, but here goes…

Tip #1 Stop fucking around with ‘fun’ disguised as work.

Reading reddit is not work, unless its 100% actual new, informative, well-reasoned and argued and productivity or sales-boosting information directly applicable to indie game development on the platform/genre combo you work in. Reading about how to make mobile games about ponies is not going to improve your bottom line when you are a PC strategy game developer, no matter how much you kid yourself it will.

This also includes playing a dozen new indie games a month, or watching youtube lets plays or twitch streams of a whole bunch of new games. Thats not ‘market research’, its just goofing around. If you are currently between titles, and thinking seriously, and doing market research into industry trends etc, then yes, MAYBE you can claim a few hours for doing this as ‘work’. If you current game design is pretty fixed, and you are > 6 months away from release, it really doesn’t matter a fuck what is #1 in the indie game charts and how it plays. Thats not work. It will NOT change your immediate plans, don’t pretend otherwise.

Tip#2 Work somewhere quiet.

No a coffee shop is not quiet. Nor is any room in your house/apartment where other people walk through regularly. You need to be an end-zone where people only enter your room if they need YOU. Unless the house is literally on fire, someone has been shot, or imminent death or suffering beckons, nobody should disturb you when you are working. Nobody. You are in isolation. Don’t kid yourself that ‘you work better in a gregarious group of chatty people’. Thats crap and deep down you know that.

Tip#3 Get a big monitor, get 2 big monitors. Don’t feel bad if you have 3.

You cannot get a lot of work done on a tiny laptop. Thats silly. its 2019. Get some big monitors, they are cheap. I have twin 27″ monitors at 2560×1440 res. I couldn’t work at my current rate with less. I spend less time alt-tabbing than you. I can glance at my inbox without a context switch from game dev. I can view loads of my code and my game at high resolution at the same time. Monitors are cheap. its a business investment. Trust me. Buy 2, big, high quality ones. Buy them now.

literally the bare minimum

Tip#4 Shortcut keys and batch files etc

I feel physically pained when someone right clicks and selects ‘copy’ or ‘paste’. How many shortcut keys do you know? Copy & paste & cut and select word, select line, select page up + down? Windows + R Windows+F? Alt+tab? Shift+alt+tab? Windows+arrow keys? Know them all. You actually do not need a mouse for much. the mouse is SLOW. I use batch files to process files in photoshop quite a lot. I also know a lot of shortcut keys in textpad32 and paintshop pro. Also… if you use visual studio are you using visual assist? its amazing. use it. USE every productivity tool imaginable. leverage what computers are good at. Get a fast PC.

I know devs who use zipped up files and drag-dropping to back up their code. FFS. Use source control and cloud backup software that automates all this for you. If code and software exists to make you more productive USE it. Use email filters and rules. So much time-saving software exists, use it.

FFS I even have my living room lights come on automatically at sunset without me pressing buttons. Automate the fuck out of things.

Tip#5 Comfort

You will work longer and harder and happier in a nice work environment. When it comes to my office, no expense is spared. If you are an indie developer, your desk and office chair are probably more important to you than your car, TV, cooker and sofa combined. You will (hopefully) spend a lot of time in that chair at that desk. Get a really good one. try many, the really good ones will last a while. Mine is an aeron, 9 years old, still perfect. I actually had a desk made for me (surprisingly cheap actually), It will last forever. Do not make false economies here. Mine was about £800. Thats under £100 a year so far for the place I park my ass most of my life.

other chairs are shit

Tip#6 Mindset

If you are working on your first game, I hate to be that ‘one guy’ who breaks with the happy-clappy hugs and flowers online twitter group hug, but no, you are not an indie game dev, you are a wannabe. You are trying. you might one day release a game, in which case, well done, welcome to the club. the world is littered with people who try and fail, and those who give up. Someone who is ‘working on a novel’ is not a novelist, they are a hobbyist.

If you want the warm glowy feeling of being an indie dev who entertains people and ships games and makes a living from it, they you need to work hard as fuck, for a long time, and get your head down and get the product shipped. Do not surround yourself with well meaning people who tell you what you want to hear. Thats a route that spirals down and down into insular failure and disappointment. If your game is behind schedule then you are failing. Stop whining and work harder, and keep that attitude until you finish something.

Also… don’t kid yourself that you have worked ‘super hard’ because you put in a solid 6 hours work at your desk today. Thats great, but frankly someone flipping burgers has worked longer and harder than you today. You claim to want to make a secure living in one of the most competitive, sought-after, cut-throat industries in the world? Well so does everybody else. Most people fail. Most people lose. You will not make a success of this working less hours than someone doing an unskilled minimum wage job. Do not blame me for the harsh realities of competition, but more importantly do not pretend they don’t exist because that truth is inconvenient.

This job is not hard. You want hard? go work as a soldier, a police officer, as a trauma surgeon or an astronaut. game dev is fucking easy. Don’t kid yourself.

Tip#7 Focus on one thing well

If you are good at making 2D RPGs, make 2D RPGs. Unless you have three years salary in the bank, and a lot of confidence, and are absolutely MISERABLE making those games, do not change. Every 2D RPG you make improves your skills, your experience, your audience, your engine, your productivity and your tool-chain.

I’m a competent programmer. I could make a 3D physics game next. Maybe I have a cool idea for one, but for fucks sake that is a BIG leap away from 2D/iso strategy/management games. Why throw 90% of my audience, experience, skills and technologyonto a bonfire just to switch genres and styles.

You might decide to change genres/engines/languages etc because you are seeking artistic fulfillment. Thats great, but thats the luxury of a leisure activity. Again…3 years salary banked? go for it. Else…thats almost certainly a poor business decision. Get good at a thing, then do that thing until its a big success. There is HUGE opportunity cost when you learn a new genre/style/language/technology. Make sure you are fully aware of this. Few genres are so small they cannot support a single indie dev.

source:spiderweb software, experts in genre focus

Tip#8 Seek out harsh but real criticism

I get a fair few really good reviews and emails from people who really like my games. I love them. they make me feel happy, and warm, and appreciated and other nice things. its a good feeling. They don’t actually make my games better though. The emails you hate, the negative reviews, the dreaded steam refund reasons… these are the harsh angry truths that you do NOT want to hear, and yet you must. When someones tells you ‘i could make a better GUI with my ass whilst high‘, you may be angry, depressed, furious, insulted…but you need to hear it. maybe your GUI *is* bad. Maybe it could be improved.

to be fair, that slider was really crap. its better now.

Do not insulate yourself from the negative. negativity can lead to change, improvement and accomplishment. Data about what you are doing badly is absolutely essential in improving. If nobody ever tells you your games art direction is shit, or your game title is stupid, you will never improve it. If you *absolutely* cannot cope with harsh, hurtful criticism, then you probably should not try to make a living from indie game development.

Tip#9 avoid chances for distraction

I used to use rescuetime. I also used to use an hourglass to focus myself on work. I now find I need neither. I’ve worked so hard, so long, I’ve internalized what they used to do for me. Most people aren’t at that stage, and they get distracted. if your phone distracts you from work, switch it off. Nothing will explode. We survived thousands of years without mobile phones, you will be fine for entire eight hour stretches. You don’t need twitter during work hours, you don’t need to check the news sites or reddit during work hours.

If your code takes time to compile or art takes time to render, learn to multi-task with other WORK stuff. Set aside small tasks, like replying to forum threads, easy tech-support emails etc, so you can do them when you are waiting for your work to complete. Schedule other activities that you need to do anyway around times you know you are waiting for your PC. I mow the lawn/chop firewood while my PC renders out youtube videos for me. If my PC needs to reboot and update the O/S I will set it off before I have lunch, or last thing at night.

Avoid situations where your PC is sat there doing something (rendering / compiling / updating) and you have nothing to do but SIT THERE. You will get distracted, your mind-state will collapse, your productivity will plummet.

source: XKCD

Tip#10 Avoid bullshit productivity planning admin

Some peoples reaction to stuff like this is to immediately start planning to be more productive. they will start a productivity planning spreadsheet, with nice formatting, some color-coding and even a company logo, or they will google for inspirational quotes to print out and then stick up around the office. or they will start making an important list of the top ten things they have learned about productivity. They might hop onto discord to chat to fellow devs and share their new found enthusiasm for productivity with their buddies…

This is all bullshit.

The true response to this blog post, which is ending very shortly, is to close your browser. (yes CLOSE it), and do some work. Internalize the *attitude* not the specifics, and actually DO something. In other words, do not become like this classic, absolutely on-topic sketch from the life-of-brian which does a great job of showing exactly what I’m on about.

Get back to work and stop fucking around.

16 Responses to “How to 10x your indie game development process”

  1. Mark Bernard says:

    Oh my god. My brain likely hurts when I see people not using common short cuts like copy paste. When specific commons like in Visual Studio or Eclipse.

  2. saka8623 says:

    By the way, when will information on “democracy 4” come out?

  3. Cliff Harris says:

    I keep saying ‘soon’ but I really mean it. We have a website (www.positech.co.uk/democracy4) but no screenshots…yet. We are working on UI stuff right now, hoping to soon be able to show you screenshots of the main game screen. Character art is DONE, UI design is DONE. We are now implementing UI, then the game mechanic changes will start :D

    • saka8623 says:

      What kind of country will appear in “democracy 4”? And what kind of policies and voter groups exist?

  4. Eric Baggs says:

    I find it funny that most of these tips would be surprising for devs. I am a light hobbyist trying to learn a bit of game dev because it’s always been a dream of mine. I will move freight around at work for 5 hours, go to my second job as a manager for another 6, get home and spend an hour on tutorials and go, “You know, I don’t want to hate my hobbies, so I’ll get back to this in the next day or two.”

    No illusions, I am not betting that I will release a game. To act this way as a career? That’s just patently crazy. Keep at it Cliff, I enjoy basically everything you make! (even the crotchety old-man posts)

  5. i'd rather stay anonymous to avoid hate says:

    Seems like good advice, but I think #7 is a mistake on a fundamental level.

    If you’re having OK success at something that doesn’t fulfill you or that you don’t enjoy, it’s probably a better idea to get an alternative job that is most certainly going to pay more, on a more predictable basis, with less working hours and less overall level of stress. Even if the thing you mainly want is being independent and ‘free’, there are better options. As a programmer you’d certainly make more freelancing, especially with the kind of expertise you’d have as someone who is actually capable of pulling off remotely complex video games.

    I really don’t know why people would go down an arduous and risky route like indie gamedev only to end up working on stuff they don’t actually want to work on. It’s easy for this to become a slippery slope into mundanity as well. ‘I’ll just do this project to get a bit more money to start working on the stuff I dreamt about so long’ -> ‘I have just enough money to continue but not nearly close enough to do a risky project and be somewhat safe, I’ll just do another project to accumulate more money so I can work on what I really wan tto work on’ and so forth.

  6. Wow. Harsh but wonderfully authentic. I think we all need some general definitions of what a hobbyist gamedev is, an indie gamedev is, a gamer dabbler is, etc so that people can self-identify what are they doing and stop pretending. There is nothing wrong with being any of those things but there is something wrong with pretending.

  7. Cameron says:

    Ditch Visual Studio and use Jetbrains Rider. It’s better than Visual assist. There, I said it, prove me wrong.

    • Daniel says:

      Uh, unless I’m reading their website wrong, JetBrains Rider appears to be exclusively for .NET programming, and I’m pretty sure Cliffski programs in C++.

  8. Mike Garcia says:

    Good read, pretty soon you’ll run out of secrets. ;)

  9. Agreed with many of these points, especially #6. The right mindset is SO important.

  10. John says:

    Pretty much all of these apply to being efficient at any software development job.
    Most of them are not specific to game development.
    Most of them are not specific to being an indie.

    Basically focus on what you are meant to be doing without distraction, use good tools, and work hard on it.

  11. Hey cliffski, I know you blocked me on twitter so perhaps this will be considered harassment, but when I say you come off as disrespectful to struggling devs I’m not trolling you to be an ass. I think you have a ton of experience in this industry and you could really help people, but if you write your posts assuming the worst of the audience you’re not gonna reach anyone who actually needs your help. I’ve been reading your stuff for literally over a decade and you seem to be more and more pissed off at anyone younger than you. I think that’s kind of a bummer.

    If you really value seeking out harsh but real criticism, then take this under advisement. You have a lot to offer people but approaching these posts with an arrogant attitude just pisses a lot of other devs off and puts you in a bubble of only people who already agree with you and share your point of view.

    Blocking me for calling you out is kind of a symptom of that, no? I wasn’t even rude to you, I just said you were disrespectful.

    I don’t even have any real complaints about your post, I just think you could approach the topic a little more respectfully, don’t assume any dev looking for help is a lazy idiot. That’s literally it.