The story of the first Unity game - from idea to release
Good day! I am an indie developer (recently), 2 years ago, as a fireman, it occurred to me to create my own Android game. From experience there was only the creation of maps for the Gold Source and Source game engines (the good old ones were built on them: Counter-Strike, Half-Life, and much more), taking my will into my fist, I decided that I could handle it and started studying the Google Internet search engine.
I hope this article will help those who really want, but did not dare to try their hand at developing mobile games. In the article I will give a lot of links that in one way or another helped me develop the game, without having any experience and knowledge in this area.
Caution, under the cut gif image.
Being very far from the IT sphere, I realized strictly for myself that the first thing is to learn the basics of programming in order to further understand if I can at least something or not. I decided to buy a book on programming. The selection criterion was a chewed theory with a large number of examples of its application. So, the first book that C ++ opened for me was: “Object-Oriented Programming in C ++, R. Lafore”. Personally, I liked the presence of a weighty theory in the book that explains many previously incomprehensible terms to me, but after I noticed that many experienced people were categorically against this book as a starting point in the study of programming. One way or another, having studied the entire book in a month, simultaneously completing some tasks at the end of each chapter, I caught myself thinking that everything is pretty good and it's time to move on.
The next item was the choice of the engine on which I could confidently begin development. Unity has undoubtedly chosen, thanks to the large community, high popularity, the abundance of a huge number of educational articles - in my opinion, this is the best that can be found on the market, especially for the indie developer.
I had to buy another book on programming:“C # Handbook, D. Albahari, B. Albahari” due to the fact that in Unity the main language is C #. Fortunately, knowledge of the basics of C ++ helped to easily curb the basics of C # and feel free to start learning directly from Unity.
I decided for myself that the best impetus for creating the first game would be an attempt to do something similar to a ready-made project, rather than trying to look out for a ton of individual lessons on how to do this. Luckily for me, I stumbled uponUnity's Survival Shooter tutorial , which walks you through the steps to create a Top Down shooter. This was exactly what I wanted to create. Having found the lessons re-voiced in Russian (unfortunately, the author has removed the lessons for an unknown reason), I began to make my first game step by step.
The first scene, launched on a mobile device, then there was no limit to joy, but now this screenshot causes only emotion.
Having gathered my Survival Shooter for lessons on YouTube, the question arose about creating my own content, namely the question arose of modeling. Immediately decided for myself - no pirated 3d Studio Max, as a result of which I immediately stumbled upon Blender . I studied the basics of the 3D editor for this video course . The choice fell on video courses, as they made it possible to start practicing very quickly, which is quite difficult to achieve by starting with a book (but I certainly admit that books are better). Fortunately, there was some experience in creating maps for Counter-Strike, Half-Life, which made it easy to start modeling in a couple of days.
Now, fully armed with tools, I began to develop the game. In fact, at first I only did that I sent requests "how to do this or that thing in Unity", so, over time, I began to acquire useful knowledge.
I do not want to be like others
Zombie shooters now have darkness. I didn’t want to be some kind of clone. The question arose of what can be done that which others do not. It was decided to add to the game the ability to stop time. So, the player could stop time, shoot zombies, and as if nothing had happened to continue his movement.
The problem was that I came up with all this on the go and immediately took up the implementation, skipping the planning stage. Do not make my mistakes, before you start developing the game, think through everything to the smallest detail in advance, do not make the game at random. My problem was the lack of any plan, specs, or some highlighted stages of development. Everything was done in real time, came up with the idea that I wanted to do something and immediately tried to implement it, naively believing that I had already taken everything into account in my thoughts. Such a development methodology, or rather its complete absence, led to the fact that the game had to be redone many times, discard old ideas, add new features to something that is not particularly adapted for improvement (similar to Agilebut no, it was a “lack of experience"). As a result, the game was developed for almost a year and a half.
Crutches, they are crutches
Due to the complete lack of programming skills, the code turned out to be very "crutch". Now I’m just ashamed, looking at my localization of the text, which was done through the if -> else statement, or other things that cannot be looked at without Facepalm. It was very difficult to make any changes because there were a lot of dependencies in the code, in which changing one line could lead to breaking many other scripts. Try to describe scripts in such a way that there are as few dependencies between them as possible. It will be very useful to familiarize yourself with this article on the hub, which describes the various ways scripts interact in Unity.
To the question of testing, I approached not so proper level. The game was released without prior beta testing. I don’t want to say that a lot of bugs went into the final build, by no means, the problem was completely different - after the release, a lot of comments rained down that the game was corny complex. There were a lot of videos on YouTube, in which people simply could not pass the first level. It seemed to me that they were playing with the big toes, but here it was personally my fault. Testing the product throughout the entire development period, I did not notice that I learned to pass the levels almost with my eyes closed, as a result of which I constantly threw up complications so that the game did not seem too easy. In fact, this very negatively affected the first impression of the game and, as a result, its subsequent failure. Be sure to beta test before release. At the moment, it’s very easy to do closed or open beta testing on Google Play. Even corny before the release, let the person play for a while in order to avoid problems with the playability and complexity of the product in the future. I strictly decided for myself that the game at the initial stage should be very easy so as not to scare away the players.
Choosing the wrong monetization: free stripped down + full paid, I ruined the game, consider it at the root. The reason for choosing such an obsolete ligament was the lack of experience, because I didn’t know how to integrate advertising into a product, how to implement in-game purchases, and as a result, I decided to take the path of least resistance, which did not require any technical knowledge from me. For myself, I firmly decided that at the moment this is the worst, where to start. I think the best option: free with in-game purchases and motivated advertising, but here again, the balance between annoying advertising and the inability to pass levels without investments is very important.
An important role is played by sound. I bought most of the sounds and music for the game on audiomicro.com , which I now regret a little because of the high cost. At the moment, I would recommend the following resources:
- diforb.com . Great for voicing the game menu. Having chosen the necessary set, you can easily create sounds of pressing, turning over and applying various options. You can use it for free, all that is required of you is to specify a link to a resource somewhere in the game.
- freesfx.co.uk. A good free resource of various sounds. Thanks to a convenient search, you can easily find the sounds of shots, reloads and much more. As with the previous one, you can use it for free, but do not forget to specify a link to the resource in the game.
- melodyloops.com . A very good music resource. Paid, but compared to others, the tracks here are very cheap. I was able to purchase 25 songs for $ 130, getting a license for an unlimited number of copies. A very convenient search by selecting your favorite track, you can filter a list of similar ones, which will help you very quickly find the songs you need.
Getting to the final stage of development, the question arose in advertising the game. I had no resources for paid promotion, so the choice fell on purely free methods. Fortunately, there is a lot of information about this, I will give some links to articles from Habr that helped me in solving this issue: one , two . I mainly wrote on various forums devoted to games for Android, which ultimately yielded the following numbers:
Free version of the game for the period June 2016 - January 2017
- By external links: 1,353 views / 478 installations
- Play Market: 9,674 views / 1,457 installations
- Total: 11,065 views / 2,101 installations
Paid version of the game forperiod June 2016 - January 2017
- By external links: 1,919 views / 15 installations
- Play Market: 46,432 views / 214 installations
- Total: 48,457 views / 246 installations
As you can see, the paid version of the game has a very large number of views, this is due with the fact that getting into the news of paid applications is much easier than free ones, 5-10 purchases are enough and the game will already occupy hundredths, which gives an influx of views on Google Play. It was hoped that users would switch from the page of the paid version of the game to the free one in order to preliminarily check what the game was like, but, unfortunately, as we can see from statistics, the views of the free version are much less than the paid ones.
The release turned out to be deplorable, a game quite playable for me, turned out to be unrealistically difficult for others. Due to the ignoring of beta testing on real players, it was not very sweet after the release. The control system has been completely redone. Initially, the player automatically fired when he looked at the enemy, which completely killed the feeling of shooting. Players sometimes did not understand how to shoot here ?! Therefore, it was decided to completely redo the management in a new way. In the new version, automatic shooting was replaced by manual shooting, which greatly embellished the gameplay.
As I said, complexity was another stone. I had to redo a huge piece of the game, introducing light, medium and heavy difficulty levels to please as many players as possible.
In the end - I missed my chance to more or less promote in the first 30 days when the game was in the "New". People simply bought and returned payments due to unplayability and a high level of complexity. Only after many updates, the number of returns fell sharply, but it was too late, on the 31st day the game disappeared from the new products and as a result, the number of views, as well as the horse race itself, crashed down. But, most importantly - I was able to gain invaluable experience, going from the stage of ideas and ending this business with a harsh release, which undoubtedly pleases. Now, having all this experience, I’m more confidently developing the second game, which I plan to write about the results after the release. Thank you and good luck in your endeavors!