Located in the Great White North, Dan Hunter is a Visual Effects Artist for Digital Extremes in London, Ontario, Canada. He’s been in the games industry since 1996, starting out as a pixel artist. Since then, going through numerous art roles, he’s worked on big games, little games and ugly games. He currently works on the PS4 launch title Warframe. When not making explosions, Dan is an indie game maker, graphic designer, and does as much as he can do to “get away with it.”
I’ve a passion for games that stretches back to when I was a child playing Manic Miner on my ZX Spectrum. Now, after years of making big budget games that have sold millions for games studios such as Lionhead and Digital Extremes, I’ve discovered the freedom and excitement that comes from being an indie developer. My goal here is to help the up-and-coming, first-time mobile game developer by sharing what I believe is important to consider when it comes to making your own game.
While in the process of composing this post, I read Andrzej Zamoyski’s guest piece “7 tips from a AAA game developer who made the move to mobile.” My first reaction was that he’d beaten me to it. It seemed very much like the games industry – you have a great idea, but somebody comes along first and beats you to it. My second thought was that AAA developers seem to like making lists. So what was I to do? I approached it as I would if I were making a game. Sticking with my concept, I would take what Andrzej had done, build on it, add my own style, hopefully be original in places, maybe even funny in others, and produce something that represents me. That is what this piece is about – seeing what’s out there, putting your stamp on it, and in the end, hopefully making a game that represents you. But if all else fails, simply make a bigger list than the last guy.
It’s fine to be influenced by other games. But you also need to take risks.
It’s very important to take risks. It’s what makes you stand out from the crowd. Having a wholly original idea is what most designers strive for, but that’s hard to come by. Maybe total originality is not what you’re aiming for. Maybe you just want to make the next great “Shoot ‘em Up”. But think beyond making a near carbon copy of a game that already exists. How many clones of Angry Birds does the world really need? If you want to base your game on one that’s already out there, go ahead, but do some research first. Think about what you could do to improve on the game. Consider what was done poorly and don’t make the same mistakes. Put a twist on the genre and make your game unique. Give yours a fresh art style, or add a back story to make it different from the rest. You have to take risks to elevate your game above the all the others out there.
Be the gamer.
When you’re up to your ears in code, it’s hard to have a balanced opinion of your game. Take time to take a step back and be the gamer. Does a certain feature make sense? Is the UI readable? Are objectives clearly set out? All this is crucial for the user to have an enjoyable experience. The visual quality of your game is not the only important factor. Most of us have played a game at one time or another that looks fantastic but is poorly designed, causing frustration and taking us out of the experience. Remember that when people download your game, they don’t also purchase you to explain it to them. Make your game understandable. Remove any unnecessary menus, buttons, and options. Make it as streamlined as possible. If a player gets frustrated with your game for whatever reason, that’s entirely your fault. In addition, assume the player has no previous game experience. This could be the first game they’ve ever played. With that, you cannot rely on any previous knowledge for them to play your game. So make their experience as stress free and happy as possible.
Find your voice, and know what you love.
When a lot of bands start out, their set usually consists of one or two cover songs. This is partly due to the fact that they don’t have enough songs to fill out a set, and maybe also to give the audience a reference point as to where they’re “coming from.” But also, I think, it’s because those are the songs that inspired them and helped them to shape their identity, so they play them until they find their voice and write their own versions. You can do the same. Find what it is you love about games and what type of games you love, and focus on that. In my opinion, the best games come from people who are passionate about the games they make and love what they’re creating. It’s not all about following trends. I understand it can be hard to see people making a lot of money from something and wanting a piece of it (I know, I’ve been in that position), but if you follow trends, you won’t be happy, and your games will suffer for it. Find your voice and make what you love. That way, when the harsh reality of game development hits you and you don’t become that multi-millionaire you hoped you would be, it won’t sting as much. You’ll know you made your game the way you wanted.
You don’t have to release everything you make. I’d even encourage you not to.
So you’ve made your first game. You’ve possibly followed an online tutorial, changed up the art a bit, maybe downloaded some sound effects. You’ve made your Mum proud, proving to her that all that time racking up headshots in Call of Duty was worth it. What’s next but to release it? Right? Wrong. Chances are what you’ve made is garbage, especially if it’s based on any sort of tutorial. It’s a safe bet that a thousand other people have done it before you. Don’t get me wrong, I’m not criticising tutorials. They’re great resources, and I’ve learnt much from them. My point is you shouldn’t just put out the first thing you make and add to the digital landfill. If you want to be taken seriously and have a successful game making career, you need to set your quality bar high. Only release the very best you’re capable of. That’s how you gain respect.
Measure up to what is out there and know your place.
You need to be knowledgeable about what the standard is for games. Don’t live in a vacuum. Play games, look at them, and be aware of your competition. Now you may think, “But how do I compete with games that are made by huge teams?” The simple answer is that you don’t have to. You can’t compete with big studios in terms of production budgets or man power. So what. You have something they don’t: flexibility. Most big games studios have producers, managers, leads, and all kinds of people at multiple levels working on a game. It’s sometimes not the most flexible of environments. You, on the other hand, may be part of a small team, or even just one person. That gives you the advantage to make many more decisions, and come to resolutions much more quickly. Most of us will never have the budget of a Ubisoft or Rovio, but we have the ability to take far more risks, and be more unconventional. Look at Terry Cavanagh and his game Super Hexagon or Vlambeer’s Ridiculous Fishing. Those games could only have come from an indie developer. I’m not saying it’s going to be easy, nor should it be. To get the best often requires sacrifice, commitment, and disappointment. Work hard and the rewards taste much sweeter.
Having a clear idea of what you want your game to be goes a long way.
Knowing what you want your finished product to look like will help you greatly. This isn’t to say you should slavishly stick to your original idea, no. As I mention later, experiment, prototype, and have some fun. But if possible, have a reasonably clear idea of what you want come release. I remember hearing director Ridley Scott talk about his film Alien. He said when it came to shooting the film, he’d already played through the movie numerous times in his head. He knew where the story beats were and how it was going to fit together. Sure, things crop up during production. Ideas in the script play out differently when acted, scenes change, but the core idea stays. He knew the story he wanted to tell. You should know your game. Although the less said about Prometheus, the better.
Iterate and be prepared to start over (and over, and over)
Making games is an iterative process. Quality games are built on good foundations. Get your systems together and get a working prototype up and running as soon as you can. So if you’re making a platform game, get your character running and jumping as quick as you can. Get the “feel” just right before moving on. “Platformers” live and die on their controls and it’s a hard thing to get right, but you’ll know when you have it. You’ll know when things just feel “right.” Once you have that down, take it from there with level creation, enemies, scoring etc. If you’ve got a solid base, there’s nothing you can’t throw at it. I also propose you build prototypes, and lots of them. Test things out, keep it loose, play around. Once you have a clearer idea of what your game is, build up from there. Bring the entire game up together. And always question the decisions you’ve made. I take the time to re-write huge portions of my code. I’m always learning and finding better ways to do things. It’s embarrassing to look at the code I did just a year ago and compare it to what I can do now.
Both taking time to rewrite and build prototypes has helped me while making my current game. I’d lost a bit of focus and it was becoming harder to move forward with it. So I took some time out, and made a whole bunch of mini games. This helped me to clear my head and figure out a whole bunch of stuff, exposing me to things that while not necessarily connected to my main game, helped me with a broader understanding of Lua, Corona SDK, and game design in general. I returned to my main project, reduced the code base significantly, and made it way more streamlined and efficient. Nice.
Test, test and test again. It’s done when it’s done (also known as the id Software rule).
Be sure to get your game into the hands of as many people as possible, and I’m not just talking about your buddies down the pub. You need unbiased feedback and you won’t get that from friends and family. Based on their suggestions and criticisms, make the necessary changes, then repeat the process. In a similar vein to my “be the gamer” point, be sure to constantly analyze your work. Do regular checks for bugs and memory leaks, do performance reviews. This way, you won’t get to the end of your game and find it runs at 5 frames a second, and you’re left with the mammoth, and quite frankly tedious, task of trawling through code fixing tasks. Bug fixing isn’t a glamorous part of game development, but you can’t hide from it, so just knuckle down and get on with it.
Don’t be afraid to take the time to make sure it’s the best it can be. Id Software’s mantra is: “It’s done when it’s done.” I think this is a good thing. Valve also does this, making sure their games are as good as they can possibly be before release. Learn from these guys. Although I wouldn’t recommend taking over a decade to finish a game.
You are not alone.
There has never been a better time in which to make games. Everything we need is just a mouse-click away. Whether it be software or something else, it’s all out there, free, and ready to use. Embrace that.
Corona Labs does a huge amount to help devs out too. I’ve lost count of how many times I’ve come across a problem, and within no time found the answer somewhere on the Corona site. In addition, there is a community of developers on the Corona forums who are more than happy to help a fellow developer out. These great people have helped to make my life so much easier. I highly recommend that you take advantage of their knowledge and generosity.
Learn to roll with the good, bad, and ugly but most of all, keep it fun.
This is the single most important point. If it isn’t fun, ask yourself why you’re doing it. For most indie devs, the financial rewards are slim to none. So why do it? For me, the answer is easy. Despite the lows game dev can bring, I love it. Now I’m in the fortunate position to be making games myself, which is a huge responsibility, and not something I take lightly. It’s stressful, painful, frustrating, but first and foremost, it’s so much fun. I wish only the same for you.