Mayhem Above has been my first released game, it is a game about bringing space to life using Music Impulses to get score. I have been developing it for 9 months and I would like to share my do's and don'ts.
I have been programming for 12 years now, most of my work has revolved around games and game engines. What I am going to talk about is about my mistakes making Mayhem Above from scratch, including the engine. This points may not work for you, but I am sure that realizing this aspects will improve my next projects. I hope you will find them useful.
About the game
Mayhem Above is a Score Music game in which you are an Space Speaker. You use the music from your computer to activate planets and make them play your music. The game analyzes the music and detects impulses which give your Space Speaker a turbo burst. Music moves you through space.
I am neither encouraging nor discouraging working alone. There are clearly some advantages (no communication errors and you do what you want) and disadvantages (you can't do much without burn outs). I just wanted to have a hard time and learn about every single aspect about making a game, including art (simple one), coding, gameplay, sound, music, business, marketing and others.
Mistakes and regrets
No planning. The first and the most huge mistake I have made with this game is not planning ahead, I knew I wanted to make a game, I did not know about what it was going to be about and I started coding right away. This led to a game that was different every week. Which has been hard to maintain and evolve. I think that keeping a task list and milestones will greatly improve working performance.
"Failure to plan is planning for failure" - Benjamin Franklin
Being shy. The worst marketing strategy. I am quite introvert. I did not even have any social account (besides LinkedIn) and it hurt the visibility of the project, I believe I could have reached many more people if I started announcing it before. I have seen some games that have been a hit just because the visibility. Now, I don't know how to make that but I sure know how it is not done. Not even my family knows what kind of game am I making. (I haven't fixed this problem yet, I don't really have any tips for that, just that it must be fixed). This also led to poor testing, since I have problems to be heard of.
Venn diagram of shyness
Overscope. You have an idea. I don't know what idea it is, but if you are a solo developer, it is probably too big of an idea. Developing and releasing a game is more than just the game. Coding, art, sound, music, marketing, business... There is a lot to work on, and if your game is not simple you are probably gonna need help. So keep it small from the beginning. At first my game was a RTS, luckily I realized soon enough that I did not have the time and resources to make it happen. Even after I scoped down to the current idea, I feel like it is still over scoped in many aspects and I could not polish everything I should had. Keep it small and simple. This way you ensure you won't burn out and you could polish it more. I believe it is better to go small but with better quality. Again, this applies if you are going solo, if you have the resources, go for it!
My kind of overscoping
Custom engine. Now, this is both a success and a failure. I am a programmer, I won't feel fulfilled by using a Third Party Engine. I have nothing against them, they are just not for me. That said, this game would have been developed faster and with greater quality using any Third Party Engine. I believe the main reason for that is the work pipeline, usually the Third Party Game Engines tools have great tools that allow to iterate very fast. I will explain in the next section why I will keep using my own engines, but I know this is downside for the game in many aspects. Also, expect many fatal failures.
The bad part of custom engines
Iteration and tools. There has been a point where I needed to add some new UI to the game. Now, I am not using an UI editor, I am placing the elements by hand, using coordinates and imagination. Big, big mistake. I think a reasonable amount of time must be spent in developing tools to make iteration time faster. For every part, system or feature of the game, a fast pipeline is key.
A sample pipeline
Making it about music. Or to put it better, making it about something you like, it can be music, it can be anything. At the beginning I didn't know what angle to choose, when I chose it to be about music, I got huge wave of motivation which boosted my productivity. Choose a genre you like.
Music is key
Keeping it short-ish. I over scoped, but I still managed to keep it a small game, this helped reduce the burn outs. I don't know about you, but it seems I will have burn outs in every single project (normally at the end), at least keeping the game short will help that. I will try to reduce the next project development time down to 3 months!
Keep it short and try to polish
Custom engine. As I mentioned before, this is a double edge razor. The positive side is that I got control about almost everything, which I like in order to tweak performance. Also, I learned a lot, I've made game engines in previous jobs, but usually around specific systems. Now I got to make systems for everything, including gameplay, audio (OpenAl but then I switched to FMOD because I did not want to decode MP3 myself), physics, graphics (OpenGL), tools... I strongly recommend making your own engine (if you have time).
The good part of custom engines
Day scheduling. Not talking about planning, but timetables. Keeping an organized day schedule has saved me from going completely insane. Making your own game+engine can be a tiring task, and you also need to be a person (cooking, seeing friends, hobbies). A day schedule may save your mental life. Mine was 8.30-15.00 and 18.00-20.00. I also crunched some weekends but because the shake of it.
Follow a timetable
Finishing it. This may sound silly. But at least I have a problem finishing projects, the last 10%. It has been a huge exercise (mental and physical) to finish it and I think it will ease up finishing the next game. (Because yes, I am planning on doing it again, whether this fails or succeeds).
Worst case scenario: You lose money/time but you made a game, you learned a lot and had a good time.
Best case scenario: You get some money and you can keep making games, learning and having a good times.
Make your game and get it out there! What's the worst that may happen? Better not answer this question with complete honesty. I think it has been an enriching experience and I will keep doing it (as long as I can to survive, otherwise it will be a hobby). You may have noticed I did not talk about business nor marketing in depth. This is because the game is yet to be released and I do not know yet what I did wrong.
Good luck, Have fun
The adventure: http://www.spinalgames.com/devlog/
The blue bird: https://twitter.com/SpinalGames