A Year's Lessons from Solo Indie Development
It's a year since I quit my job to 'go indie' and attempt to write a game. Like many who try this, I've learned a lot, but I haven't produced the finished product I was aiming for.
Here are some of the lessons I have learned from this experience. I'm not sure if advice can ever truly stick until you experience it for yourself, but hopefully some of you will find this useful.
A Clear Vision
The most important thing you need when creating a game is a clear plan of what you are aiming for.
Concept Work is Not Game Development
I initially spent a lot of time away from the computer developing ideas. Ideas for characters, for environments, the geography of the world, enemy designs, the flow of the narrative. Designs for costumes, character profiles, mythology.
Frankly I think I was a little burnt out from my previous job, and needed the break from the computer.
I did a lot of work. But all that work didn't get me a game. When it came time to translate these ideas onto the screen, I struggled. They were too big to fit. My detailed character designs had to be simplified and simplified to remain distinct at the pixel sizes I needed, and I still wasn't happy.
You can spent lifetimes experimenting with concepts. It's definitely a useful process for it's own sake, flexing creative muscles and improving art and writing skills.
But it doesn't necessarily help you make a game.
What Happens On Screen?
For a game, it's what happens on screen, from moment to moment, that matters.
I struggled for a long time with the decision about whether to make a turn-based or real-time game.
People will suggest prototyping, and I've had sucess with this before. But prototyping is only useful if making the prototype is an order of magnitude less effort than making the finished product. For an indie developer without a full team to ramp up production, I'm not sure that this is always the case. Your prototypes would have to be very simple indeed.
One of my most productive periods has been the last two months, where I decided to work on a simple game with a fixed design - not to sell, but in order to cut the knot and get into the habit of finishing things.
Remove as many decisions as possible from your game making process. Be ruthless and pragmatic with yourself. Uncertainty about what the final game will look, sound, or play like is poison.
Write Exactly What You Need
This uncertainty about the shape of the finished product is also killer when it comes to writing code.
If you know exactly which systems you will need, you can write them.
If you think you might have to prototype a few different alternatives, then the instinct for a developer is going to be to write a general system that can be adapted to serve all the possibilities. This is a waste.
- Write your specific game's UI, not a general UI layout system.
- Write your game's rules, not a scripting interface to allow 'easy' modification of the rules.
- Write code that loads and saves your game's data, not a serialization system.
For many developers, used to working in situations where external requirements change frequently, this instict to develop systems that can 'cope' with arbitrary change is hard to overcome.
YAGNI. You Aren't Gonna Need It.
Keep It Simple
A lot of the most successful indie games are heavy on mechanics and light on writing - they use procedural generation, or dole their story out sparingly at gameplay milestones. They are more sandbox than rollercoaster.
Do Not Write an RPG
There is a reason that everyone tells you not to write an RPG as your first game. Writing an RPG is like taking on all of these jobs at once:
Novelist. Writing a novel takes months to just get the words on the page. Writing a good novel can take much longer than that. And CRPGs frequently have many times the word count of even very long novels.
Set Designer. RPGs take place across vast worlds with varied locations. If you're doing this solo, you need to place every pixel of every single one of those locations in the right place yourself.
Costume Designer. Movies employ entire costume departments to ensure that each character is wearing appropriate clothing. People make entire careers out of fashion design.
Game Mechanics Designer. Dungeons and Dragons 5e took years and hundreds of live playtests to tweak and get right. Creating a fun ruleset with just the right amount of options is yet another full-time job.
Director. All of the action of your game has to be framed on the screen, in shot of the camera. The emotional moments need appropriate musical underscoring. The characters need to express emotions.
Character Modeller, Environment Artist, Animator. Then the work of translating all the above design work into your game engine begins. Making concepts fit the engine's constraints is a skill in itself.
If you look at the concept work for an AAA game, there are people doing all of these disciplines and more. That's hundreds of people, and they aren't just lounging around in the office playing foosball.
It is impossible for one person to do the work of hundreds of people. You need to simplify.
A Dozen Choices is Enough
MMOs and modern AAA titles have trained us to think that games require hundreds or even thousands of skills, items, weapons, equipment, or other kinds of options to choose between.
But each new option you add exponentially increases the complexity of the game, as each adds new interactions with the existing choices. Each option requires artwork, a lore reason to exist, an appropriate place in the game at which to introduce it.
Many old games had just a few different units, a few different weapons, a few different enemies, or a few different skill branches. And yet they managed to reuse and recombine these elements to provide enough content for extensive campaign modes and storylines.
You just need to give the player something meaningful to do. If your game doesn't have that, it's not a game yet.
Stay in Peak Condition
Taking on a project like this is hard work. You will probably be working more hours than you would do in a full-time job.
You have to take care of yourself.
Get Out of the House
I have worked remotely before. I struggled with it. It had a big impact on my mental health. Even keeping set hours and having a dedicated 'work desk' didn't help very much.
You need to get out of the house. Go swimming in the morning. Go take your laptop and get a coffee. Hire a desk in a co-working space.
Something about the mental journey you take when you physically start the day and leave the house for work makes all the difference when it comes to both productivity and your mental state.
Being a solo developer can also be quite lonely. It's very easy to underestimate how important just having your coworkers around - even if you don't directly interact often - actually is. Try and maintain your friendships and your support network as you are working.
Hard Work Needs a Strong Body
In the last twelve weeks I have been seeing a personal trainer for the first time. It's made a big difference to my productivity:
- I've lost weight.
- I wake up earlier and get going quicker.
- I'm cooking more and eating more healthily.
- I'm spending a lot less money on food.
Solo development is hard work. You wouldn't run a marathon without training for it. Your mind and your body need to be in peak condition if you're going to achieve what you want.
Don't Waste (Too Much) Time on your Weak Points
There's a myth about the auteur, a da Vinci-like character with a vision for every aspect of a project and a master of every skill.
To make a game solo does require programming, art, and music. So it seems that you should be trying to increase your skill in your weaker areas. If you're primarily an artist, you might take some coding courses. If you're a programmer, you might improve your art skills with life-drawing classes.
Some of that can be useful. You do need some skill in each area if you're doing everything yourself. But too much of this kind of self-improvement is a waste of time when it comes to the ultimate goal of making a game.
You'll certainly improve yourself. But you cannot match twenty years of art experience with a few weeks of study. You might end up basically re-training for a career path you'll never take.
Design a game that plays to your strengths. Make the game you are capable of making now, not the ideal game an ideal you would make.
'Going indie' can be an expensive learning experience.
This career break has cost me a lot of money, and although I can say I am better for it in a hundred ways - I've learned new skills, built technology I'm proud of, become fitter, and improved my mental health - I haven't managed to write a game, and I haven't made a single cent.
Having spent my budget, I am now weighing up my options. It might be that, having learned these lessons, I give it another few months with a new project. Or I might be job-hunting soon!
If you are considering trying this, I hope reading about my experience can help you use your time effectively.