by Kanane Jones
So you want to get into independent games development (or “indie dev”) but aren’t sure where to start? Here’s a brief guide to help you get going, covering the following: choosing a tool and learning how to use it, organizing your work and documenting it, and working effectively and staying motivated.
Picking an engine and learning how to use it
Choose a game engine
First, identify a game engine that works for you, both in terms of your skills and interest, and in terms of the kinds of games you want to make. Thankfully there are a plethora of relatively accessible and free or cheap engines available to you. Here are a few possibilities:
- Examples: Porpentine’s Howling Dogs, Matthew S. Burns’ The Writer Will Do Something, Zoë Quinn’s Depression Quest
- Tutorials: a list from the Twine wiki (and of course the wiki itself is a valuable resource)
- Ren’Py (free): a visual novel engine based on Python. It takes a little more to learn than Twine (but not much). Ren’Py, like Twine, is designed for interactive fiction, but places more emphasis on including graphics (hence the term “visual novel”).
- Examples: Christine Love’s Analogue: a Hate Story, Hanako Games’ Long Live the Queen
- Tutorials: Quickstart Guide, Beginners’ Tutorials, Ren’Py Coding Tutorials
- RPG Maker (Most recent version: $79.99): a roleplaying game engine that utilizes Ruby, RPG Maker is also fairly accessible for beginners; many RPG Maker games suffer from a certain amount of sameness, but there are some exceptional games out there that show that you can create some quite unique projects with it.
- Examples: Freebird Games’ To the Moon, Vagabond Dog’s Always Sometimes Monsters
- Tutorials: there’s quite a few on the official site and even more listed on the forums
- GameMaker (free for the basic version): a more general game engine that can be used for a wide variety of game types (primarily 2D). It has its own custom scripting language called GML; unfortunately there isn’t a current Mac version available.
- Examples: Messhof’s Nidhogg, Moppin’s Downwell, Dennaton Games’ Hotline Miami
- Tutorials: beginner tutorials, project tutorials
- Unity (personal edition is free): a game engine that can be used for a wide variety of 3D and 2D game projects. Unity uses C# for scripting, however, there are a lot of free and inexpensive tools for specific project types that make things easier.
- Examples: Mike Bithell’s Thomas Was Alone, Fireproof Games’ The Room, Cardboard Computer’s Kentucky Route Zero
- Tutorials: project and topic based tutorials on the official site, Catlike Coding tutorials on a variety of topics
These are only a few of the wide range of tools available; I highly recommend you look around and spend a bit of time looking at any that grab your interest. Don’t be intimidated by scripting requirements either – a lot of the time someone else has written and made available the script or information you need to get going with your idea. (More advice on picking an engine, finding tutorials and getting art and other assets for your game at Sortingh.at.)
Learn game design
The best way to learn and improve your thinking about game design is to play a wide variety of games – including games you wouldn’t ordinarily play. Look for things outside your comfort zone – even if you don’t enjoy a game, you can learn different ways to approach mechanics and narrative that you might not think of otherwise if you stick to just playing your favorites. Even very broken games can teach you things about what to do and what not to do when making your own games.
Speaking of broken games, learning from other people’s mistakes (and successes) can also be quite helpful. I tend to read any post-mortems I can find for games made by solo developers or small teams, like this one for the game Out There, which was made by a team of two people, or this one for Amy Dentata’s Trigger. There are some interviews with indie devs such as those Cara Ellison did for her Embed With Games series (there is a book as well as the blog; I particularly enjoyed the one with Ojiro Fumoto, the creator of Downwell), or David Wolinsky’s No Don’t Die series. I also highly recommend the State of Play anthology, which contains a series of essays on games and video game culture.
Start with a small project
Once you’ve selected an engine, I recommend starting with a small project to familiarize yourself with it. As you go through tutorials, build on your project or use your project to drive which tutorials you focus on first. If you have a Big Idea you are burning to work on, absolutely go ahead and work on that if you want, but keep in mind that whatever you start out with you will probably end up redoing several times as you learn more about it. Smaller projects will allow you to focus on learning a specific feature or technique that you can build on later without getting tangled on the interaction of these various elements before you’re ready.
Ask for help
Beyond tutorials and practice, your best resource is other game developers. Most companies that create game engines also host forums where you can ask questions and reach out to other developers. In addition, there are subreddits, other forums and even Twitter, where you can often find people willing to help you solve a problem or answer a question you might have about game development. Most of us started out where you are today and are happy to help. In some areas there might be resources available for marginalized indie developers such as Different Games Collective, Pixelles, Code Liberation Foundation and Dames Making Games. I also recommend following the work of I Need Diverse Games to find out more about what other projects and creators are out there. This post by Tanya DePass, the creator of I Need Diverse Games, also has some useful resources to see what other people out there are doing.
Organize your work
Once you start working on a project, it’s really helpful to organize your work to keep track of what you’ve finished, what you still need to do, and what you’re currently working on. Especially if you’re like many solo indie developers, working in your spare hours left over after school or work, it’s easy to lose track of what you’re working on, so keeping records is a good way to make sure you don’t lose your place. One of the challenges and pleasures of solo indie development is that you are your own producer – a producer’s primary role is to keep things organized and to keep the development process going, and you’re going to be doing this for yourself.
Break things down into tasks
Start by looking at your project and breaking it down into smaller tasks. Grouping tasks by the type of work involved is a good way to organize your work. How this looks is going to vary from person to person and project to project, but the groupings I tend to use are: UI, story, art, engineering and audio. Within each of these groupings, I break it down into specific elements: for example, a story task might be something like “describe the protagonist” or “outline the introduction”, whereas a UI task might be something like “design the health bar”, or an engineering task might be “write the camera script.” There are a lot of different tools you can use to make this easier: Asana and Trello are both free for small teams, and I’ve used both and found them quite effective. That said, I prefer spreadsheets (entirely a personal preference) and I have created a template spreadsheet that you are free to use and adapt if you find it useful.
Document your work & the resources you use
Don’t underestimate the value of documentation! I can’t tell you how many times I’ve come to regret not writing things down as I thought of them and had to try and reconstruct a concept or solution from memory – even a few simple notes about a character or a mechanic can save you a tremendous amount of time later on. If you use any other assets (art, sound, etc), make sure to make a note of what the asset is, where you found it and what license it’s under. This will save you a lot of time when you’re putting together credits for your game and can also serve as a resource for future games.
I’ve learned that Twitter is a terrible place to store your ideas (this seems obvious but I had to go through this a few times before I finally stopped doing it). I’ve thought to myself later “I tweeted about that, didn’t I?” and then I was desperately trying to remember some unique term or phrase so I could search for those tweets. Now I keep an ongoing document where I put idea seeds and if I decide to work on one, then it moves into its own doc in its own folder, where I keep all of the documentation (task sheet, character descriptions, assets used, etc) so it’s all in one spot.
Working effectively & staying motivated
Potentially one of the most challenging aspects of working as a solo game developer is finding ways to work effectively and stay motivated. Breaking your project down into tasks, as previously discussed, is something that can help, but there are a few other things you can do, like taking breaks, rewarding yourself for reaching goals, tracking your time and setting goals and deadlines for yourself. In addition to the following tips, I recommend this post by Carolyn VanEseltine.
A surefire way to kill your motivation is to work as hard and as long as possible until you exhaust yourself and burn out. I’m speaking from experience here; I worked on Final Girls and then love/space continuously for about three months, putting virtually every spare minute I had into them (on top of working a full-time job!). While I don’t regret what I accomplished, it was really hard to go back to it after that, and I nearly got ill because I was so exhausted. Make sure to take breaks while you’re working – if you’re like me and forget, something like Workrave or Tomato Timer is really helpful. Stopping to stretch or go for a walk or get a glass of water is actually a big boost to productivity and helps keep your energy up.
Tracking your time
Something that I’ve found really helpful for staying motivated is tracking the amount of time I’ve spent on a project or task – this way, even when I’ve spent hours either tangling with a tricky scripting problem or a nasty bug where I don’t end up with much to show for my time, I have something I can look at that gives me a sense of accomplishment and progress. Initially, I was using a spreadsheet but then I looked around and found a time tracking tool that I liked better called toggl. There are plenty of other options out there, so definitely look around and see what works for you.
Set goals and rewards
Setting goals for yourself can also help keep you motivated. There are lots of ways to do this, either by setting a goal for when you want to have a project or task finished, or finding an external deadline to work towards, like a contest submission deadline. Participating in game jams is another way to motivate yourself and also get feedback from other indie developers about your work. Check the calendar here to see what game jams are upcoming. It can also be helpful to plan rewards for yourself for reaching a goal – it doesn’t have to be anything fancy, but just a simple and fun thing that you look forward to after you’ve accomplished your goal, like playing a video game or going out to see a movie.
So that’s the broad overview of what I’ve learned about being a solo indie developer. I hope you find it helpful, and if you have any questions, please feel free to email me at email@example.com or message me on Twitter @spidey_j.
Good luck and have fun!
Kanane Jones is an indie dev and creator of the game “Final Girls”; she likes to make small personal games and is currently collaborating on a lesbian vampire dating sim. She has lived in several countries but currently resides in San Francisco with her sphynx cat, Teto.