1. You haven’t really started making a game.
You’ve been working on your game for over six months or maybe even a year or more, but… when someone asks to see the game you have nothing to show. All of your work so far has been design or pre-production. If you’re more serious about your project you might have one or more lengthy documents detailing various aspects of your game, and maybe some concept art.
Design is important. It can be valuable to do some planning in pre-production. It’s never a bad thing to have an idea of how you’re going to approach the project before you jump on in and start the hard work of creating it. You’re probably offended — and perhaps even rightfully so — when people suggest that all of your efforts are pointless… but until you can take the difficult step from idea to implementation, you’ll never have a great come-back to respond to those people.
Successful indie developers actually work on implementing their games. They don’t spend forever on design and so-called pre-production, and it’s common that they’ll take an iterative approach where the design evolves during development and testing, invalidating lengthy up-front design in the process. Maybe it’s unfair of people to suggest that all your design work is pointless, but until you actually have a game to show you’ll never really convince them otherwise.
Don’t get stuck in an endless design cycle. Start to actually create your game and have something to show. You’ll likely find that you simply don’t need to spend months on end designing up-front, and you’ll be able to swiftly respond to the nay-sayers with a rather hard-to-dispute “yeah, well I’ve published a game — what have you done?”
2. You think it matters that you’re using “real” languages and “real” tools.
You’re serious about this, and you don’t want to play around with toys or use languages and software designed for kids. You have your mind set on using a real language — perhaps C or C++ — like professional programmers at AAA studios do. You would never waste your time using silly tools like Game Maker or writing code in a language like C# or Python.
Successful indie developers aren’t interested in long lists of reasons that simpler tools and languages aren’t suitable for serious game creation, and they don’t get caught up with ideas about using the same tools as AAA developers. Why not? Because they’re too busy making real games with whatever “silly” tools best meet their needs. Legend of Fae and Serious Sam: The Random Encounter are both Game Maker titles, and both are for sale via Steam. Saira was made with multimedia fusion, and is also for sale via Steam. The Binding of Isaac is a Flash game, also for sale via Steam. Terraria is a commercially available indie game written with C# and XNA. Minecraft was written in Java. The list goes on…
If you’re happy using C++ and writing lower-level code then all power to you, but don’t feel you must take that path because AAA developers do. Plenty of successful indie developers use simpler tools, so if there is a simpler and faster way that is suitable for creating your next game you should absolutely take advantage! Next time you see a language/technology-snob belittle use of Game Maker (or similar tools) you might think to ask how many games they’ve actually released, and point out some of the examples above; you’ll likely find them stumped and unable or unwilling to continue defending their point.
3. You aren’t making indie games.
Your game is going to be the next big hit. It will have fantastic next-gen graphics like the latest Call of Duty, wonderful physics like HalfLife 2, and customisable characters like World of Warcraft. The problem is that these games were created by large teams of skilled developers and to have huge budgets running into millions of dollars.
Successful indie developers usually concentrate on smaller and more easily achievable games. They often try to avoid having to spend excessive amounts of time and money on content-creation by focussing on simple, reusable mechanics, or via procedural generation and the use of player-created content.
4. You haven’t released your game.
You didn’t make any of the mistakes above. You designed a fun indie game of reasonable size and scope, and perhaps even released a few prototypes or demos along the way. Maybe you’ve gathered a small community of fans who are eagerly awaiting the publishing of your title. It’s all very exciting, and you’re happy with the work you’ve done…
…but you just have to add one more feature before release. You’ve had a brilliant new idea that will make the game even better and it simply must be added. Perhaps this isn’t the first “one more feature” you’ve added, but it will be worth it in the end.
At some point, you need to stop. Successful indie developers actually release one or more games, and at some point you simply have to say enough is enough and stop adding new features. This can be difficult to do, but feature creep can stretch out development forever, and you’ll never be able to count yourself as a successful developer if you don’t declare your game good enough and release it. Perhaps you could add your “one more feature” as an expansion (downloadable content is all the rage these days!) or sequel, or maybe it could go into an entirely new game. It’s important to polish your game and create a fun and complete experience, but there’s no point in endlessly adding new features to a game that is never actually played.
Why aren’t you a successful indie developer? Alternatively, what did you change in order to become a successful developer?