The first game on unity or what took me six months
Hi, Habr. I am a developer of games on Unity (I sounded like something low) and I would like to tell you about the development stages of my first game. The story starts 2 years ago when I decided to try to make games. He started with the guides on YouTube. After creating a couple of examples, applications and mini-games, I decided to create a full-fledged game. Naturally, I represented the real epic, the plot and the real 10 out of 10. My ambitions were endless, but I did not know what was waiting for me to come. The very first question I asked myself was the choice of the publishing platform. I chose the platform at prices or by the method of elimination: on Steam $ 100 per game, on iOS $ 100 per year, the choice fell on Android. I paid $ 25 on Google Play, got an account and started development.
I decided to rely on the most powerful and simple side of the engine. The best thing for this was 2D physics, on the basis of which I decided to build a game.
But what will it be, what is the concept? I decided to follow the inspiration on YouTube and found a video about how to generate levels from pixel images. I wanted the same. ')
What I rewrote
Rewrote the system, draw the level and test the generation. I thought: "What next?". And suddenly - an insight. The idea came instantly and the puzzle was put together. Why should the player not be a ball, and manage to give him gravity? “Great idea” - I thought and started creating gameplay.
After me there was a problem: how the player will control the red ball. For all the development time, I have only 4 options:
1) Radius
The player would touch the screen, putting a point of reference, with respect to further movement of the finger gravity changed. The strength depended on the distance of the point of reference, and the direction of the angle between them.
2) Fixed radius
Same as Radius, only the reference point would be strictly in the center of the screen.
3) Two-way (pressing)
When you click on the left or right side of the screen, you could turn the "gravity" along with the camera a certain number of degrees to the left or right, respectively.
4) Bilateral (clamping)
The same principle as that of the Dvustronniy (pressing), only it was necessary to clamp and the rotation took place at a fixed speed.
I immediately dismissed 1 and 2 because of their complexity of understanding and unintuitive control. For the mobile game did not fit. But, unfortunately, 4 came to my mind at the stage of post-production, I had to take 3. To be honest, a very bad decision (seriously, do not be so). This management had two catastrophic shortcomings.
The first was in its sharpness, tastiness. When you rotate the image sharply and very unpleasantly changed. I gave a test, said that because of the management did not understand where to go and how to play, and half of the "testers" began to rock.
The second problem is purely technical: when turning, the game would jerk from 0.1 to 1-2 seconds, since it was not the camera with gravity that rotated, but the WHOLE LEVEL. And the levels sometimes reached 10,000 objects. I think it is not necessary to explain how the device reacted to a similar focus with trigonometry. I noticed this in the middle of development, but I did not dare to correct, because I could not change the direction of 2d gravity (I know, I was stupid) and I was just lazy.
And now it would have been impossible to fix it so simply, without alarming the forums and documentation. When I wanted to at least try to fix the bug, I did not, because it was impossible to change the gameplay. Alteration of management under type 4 would spoil the ready 80% of content, sharpened under type 3 of management.
Because of this, one problem has sharply worsened, now even I have started to rock. Apparently I tried to glory, the truth is not what I wanted. “Well, okay,” I thought, and continued production further.
I started programming asset puzzles, and it took me a long time. For 2 months I spent on all sorts of objects and scripts for their interaction. The levels were simple bit-maps textures with distinct pixels, the color of which indicated its block.
Designations
White - Background block Black - Simple block Red - Player Blue - Finish Shades of Yellow - Teleport Dark Red - Red Ball Green - Green Ball Just Yellow - Star Light shade of gray - Rectangle blocks Dark shade of gray - Fake blocks The shade of yellow is darker - Fake teleports Yellow Medium Darkness - Fake Stars Dark Blue - Fake Finish (Too much falsehood)
Basically, all assets contacted via OnTriggerEnter2D and tags. Even now I can not guess what took me about a month. The menu took a second month in part due to the fact that I did not use cycles, and I regulated the activity of all 500 objects through Awake, because of this I produced more than 2500 lines of code.
“Your game is already tired, make another one,” friends said, but I continued anyway. I have planned 100 levels. It took 4 months to create them. I created them in parallel with the technical part. As a result, my plan for “forcing to think” levels turned out to be almost nothing. I can name such levels on the strength of pieces 10 to 15, the rest were complex to others. They were complicated by the presence of narrow corridors, the complexity of orientation in space, absolutely mazahistkimi design solutions and, of course, mines with labyrinths. But it was not me who was responsible for their creation. My "employees" created in general about 60% of the game content.
Due to the fact that we designed the levels according to the rules, the levels came out passable in theory, but in practice the theory was not tested. Having made all the levels, I understood what could happen to my game, namely, absolute dissonance from lagging to impassable levels, because of which it would not have been possible to complete the game. So it remains.
I also did not forget about the schedule, but I worked on it for 2 hours, then I didn’t touch it anymore. Since I’ve the krivoruksy and the best that I’ve painted in Photoshop are large circles instead of eyes, I decided that the player controls the ball with red and took the textures from the first texture-pack on minecraft (he did the best he could).
There are clues in the game, but they were made very quickly and, consequently, were of poor quality. At the beginning of the level, a text appears with my comment on the type “Difficult?”, Or “Think!”.
I programmed the game on Unity 2017.1. Then it was already 2018, and I could download the version of Unity 2018.2, but did not. After all, I just did not want to suffer with the transfer of the game and possible bugs. When the time came for the final compilation, I could not do it. The reason for this is the lack of Android sdk. I spent a week searching, experimented with a combination of new versions of the engine (only 2017), changing their settings and countless sdk (300 GB for 24 different identical sdk). As a result, I stopped at a third-party program for installing sdk, a version of the engine 2017.3 and the type of sentence Intent. How happy I was when I compiled the game.
It took me 3 days to publish it.
The difficulty was in filling out the questionnaire and the need to fill out the description in 18 languages ​​(not too interesting). I localized all this through google translate. The creation of the cover and screenshots took not much time.
Cover and screenshots
Despite the complete absence of PR (except personal recommendation), the game as a whole has stable values. Each month, an average of 4-7 installations.
In the first month I drove the traffic, telling not indifferent.
In the next six months, the increase was noticeable. Peak installations occurred in late summer and autumn.
Even now, a year after the release, the installations are stable.
Initially, the main motivation for the development was self-development, I did not follow any earnings goals. Partly because of this, my author's project just disappeared into oblivion, for the rest because of all the above minus. But the main thing - it's just boring to play. After all, if I introduced advertising, I would be more responsible for PR, the quality of the final product and its presentability. And so - this is entertainment.
But, in principle, I am satisfied with my game. Its size with good levels makes it clear that for the first game, mine is not so bad. From all the development time, I learned a lot about programming and marketing, about game development and related things, but the very thing that I understood was where I got to, what industry I started to go to.
By the way, I am just developing a sequel, maybe what happens ...