You can work on a game for years, release it, and then find out that no one will want to play it. If you took your big idea and strip it to the core and release it like that as a game you would know it wasn’t as fun as you think it was. You can prevent making your games too big by keeping a short deadline and the scope small.
Keep it small
If you have an idea to make open-world RPGs or the next GTA then shelf those ideas and think smaller and simpler ideas. Smaller games are faster done which in return minimize the risk. By consistently releasing games you keep motivated instead of burning out on one big project. Every time you release a new game it gives you a sense of accomplishment.
I have a lot of unfinished prototypes sitting on my computer and some of them I spend many hours on. Some prototypes are concepts that are too big in scope to ever finish in a reasonable time frame. One prototype for example is a roguelike but to complete this game I would need more than 1000 different images for the objects in the game.
At the beginning of a project, you are excited and motivated but after a while, you get bored by staring at the same art and testing your game over and over again. Even if you stick to your plan, new ideas keep flowing into your mind, there will be a time when you are too weak to resist starting a new project.
I hear a lot from other devs that they lack ideas. The best thing you can do is train your brain. Organize a mini-game by yourself, open your favorite game dev environment, and try to come up with something fun in a couple of hours. You can think of simple one-button games you play on your phone.
If you really can’t think of something just create an old classic like pong and add something unique to it. Consider joining a game jam like Ludum Dare, visit itch.io to see if there are jams that you can join. or join a game jam in real life like the yearly Global Game Jam.
Don’t reinvent the wheel
You don’t have to know everything, don’t spend time reading the whole engine documentation. Don’t feel ashamed if you use other people’s code from stack overflow. Before you start programming check if it’s already available on the asset store and use that to build upon.
If you have a great concept in mind, search the internet if something already exists, play it, and learn from it. Even your game idea doesn’t have to be new. Think of one mechanic in another game that you find fun and make a whole game around it.
Reuse past projects
See what code you are going to use in the future. For example, all games have a save and load feature so make this system in a way that you reuse it easily in your next project. Don’t make all your scripts dependent on each other so you can easily take the parts out you need. Every game uses a load and save manager so try to make a system you can use again and again for every new game you make.
Writing design documents is a waste of time. The only thing you need to write down is a to-do list. Use Trello and break down your project in small achievable tasks. Every time you complete a task you feel much better. Instead of writing about your game start building your prototype so you know if your idea is even fun to play, to begin with.
Don’t wait for other team members to begin, always be the one who takes the first step. If you are not an artist don’t wait for him or her to send you the art assets. As a programmer without an artist, start using place holders like the one from Kenny or search through Open Game art.
After releasing your first game don’t expect a lot of hype, nobody will care because nobody knows you yet. Only some will have success with their first success. If you release a lot of games you increase your chance of making a hit. Not everyone is lucky as Dong Nguyen with his Flappy Bird. Before Rovio released their hit game Angry Birds they made 51 games, never give up, persistence is key.
Thanks for reading and please follow my work on Steam, Newgrounds and Twitter.