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

How to stay motivated whilst programming a game

Lots of people want to know the answer to that question. Most indie games fail. Most indie projects never get completed. I don’t have any way to prove that, but any indie game veterans will know it’s true. Here are my top tips. Some of them may seem like they de-motivate, rather than motivate, but I get motivated by knowing how important and serious it is for me to work hard. Most indies don’t realise how hard they are going to have to work, and how good their game has to be.

1) Code something you like.

Just because you did your research and can prove that a poodle simulator is the best choice for the current games market, doesn’t mean you want to program one. You might kid yourself that you can see it as a ‘mere engineering challenge’, but you won’t. Getting out of bed when nobody forces you to, with no deadline and no boss, to go code poodles probably won’t motivate you for a solid year. Pick something you are passionate about. I love sci fi and space battles, so making gratuitous space battles was a no-brainer. On a related note, save up some ‘fun’ coding for when motivation is low. Feeling keen? code the save game system and the options menu. Get them out of the way.

2) Surround yourself with inspiration

I listen to music from star wars or star trek when coding easy stuff or doing art. Coding scrollbars can seem dull, but the music reminds me these are spacefleet scrollbars and that makes it ok. The people who play your game won’t see the code, only the art and the game, so keep a picture of the final ‘atmosphere’ of your game in your head all the time. Does your pc desktop wallpaper not reflect the mood of your game? why not?

3) Keep a log of what you did each day.

Sometimes its easy to think the day was wasted, that nothing got done. I have lists of things to do for my games like this:

  • Fix bug with plasma torpedoes
  • Resize scrollbars
  • Add tooltips to buttons
  • Add transition to options screen

At the end of the day my log looks like this:

  • **DONE**Fix bug with plasma torpedoes
  • **DONE**Resize scrollbars
  • **DONE**Add tooltips to buttons
  • **DONE**Add transition to options screen

And that makes me realise how much I got done. You get a tiny adrenaline rush by crossing things off a todo list. Make one each day. Make the entries small, simple items, rather than huge projects. It should always be possible to cross something off each day.

4) Do some shiny

Mr Spock would code the entire game engine, get the gameplay balanced using just coder art, then add the graphical fluff last, to minimize re-doing work. I used to assume that made sense too. I used to rail against Lionhead for having so much artwork, code and music done before we were even sure how the game played. So much work got thrown away. Now I realise it’s important for your motivation to have something that looks and plays nice ASAP. The GSB campaign add-on hasn’t got all its gameplay coded yet, but theres a gratuitous map-zoom effect in already, plus background music. Having those things there keeps me positive about how cool the final game will look. There really is a good reason to code some shiny stuff in the first 25% of your project. Just don’t go mad.

5) Hard lessons in money

I gave a talk at a conference recently about the reality of indie games as a business. To be short and sweet, you need to sell a full-price game direct to a customer every 45 minutes, or you probably won’t make a career as a  full-time indie. That means at the very least someone grabbing your demo every 240 seconds. When you keep this in mind, you realise you need to make your game really good. Better than it is. You need to do better, just to survive in this market.

6) Stay aware how high the bar is (know your competition)

Don’t forget that for most gamers, the competition isn’t other indie games, but AAA games, or even other activities, TV, movies, etc. When I worked on the battles for GSB, I spent very little time looking at rival games, and virtually no time looking at indie space games. I compared it to the best sci-fi battle scenes I knew of, by ILM. Yes, you have to pick your battles, and graphics might not be one of them. Spiderweb compete on game length, Dwarf fortress on gameplay depth. Whatever it is that you are competing on, you need to ensure you aim as high as you can. Also remember that your game isn’t measured against the best game there is right now. It’s measured against the best game when your’s gets released…

8) Take short breaks.

Get away from the PC for a short while, so when you come back, you are fresh, keen and energised. Physical activity is a good idea. I do archery now and then. It’s ideal because it involves standing upright, concentrating on a distant object, and 100% focus on what you are doing. It’s the perfect sport for desk-bound geeks

===

Staying motivated is hard. Everyone has the same problem. Often, its the deciding factor between getting your project done or not. High motivation trumps everything. There are indies making games who are homeless (yes really) and who had to make them ‘undercover’ in Cuba. They still got stuff done. Lack of experience, lack of money, lack of time, can all be overcome by sheer bloody determination, if you can summon it. Now stop reading this, and type out tomorrows todo list.


24 thoughts on How to stay motivated whilst programming a game

  1. Priceless post :-) really good advices, tks for sharing them.

    Now that you’ve mentioned it again, are you going to upload your World of love slides? I’m really curious about your talk :-)

  2. I love putting #3 to use. Don’t forget to add all the little things you do in passing that weren’t on your list. Give yourself credit for them.

  3. What Ive noticed is to constantly reward yourself with “the cool” code.
    Between periods of “the dull” code.

    The coolest times is the first few days, when working on the prototype,
    and rapidly seeing the (core) game emerge.

    This effect wares of faster and faster, the more detail stuff, bugfixing and tunig has to be done.
    It feels like not moving at all, whilst not working less on it.

    So keeping some cool features (a special Animation, implementing sound,
    a cool reward-screen) in the hold is a good way to overcome
    dull things like menu programming, and awaiting eagerly to start working on
    the stuff that makes the game shine again.

  4. I can definately relate to #4. Although I’m a bit rubbish at art, I see things visually in my head, so it really helps to see it on the screen as well.
    Really good advice here, Cliff. I’ll be sure to keep it in mind, especially the daily plan one (though I might make it a little longer-term).

  5. Those are some excellent points of advice, and relevant to professional and mainstream gamedev too I would say. Point 4 is especially important in a small team situation where you need to try and keep everyone involved in a project motivated. If you schedule in 3 weeks of internal engine coding for example, important though it migh be in the long run, during that period nobody else perceives any progress and can lose focus. Show your producers or management something shiny, and they stay happy. As we know, nobody cares about the code they can’t see the effects of :-)

  6. You did forgot 1 important point … ;)

    Read what other indie game devs have to say …

    Whatever the scale, whatever the ambitions I found that reading what other people in the “same situation as me” have to say is the best thing anyone can tell you.

    I receive a lot of “empty encouragement” (that is still needed) from people that have little clue of what I try to do but reading about the “real thing” is really what gives you fuel.

    Some may consider it harsh or whatever but once you have accepted that it won’t be an easy ride just having hard proof that someone somewhere went through the same things it gives an incredible boost of motivation. Well at least for me …

    I like hearing that it’s hard because that’s the exact same thing I’ve been experiencing. Somehow it tells me that it’s not me being a total loss. Anyway something like that.

    Keep that kind of post going the way you do them because I assure you that somewhere there are people reading with great interest. Starting with me.

    Heck I even enjoy the random tweets about some difficulties or success you encountered because I can relate to that.

    The way you can inspire people often goes beyond what you expect even when you think you are making this look bad or very difficult.

    Thanks

  7. Nice list. I would add two more…

    a) Distractions.
    The distractions our infinitely connected technology bring can sap motivation before it even begins. Try unplugging your RJ45 for a few hours and watch productivity soar.

    b) ‘Fast Enough’ is better than ‘Fast’
    I’ve seen so many games programmers get stuck in a rut, spending hours and hours squeezing performance out of code. We’ve all done it at some point. The problem with doing lots of “optimising” is that you’re not “creating” and it is creating the new stuff that brings new motivation. I’m not saying performance isn’t a factor. It is. Just not as important as 99% of programmers say it is.

    Ultimately though it comes down to you either care or you don’t. Every so often someone has the misfortune of asking me for advice on getting into games programming and, although I passionately believe this, I’ve always felt bad saying it…

    “If you want to be a games programmer then just answer this one question. Imagine someone said you couldn’t make another game again. Would you be able to carry on living? Could you imagine yourself living a happy life in which you did no game development whatsoever? If the answer is no, then you’ll be just fine – but the answer has to be no.”

    I don’t want to make games. I need to. I didn’t choose it. It chose me. I’ve tried giving up several times but I can’t. I’d rather write books, songs, plays or films – much more established forms where the work (and artist) is taken much more seriously. I hate how the very name of our form is an insult, “you don’t love me, you’re just playing a game”.

    This will change – but the progress is painfully slow.

  8. Some solid tips here, thanks for the article..

    I always have trouble with #3 myself.

    #1 I need to apply more often.. I’ve often started on projects I care nothing about then end up throwing them to aside.

  9. Liked the article although I think that data driven development and procedurally generated content should also be core to any indie’s development approach.

    Let’s face it you don’t want to spend ages setting up lot’s of things that you could automate or generate with a simple tool, e.g. screen graphics, assets, sound effects, automated testing, properties for your latest super blaster!

    I know ;o), so don’t get bogged down in the plumbing when you can code a robo-wrench!

  10. And I generally make a lot less than Jack and still hold on as an indie… people’s ideas of money vary. :) (As does my income!)

  11. Thanks for this post. You reminded me of why I make games and what I need to do to keep loving it.

  12. Item #4 about needing something shiny early is SOOO TRUE.

    It’s so easy to look at your crappy coder-art interfaces and effects and be discouraged because you have such a long way to go.

    Spend just a little time making something really nice and polished or look great and when you see it, it will remind you how awesome this will be when it’s done and that encourages you to keep going.

    I’ve found this to be very important.

    For example I’m working on a multiplayer game.

    I got the user connection and communication parts done. Took a few days but users were now connecting and talking to each other.

    Then I went to work on handling user disconnects and reconnects.
    I realized that this was a tricky problem and after a day or so realized I still had a ways to go.
    I was getting discouraged.

    I then decided to handle user disconnects later, and just moved on with the game implementation and UI.

    One of the best decisions ever. My spirits were much higher after that.

  13. Excellent post!

    I would also add…

    Love what you do and it will love you back. But more importantly, take care of yourself and those around you. Motivation can be lost when your body is lost. Your body is your weapon in this fight. The moment you don’t treat it with respect you will find yourself spiraling down a hole. So get up, exercise (get a retention band at target for $10 or something) and make sure you watch what you eat / drink.

    Keep your eye on the bouncing ball. You’ll get there.

  14. Great article! I’d disagree on one point though — in #1, you mention “no deadlines” — I think having deadlines is *crucial* to your success. I’ve seen many projects fall by the wayside because people got bored/distracted/hired as well as just plain unmotivated. In the game I’m working on, picking a deadline and telling everybody lit a fire under myself and the graphic designer. When the deadline came, no, we weren’t quite ready to ship (we’ve done a soft launch) but we’re only a few weeks away from a full launch on Facebook and iPhone and I have no doubt we’re immensely further along than if we hadn’t set a deadline. Having that deadline looming, even if it’s one you arbitrarily set yourself, makes a huge difference in getting things done, I’ve found.

  15. Regarding #3 (logging your progress): I’ve found that you can get this for free by posting good comments your code commits. GitHub is a wonderful too for this as well (public or private web-based UI for code commits, nice!).

    Good stuff Cliffski!

  16. great post! very recognizable stuff. especially the part about putting some ‘shine’ in it even at the beginning.. works for me too :)

Comments are currently closed.