Sunday, January 19, 2014

Eleven things I wish I knew two years ago

Little over a year ago I thought it'd be a good idea to quit my stable, 40-hour-a-week job to make by childhood wish come true and start making violent video games for a living. The past year has been a rollercoster with lots of successes, failures and lessons learnt. I've been doing some stocktaking, trying to figure out what I've learnt and I've come up with a list of things that I wish I knew two years ago, before I started on all this. I hope this can help anyone else starting out on this silly venture of making games...

1. Don’t fall in love with your game

When I was starting out on trying to become an indie developer, I’d made one or two small projects, and I asked some of my friends to play them to test and get some feedback. I got annoyed with my friends when they weren’t that interested in playing my games.  But really, it wasn’t their fault, it was my fault for making shitty games.  The first thing to take away here is that you shouldn’t be making shitty games. The second thing is that is is actually quite hard to know when the game your are working on is shitty. I thought my early games were pretty cool, looking back now, I am embarrassed at how bad they were.

Stick Duel is still fucking legit, tho

When you’ve been working on a game for a certain amount of time, it’s easy to not see any of its faults and start thinking it’s the greatest game ever.  This is a trap, this is what makes you not be able to throw it away, start anew or iterate quickly.  What makes this harder is that very few people are willing to admit that your game is crap, so you have to pick up on cues.  I’ve since resorted to the following trick: I’ll ask someone to play my game and I’ll do the usual over-the-shoulder peering to see how they experience the first few minutes. Then I’ll leave the room for some reason. If I come back in a few minutes and the person is still playing, I’ll assume they like the game. If not, they obviously have terrible taste in games and I’ll disregard any feedback they gave me. Dicks.

2. Get feedback early, get feedback often

The timing of when you should start asking for feedback can be tricky to get right.  The game must be playable, obviously, with some juice added where it’s important and some effort made to explain the mechanics in-game.  But once the bare bones are there and the core mechanics are exposed and it isn’t just falling over at random, you should start trying to get some people to play your game.  Join a few forums, become involved in communities and post your game for others to play. Unity webplayer is excellent in this regard, as it lets people play your game as easily as possible.

What works even better is to have people play it while you are watching in person.  However, it is crucial that you do not interrupt or give any clues as to how your game works, or you will not learn what is and what isn’t being explained in your game and taint their first experience, meaning you will not learn what you need to.

Try to also not have too many people play the same version of your game - it is always important to gauge the first impression your game makes.  Having people see your game for the first time in each stage of feedback is important so you can gauge if that improvement you made to the tutorial is panning out.

3. Tech doesn’t really matter

Stop worrying about whether you are using the right tools.  Get an engine you are comfortable with, and go with it.  If you are required to use a different engine at some stage you will be able to translate over your skills in a short amount of time.  If you feel limited by the tech you are using, you are probably not being creative enough.  

Black Annex - made in Q-Basic - the first language I learnt. 

In my personal opinion, everyone starting out should be using either Gamemaker or Unity, probably Unity these days, but it really doesn’t matter. Also, use an engine, unless you are masochistic or enjoy programming more than creating games - although lots of excellent games are made with small teams and their own engines.

4. Don’t work in secret

Early access and open development practices are becoming more and more popular and with good reason - it’s simply a much better methodology for developing games.  Don’t be concerned that people might want to ‘steal your ideas’, because:

5. Ideas are overrated

I’m not sure whether I’ve been successfully blocking these people out or whether this has become less prevalent but for the love of god please stop thinking you have an amazing idea.  You almost certainly don’t have an idea that a hundred other people haven’t already had, and even if you did, the idea is worth far less than the execution.  Take Narbacular Drop, for example. An excellent, revolutionary idea that won GOTY the world over, but only when it was executed to perfection as Portal. Of course, we all love our own ideas, and those ideas are what get us excited and why we work in game development, but it only has value once it is realized.

6. If you wanna make games, make games (not excuses)

I’ve heard a few people say that they are interested in making games, when I ask to see what they’ve made, they’ll usually offer an excuse such as they’re still forming a team, or they are still reading up, or that it’s hard and they don’t have time, or whatever. I don’t care.  I’d already stopped paying attention.  This doesn’t just apply to games, but if you want to do something, then do it. All the information and tools you could ever need is available for free on the internet.  Yes, your first few games will be embarrassingly bad, but that goes for everybody.  The only way to get to the stage of making less shitty games is by making those shitty games first.  You don’t need a team and if you are new to making games you should not be working in a team, anyway.

7. Juice is king

A game is not a game until it has camera shake.  I don’t care whether you are making a text based depression simulator, add some god damn camera shake. Hearthstone is a card game and it’s jucier than most FPS’s, which is probably the single biggest reason for its success.  Peggle is a game with nothing BUT juice, and look how well that has done.  When in doubt, particle effects and camera shake.

Particles! Explosions! (not pictured: camera shake)

8. Find some cool bros to work with

After you’ve built up some experience, maybe did a jam or two by yourself, it’s definitely worthwhile to find a few people to team up with and do a group project. I'm lucky to be working with some ridiculously talented and driven people and the rate at which I've learnt has skyrocketed. There is also great value in being able to work with a group in person rather than remotely, as ideas can be bounced around far faster than over email or skype.

9. Learn to teach

The art of conveyance is a cornerstone of game design.  It is critical to learn how to teach people your game while they are playing, without them realizing that they are taking lessons.  Using text to instruct a player anything is a mistake, most people will just blindly ignore text on the screen.

10. Gamejams are great

Something I'm guilty of is not participating in enough jams. Jams are great for trying out that weird idea you aren't certain of, getting something 'finished' after a weekend and getting easy feedback from other participants. It's also great for building up a portfolio, which is by far your most useful asset to get hired.

11. Making Games != Playing Games

Game development is some of the hardest (desk bound) work you can do. There is a very long road between seeing a picture of the game you want to play and realizing it. On top of that, competition in the indie space is hectic and getting tougher every day.  Making an average, or even just a good game isn't enough any more, you have to stand out above the crowd and that takes work.  If you want to succeed professionally, while still making an interesting game to your own vision, you have to go the extra mile and be prepared to give up sleep/free time/sanity to accomplish your goal.  Whether it's worth it or not is up to you - I know it's certainly been the case for me!