The first game on unity or what it took me six months

Hi, Habr. I am a game developer on Unity (it sounded low) and would like to talk about the stages of development of my first game. The story originates 2 years ago when I decided to try to make games. Started with guides on YouTube. After, having created a couple of examples, applications and mini-games, I decided to create a full-fledged game. Naturally, I represented a real epic, plot and real 10 out of 10. My ambitions were unlimited, but I did not know what lay ahead of me.

The very first question I asked myself was choosing a publishing platform. I made the choice of the platform at prices or by an exception method: 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 development began.

I decided to rely on the most powerful and simplest aspects of the engine. 2D physics was best suited for this, based on it I decided to build a game.

But what will it be, what is the concept? I decided to go for inspiration on YouTube and found a video on how to make level generation from pixel pictures. I wanted the same.


What I rewrote

rewrote the system, drew a level and tested the generation. I thought: “What next?”. And then - an insight. The idea came instantly and the puzzle came together. Why should the player not be a ball, but manage to give it gravity? “Great idea,” I thought, and started to create gameplay.

After I faced the task: how the player will control the red ball. For the whole time of development, I came up with options for only 4:

1) Radius

Player would touch the screen, setting a reference point, with respect to the further movement of the finger, gravity changed. The force depended on the distance of the reference point, and the direction on 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" with the camera a certain number of degrees left or right, respectively.

4) Two-sided (clamping)

The same principle as the Two-sided (pressing), it was only necessary to clamp and rotation occurred at a fixed speed.

I immediately dismissed 1 and 2 due to their difficulty in understanding and unintuitive control. It was not suitable for a mobile game. But, unfortunately, 4 occurred to me at the post-production stage, I had to take 3. Frankly, a very bad decision (seriously, don’t need to). This department had two catastrophic flaws.

  1. The first was its sharpness, twitching. When turning, the image changed dramatically and very unpleasantly. I let them test, they said that because of the management they didn’t understand where to go and how to play, and half of the “testers” started to rocking.
  2. The second problem is purely technical: when turning, the game played out from 0.1 to 1-2 seconds, since it was not the camera with gravity that was rotating, but the WHOLE LEVEL. And the levels sometimes reached 10,000 objects. I think it’s not worth explaining 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 it, because I did not know how to change the direction of 2d gravity (I know, I was stupid) and I was just lazy.



Yes, and now it would not have been possible to fix it so simply without stirring 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 control for type 4 would spoil the finished 80% of the content, sharpened for type 3 control.

Also, because of this, 1 problem sharply worsened, and now even I have started to get sick. Apparently I tried my best, the truth is not what I wanted. “Oh well,” I thought, and continued on.

I started programming puzzle assets, and it took me a lot of time. I spent the whole 2 months on various kinds of objects and scripts for their interaction. The levels were simple bit-map 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
Shade of yellow more dark - Fake teleporters
Hue of medium yellow - Fake stars
Dark blue - Fake finish
( Too many fakes )







Basically, all assets contacted via OnTriggerEnter2D and tags. Even now I can’t guess what it took me about a month. The menu took the second month from the part due to the fact that I did not use cycles, and the activity of all 500 objects was regulated through Awake, because of this I produced more than 2500 lines of code.


“Your game is already tired, do another,” 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 the levels of "thinking" turned out almost nothing. I can name such levels on the strength of pieces 10 - 15, the rest were difficult for others. They were complicated by the presence of narrow corridors, the difficulty of orientation in space, absolutely masochistic design solutions and, of course, mines with labyrinths. But it was not me who was responsible for their creation. My “hired workers” created a total of about 60% of the game’s content.

Due to the fact that we designed the levels according to the rules, the levels turned out to be passable in theory, but in practice the theory was not tested. Having done all the levels, I understood what could happen to my game, namely the absolute dissonance from lagging to impassable levels, because of which it would not be possible to complete the game. So it remains.

Also, I did not forget about the schedule, but I worked on it for 2 hours, then did not touch it at all anymore. Since I'm crooked and the best that I painted in Photoshop is big circles instead of eyes, I decided that let the player control the ball in red, and take the textures from the first texture pack that came across minecraft (I hacked as I could).

There are clues in the game, but they were made very quickly, and consequently of poor quality. At the beginning of the level, a text appears with my commentary of the type “Difficult?”, Or “Think!”.

I programmed the game on Unity 2017.1. Then it was already 2018, and I could download Unity version 2018.2, but I didn’t. 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 this. The reason for this is the lack of Android sdk. I spent a week searching, experimenting with a combination of new versions of the engine (only in 2017), changing their settings and countless huge sdk (300 GB for 24 different identical sdk). As a result, I settled on a third-party sdk installation program, the version of the engine 2017.3 and the type of proposal Intent. How happy I was when I compiled the game.

It took me 3 days to publish it.

The difficulty was filling out the questionnaire and the need to fill out a description in 18 languages ​​(not too interesting lesson). I localized all this through google translate. It took not so much time to create the cover and screenshots.

Cover and screenshots






Despite the complete absence of public relations (except for personal recommendations), the game has generally stable values. Each month an average of 4-7 installations.

In the first month I adjusted traffic, telling not indifferent.


Over 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 pursue any income goals. Partly because of this, my author’s project simply disappeared into oblivion, otherwise because of all of the above minus. But the main thing is that it’s just boring to play it. After all, if I had introduced advertising, I would have been more responsible for PR, the quality of the final product and its presentability. And so - such a kind of entertainment.

But, in principle, I am pleased 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 gaming and related things, but the most that I understood was where I got into, what industry I started to go to.

By the way, I'm just developing a sequel, maybe what happens ...

PS: For the article, the trailer specially mounted:


Also popular now: