
- My experience: 4 month working month (really it took a year and a half)
- Reader Level: Beginner
- The topics about which I will try to tell in this article: how I came to this, the motivation, how to make a simple design myself, a little about SEO in Google Play and one lost idea of ​​localization amidst all this.
Hello, my name is %% username and I also write mobile games
It all started with Unigine Open Air 2012, I went there with friends who wrote games, hoping to just have a good time (spent), but when people who are passionate about writing games are around
alcoholics, whiskey, barbecues , it's hard to resist and not try. The second reason was that I have two friends who have successfully written something of their own and are now slowly working for themselves. Then I decided that “everyone jumped and I would jump, something to me”. And away we go.
Superplan
The plan was developed almost immediately:
- We write the simplest game, lay it out in the market, have fun (code, draw, translate, optimize, add socialization).
- We take the experience (and some code) from the previous paragraph, rewrite the gameplay - and voila, we have another game.
- ...
- With the point after the three points, everything is clear.
')
At the moment I am somewhere at the end of the first paragraph. But I can not let go, and always want something a little more here to finish, to finish, to change.
As a fallback to the plan, I decided that this experience would not be superfluous in any case.
Zen and motivation
Motivation is a strange thing, all of them have their own. But it seems to me the general essence of motivation is that if you can deceive yourself (it is not good to deceive others, but it is the most!) And explain why you need to spend this sunny day on coding instead of riding a bicycle - deceive! Even if the explanation is far from logic - it does not matter.
About where to take time
See, if you allow yourself to cut your application on Saturdays, every Saturday there are 8 hours to sit down and do it purposefully! It turns out that in a year you have 52 working days on the run. And this is already 2.5 working months! Let's suppose that we still think about the application and architecture a little bit in the evenings, and increase this time to 3.5 months a year. Already not bad, and now feint with ears and think about how productive we are when we write our application and when we work for an uncle? Ooook, what is your coefficient turned out? one? 1.5? maybe all 2?
About the pipe (or where to spend time)
Imagine that your users are water that flows through a pipe. And your goal is to make sure that as much water flows through the pipe. And, let's say, every improvement that you make gives you an increase in this flow of 10% (which is quite real, let's say one improvement - one working day). So, we have at the beginning 1 user per day, and we want 1000, it is asked how many improvements you need to do everything? 1.1 ^ x = 1000, total x - 72 improvements in 72 working days. (Here are our 3.5 months and come in handy).
And any failures - it seemed to have improved the project, but did not win 10%, it can be explained by the fact that the pipe has pieces of different diameters, and perhaps you have improved not the narrowest point. Or why there are no users at all - so you didn’t finish the pipe, what are your users? In all respects, a nice model for self-deception.
About communication
It is very important to find someone who will cheer you on and who is also passionate about the same topic (mobile development). I have a comrade sitting at my side who successfully saws his games, and with which we often discuss a variety of strange things that we learn about the platform, the psychology of users, and so on. This greatly helps not to abandon this hobby.
About the error of the survivor
Remember about her. Read not only the success story, but also just reports like mine, and even more so - reports of comrades who have failed. And only then draw conclusions.
About applications for a couple of evenings
I often hear about the “application on the knee for a couple of evenings” and this is very demotivating. I do not know such people personally, but I know others who have spent many months before the application began to bring in normal money. It motivates me. (considering that I have spent about 4 months).
About the purchase of icons
I’m hoping to spend money (especially since I don’t really expect anything from a test project). This is a strange thing, when you spent dofig time, which costs a lot of money (okay, the experience still got in return), but you can not buy an icon or a translation or order a design. If you have such a garbage - you need to deal with it, or at least somehow take it into account. This is not the case when you draw a wretched icon, spending more time on it (and money in its equivalent) than if you ordered the icon from a designer. In general, application development is similar to the game. In the game, it is important to make the player make a small purchase as early as possible, because once the user makes at least one purchase, he will spend money much easier. So here - buy an icon, and then it will be easier.
All people are different, again, someone throws in the dofig of his time, someone money.
PS Many thoughts like these came to my mind as a kind of enlightenment - that's why I called this part of the article “Zen and Motivation”.
About design
As I said before, I’m screaming, so I’ll tell you how I did at least some design myself.

- To start, we google pictures on the topic and find one in several colors that we like.
- We take from it a set of flowers (it is desirable that there are not many flowers).
- Since we don’t know how to draw (at least I don’t), flat design is our choice.
- At first I thought to find some vector editor to draw everything in it, and then export to png and use it in the application. As a result, it turned out that the “Figure” document in google docs is quite enough for me and, accordingly, its ability to work with vector objects (hello to the friend who painted the design of iOS 7 in the Word) - there was just a bagel-like object and a vector multiplication sign (cross). The button was also drawn at the beginning in the same editor and then exported to png.
Here's what happened:





The background texture was also drawn in google docs, and then multiplied and turned into Paint.NET.
The result was something like this:


Both options on my inexperienced view turned out to be quite acceptable. What and you want.
A note
about the button is still like that - I learned a little later that after all, android allows you to draw some vector objects natively - they are called
Shape and allow you to draw just such a button with rounded edges, a border and even a gradient. Create such a Shape in the drawable folder, and then use buttons or other objects as a background.
Animation
To make it a little more interesting - for each move I made an animation (also a native thing in android).
The effects are as follows:
- manifestation (change of alpha from completely transparent to opaque),
- appearance (resize from point to cross or zero),
- rotation around the axis (vertical or horizontal - resize along one axis to zero with the center in the center of symmetry of the cross or zero and then reverse resize),
- turn around the center (only for the cross).
Let's look at the example of the rotation around the X axis.
Add the overx.xml file to the res / anim project folder with the following content:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator"> <scale android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:duration="125" android:repeatCount="1" android:repeatMode="reverse" ></scale> </set>
- pivot - means the center point with respect to which the scale is produced
- repeatCount - 1 - means that the animation will be executed once and after that there will be 1 repeat
- repeatMode - reverse - means that the re-animation will be performed in the reverse order - that is, it will return all changes made by the original animation back.
I hope the remaining parameters will not cause questions at all.
The call directly to this animation is as follows:
Button button = (Button)findViewById(R.id.button); Animation anim = AnimationUtils.loadAnimation(this, R.anim.overx); button.startAnimation(anim);
I created a pool of animations for crosses and for zeros separately and used them in random order. So it turned out that you should not use the same Animation object to animate different images. For me it somehow turned out to be unobvious. And I had some confusing problems.
Icon
The icon is very important (but I didn’t notice the change in the number of races from changing the icons).
Evolution Icons:

Drawn in any editor :)

Any editor +
is such a button generator (there are limitations there, but it’s quite useful).
These comrades have a trial 3d editor. It was possible of course 3ds Max, but it seemed to me that I will understand longer.

There was a thought that I would stand out with a black background and my icon would be noticed ... but no.

There have been dramatic changes in the application. Achivki were removed and instead of them appeared a system of counting the rating (which symbolizes the cup) based on the speed of the player’s reaction and the table of records. I found
another icon editor , in which there are more opportunities to do all sorts of puffy icons and stuff, but in the end the icon is the same for convexity as it was in the second picture.

Still flat design.
About localization
It seems there were times when it was enough to make the translation of the application into Korean, so that it began to be rocked furiously (at least for daggers and crosses). I think this is because earlier there was a chance almost immediately upon request to be one of the first - now it is no longer.
All one useful thought about localization is this: we go to the xda developers forum, monitor the branch where the developers post their applications and write to them, say, let me translate your application into Russian, and you mine into my native language. But of course, you need to estimate first that there is no need to translate someone else's application for a day, and you only have a couple of lines to translate. I wrote the 6th, responded to the 2nd, the translation so far we have done so with only one comrade, the experience is quite pleasant, even despite the fact that I had to translate three times more than a comrade. But on the other hand - one good application is more in the Russian market.
About SEO
Anything below will not apply to the tops, but to search for the keyword “tic tac toe”.
So how to rise higher?
- First of all, the number of jumps affects the position.
- The asterisks also somehow influence, but I still do not understand how. I think at least users will be reluctant to download the application with a low rating. To get the stars - we make a reminder to users in the application to rank and go to Google Play.
- The most interesting is the name of the application. Here more in detail.
- Other things being equal, “Tic-Tac-Toe” at the request of “Tic-Tac-Toe” will be higher than “Tic-Tac-Toe” online. Even more, if you have an application called “Tic-Tac-Toe”, you will bypass many of your comrades, even with more races.
- Google Play prompts after typing “Tic-tac-toe” in the search for other popular options, for example, “Tic-tac-toe online”, can be called that way, if you have a truly online version and you are high on this request (if you change the name), then there is a possibility that this traffic will come to you. And it can be more current.
- It makes no sense to be called “Tic-Tac-Toe (Tic Tac Toe)” because in this way you will not be high enough on the request of “Tic-Tac-Toe” and not high enough on “Tic Tac Toe”. In this case, it is better to leave “Tic-Tac-Toe” in the Russian description and in English “Tic Tac Toe”, then no matter what language you have chosen, you will be higher and at the request of “Tic-Tac-Toe” and on “Tic Tac Toe”.
- You can experiment in the Russian name to write “Tic-Tac-Toe” and in some Thai “Tic-Tac-Toe online”, yes in Russian. Then you will be quite high in the Russian search for “tic-tac-toe” as well as for “tic-tac-toe online”. But it is, thoughts to think about.
- Application name has high priority when ranking by keywords. Even not so, the name of the application in any localization takes precedence over the description in any localization.
- But the description is also important, so adding the words “Tic-Tac-Toe” to the description several times allows you to go up a couple of positions, but this of course depends on the applications that are located right next to you in the search.
- About translations into different languages ​​- users of other countries do not write “Tic-tac-toe” they write a wide variety of letters, which we need to somehow learn. The traditional way is to open Wikipedia and see the names in different locations (Google translate is wrong - Wikipedia is not). For noughts and crosses, I found a wonderful article in Belarusian where translations into many languages ​​were written. (From there I learned the origin of the miraculous word “little lump” which means checkbox and which I considered slang). So, at the request of “tic tac toe”, you can be far behind the 100th place in the beginning, but at the request of “Kryzhyk-nulіkі” everything can be quite different :). But this is if you add a description in Belarusian (google search hi) and a name in Belarusian. Google translate is not very good, but in the end, adding about 10-15 languages ​​(and most importantly localized names), slightly more users began to arrive (by 10-20%) and those who had never been before began to arrive.
- Yes, on Google Play, descriptions and application names are updated for about an hour or two. But the search index is updated instantly. That is, you change the name to something else in the description, save it, and you can already try searching your application on Google Play by keyword and immediately evaluate its position.
And a couple of comments on SEO
I tried to add localized names to the application itself in the hope that this would somehow change position in the search, but alas not. (I suggested this because Google Play gives hints that they should translate the application itself into such a language, which means that it is possible that the application localization files are parsed).
New applications (less than a month in the market) are at risk of getting to the top of new ones, so if you are sure that the application can shoot straight, it’s better to wait a bit with laying out and shooting. I, of course, did not think about anything like that, and I think that in most cases, leisurely development (indie) is much more important than feedback, so as not to abandon this whole thing completely. Therefore, my first version looked very poor.
And finally
When I was only going to write an article - I thought it would be something comprehensive, completely revealing everything that happened to me in the last year, but it seems to me that I already tired my readers with my letters, and I already got tired of it. Therefore, I decided that I would only describe some things related to the development of the application, and I would leave the programming for the possible second part.
The announcement of the sequel will be something like this:
- working with analytics
- different ad networks,
- Crashlytics,
- code obfuscation (proguard),
- implementation of the table of records (oh, it turned out to be too heavy),
- the choice of the player's record rating metrics (now it’s the speed of the player’s reaction over the last 15 games, but I had several options and I'm still not sure that this is perfect),
- Protecting locally stored data with encryption
- and simple cheat protection in the high score table.
- I can also tell you about sharing the records of players with a link to the game site, but the players somehow reluctantly rummage records.
Add the rest to taste.
If there are wishes for a sequel or questions or better suggestions for what and how best to do - I am ready to discuss with pleasure.
UPD: Active and new users for the last month.

UPD2:Analytics showing that adding translations gives a plusHere is an analyst that compares two months - a month before adding translations to descriptions on Google Play and a month after.
You can see that the upper circle on the right has become more colorful (there were users with languages ​​that previously did not exist).
It can also be seen that the shares of Russians and Americans have decreased (as a percentage). And the proportion of the British, on the contrary - has increased. (probably due to the fact that in English tic-tac-toe are called "Noughts and Crosses")
You can also see in tsiferki - that in Greece, Bulgaria and Italy there were no users at all, and then they appeared.
