This is definitely not a success story, but an example of how to fail a project, despite on good enough programming skills and a big desire to create games. This topic will be useful for people want to be indie-game developers or already started to create The Big Dream Project.
As almost every software developer, my passion for programming started when I opened the door to beautiful world of videogames. When I was a schoolboy, I was spell-bounded by all magic happening in buzzing box under my table. At first you just enjoy the game, but after a while you want to investigate how it works. And I started to make first step to puzzle out this mystical world.
In the early 2000s, there were no game development courses yet, there were no mentors, and only a select few had the Internet (Especially in Kazakhstan, where I was born). My acquaintance with game development began with WarCraft, which was released in 2002. After going through the campaign and playing multiplayer with friends (we had a local network between houses), I found the "World Editor" icon in the game files. It turned out to be a map editor, and most importantly, it has its own programming language JASS, with which it is possible to do almost anything, limited only by the developer's imagination. This is how the first Dota was made by the way.
Kazakhstan lagged behind the world in the field of IT for several years. I returned to the software development industry in my second or third year of studying in University, it was a time of active growth of Internet speed, various startups appeared. Having a good basic understanding of how to write code, but not having an understanding of how to make a "Product", I realized that I needed a mentor. And I was very lucky, I met a person who took me under his wing. I have mastered Ruby and successfully burst into the world of software development. Several years passed. Ultimately, there was a desire to plunge into the world of computer games again, excellent tools appeared, such as Unity, Unreal Engine, Godot. In addition, I was motivated by the successful case of my friends, Katata Games, a family development studio, who released the "Top Run" mobile game, which reached 100,000 downloads in the AppStore and Play Market.
And I started to create my first game. From previous web programming experience, I knew that you can't grasp the immensity, that you need to start small. As a result, the idea was born to create a mobile game about a drill, on which you need to reach the core of the planet. With each next attempt, the drill can be improved, increasing your piloting experience and gradually reaching ever greater depths. My main goal was to create a product, albeit small, albeit simple, but complete. As a result, I fell into a trap. I have never played mobile games, I have always been interested in the PC with its hardcore and multifaceted games. And I decided that since I know the PC games market well, it won't be difficult for me to make a game specifically for PC.
I have connected different ideas into one blanket. As a result, the idea of a game was born, which I called Shoot.Pray.Run., A top-down action-rpg about a war monk who descends into hell to defeat the main evil, simultaneously destroying all enemies along the way. The "Priest" movie made a big impression on me with its style, so I took it as a basis. I took the system of dungeons from Diablo 1, where you have to constantly go lower and lower into hell, and game mechanics were taken from "Enter the Gungeon". Everything was simple in my head, I improved skills in pixel art, also found a good artist for characters.
All sketches were made by me to simplify the explanation of tasks to the artist (e.g. main character, skeleton and banshee):
Unity conquered me, I quickly figured it out and it seemed that with it I would do almost any project (Dunning-Kruger Effect). The code flowed like a river, and the game started to take it form. And then I made a mistake, I decided to leave my main job to male the game from morning to evening, every day. If you do not have experience in game development, then by no means do this, there are too many pitfalls in this industry. As soon as I started working on game full-time, the thought came to me that I could do more than I had planned. And here I again fell into the trap of a large project, it was not small anyway, and I began to wind up a lot of different mechanics there.
First I made volumetric light, then I came to 3D with 2D imitation. I wanted to keep the pixel art, but give it a depth. This required rewriting the camera so that it did not distort the textures of the walls and floor at an angle of 45%, but left them pixel-perfect drawn. I dived into shaders, started expanding the game with these beauties, created water, steam, heat effects, etc. The cherry on top is the object destructibility system. I wanted everything in the game to be destroyable. This not only made the code and art more complicated, but would also lead to game design problems in the future. The result was a huge monster, the project grew larger and larger, I had already spent several months, but it was not yet possible to play the game. It was just a collection of all sorts of technical wow-effects, but there was no gameplay itself.
Depression knocked to my door and I started to understand that I was trying to bite off too large a piece, but I did not stop. Despite the awareness of the problem, I walked like a tank into the abyss. Continued to complicate minor things, not paying attention to the gameplay itself. Added gender selection so that you can play as a woman. We prepared various cool arts for twitter and reddit, but there was still no game. In total, I have already spent about five months, but I did not even have the first level.
My financial reserve provided me for a year of work, but I understood that at this pace I would be making the game for a couple of years, no less (and this was an optimistic forecast). The development did not bring any pleasure or satisfaction any more. Only the fear grew that I would be left with nothing. I had the will to stop developing the game and return to my usual job as a web programmer.
In my free time, I continue to work with Unity, make some small games and mechanics. I am improving my skills in various aspects of game development: game design, programming, art. I may return to serious game development in the distant future, but I will definitely try not to make the same mistakes again.
Lessons I learned:
- Do not quit your main job if there is no finished game project yet
- Focus on game core. The game should be interesting even if it is assembled from squares and other primitives. Complexity and beauty can always be added later.
- Create a fully working product, albeit small, albeit crooked and oblique. The ability to complete a project is the most useful thing in game development, and in any other industry.