📜 ⬆️ ⬇️

My experience of development and promotion. The game "Balda"

A few days ago, the next release of my implementation of the game “Balda” under Android took place. For me, this is a small success story, because this is my first project, the development of which I was able to complete and provide to users in the Android Market. In this post I would like to talk about the development of the application, its progress to the top. Specific figures and graphics - under the cut.

About the application


The idea to write this particular game for Android came to me almost 2 years ago, from my acquaintance with the Android SDK and the beginning of development for it. I liked this word game , but the existing implementations are not.
Because of laziness and other force majeure, I put it off until the fall of this year. The first version of the game was released in mid-October, and, oddly enough, was quite warmly received by a few users. Three months later, the project is still alive, at the present moment is on the 31st place in the top of its category in the Russian market and has more than 10 thousand active installations.

Creating an application


Analysis

Of course, such Android games were already in the market, and so I started with analyzing competing applications.
In the market at that time there were as many as three:

The first was the most popular, judging by the number of installations, but it seems abandoned - the last update was in July 2010.
There was and there is another version distributed only for LG smartphones - Word Game Balda, therefore it does not represent competition in the market.
Since there were already such games, and not one, the decision was obvious - you need to do it better than others.

Development


Brain

I started developing the game with the implementation of the “brain” - the word search algorithm. For the search for words, the branch and bound method was used - by adding letter by letter, the algorithm checked whether the dictionary contains words that start with such a substring.
Having written a complete bust and having tested it on a desktop machine, I transferred this code to the Android application. And it was immediately unpleasantly surprised that the search for a word that took 100 milliseconds on the Core 2 Duo with a frequency of 2.3 GHz began to take tens of seconds on the ARM5 with a frequency of 600 MHz (on the test HTC Wildfire).
It is obvious that the bottleneck was a check for the presence of a word in the dictionary, which begins with a certain substring, which was confirmed by the profiler.
In order not to look for such occurrences, I began to store words in the form of a cunning mapa, where the key was the beginning of the word, and the value was a list of its various endings. The search began to work much faster, but the initialization of such a structure began to take considerable time - the application took about 40 seconds to load. Therefore, it was decided to rewrite the whole thing using NDK. Unfortunately, I can’t give exact figures, because The original version was not preserved and the algorithm underwent many other changes and optimizations, but the implementation in C on the same HTC Wildfire initializes the dictionary in less than 5 seconds and finds the word within ~ 50 ms.
These numbers were better than other implementations in the market and the same as in Word Game Balda, since they also used the native implementation of the search algorithm.
And of course, the game had a killer feature - this is a customizable size of the playing field, from 4 to 7 cells, which the competitors did not have.
')
Interface

Initially, the interface was developed by me, so it looked very simple. For some reason, I decided to make the game as if painted on a notebook sheet in a cage, so it seemed absolutely necessary for me to add animation of the transition between screens in the form of page turning.
As a result of the search, I found two working open source implementations - one was honestly flipping on OpenGL from a person with the nickname harism, and the second rather simulated flipping, drawing a moving white polygon with a shadow on the canvas. I am not on friendly terms with OpenGL, so I decided to choose the second option (especially considering that the user is unlikely to notice the difference between them in 0.5 seconds).
From that moment on, one unpleasant thing began: for such an animation you actually need to know how the next page will look like, then you had to abandon different Activities for different screens.
All screens are in the same FrameLayout along with the component that draws the page turning animation.
When flipping occurs the following:
// pageCurlView - ,    pageCurlView.bringToFront(); pageCurlView.setVisibility(View.VISIBLE); //     current.buildDrawingCache(); Bitmap page1 = current.getDrawingCache(); //   ,     next.buildDrawingCache(); Bitmap page2 = next.getDrawingCache(); //      pageCurlView.animate(page2, page1, direction); 

I did not find another way out - for such an activity such clever animations cannot be fastened.
Initially, the resulting version looked like this:



In this form, the application existed for about 2 months. The users didn’t cause any particular complaints, but I wanted something brighter. I decided that in general I could draw a couple of screens myself and got down to business. It turned out something like this:



This riot of colors didn’t please the users very much, so I finally decided to find a person who would do something more decently. Having placed ads on several freelance sites, I selected a designer for several weeks. As it turned out, most designers develop designs for websites - only a few worked with mobile platforms, and, as a rule, only with iOS. They want for a few screens a solid amount, from $ 500 and above. No one heard about the nine-patch, and what I want as a result to see cutting from png files, and not just a psd-file, surprised almost everyone. So I decided to choose just the one who asked for the smallest amount - $ 200. It was the first and only money spent on development (if not counting the registration in the market - $ 15). After the work of the designer, little has changed, but the game began to look better (and most importantly - a cool splash screen appeared):



Advertising, statistics, errors

I decided to monetize the application through advertising. I’ve chosen AdMob as an ad provider. Embedding AdMob SDK is very simple, I did not notice any difficulties.
I used BugSence to collect bugs. It connects very quickly and simply, and I believe that this is simply an irreplaceable thing - out of more than a hundred errors, only 7 of them were conscious users sent a report to the Android Market.
I used Flurry to collect usage statistics - I can't say that it brought me any benefit, but it’s very interesting to look at their beautiful color graphics.
Tracking referral links may also be useful during advertising campaigns. To do this, you need to register a simple BroadcastReceiver and save the resulting link in it:

AndroidManifest.xml
  <receiver android:name=".ReferrerReceiver" android:exported="true" > <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> 


ReferrerReceiver.java
 public class ReferrerReceiver extends BroadcastReceiver { private final static String TAG = ReferrerReceiver.class.getSimpleName(); private final static String REFERRER = "referrer"; @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); String referrerString = extras.getString(REFERRER); Settings.getInstance(context).setInstallReferrer(referrerString); Log.d(TAG, "Referrer is: " + referrerString); } } 


After that, when I started the application, I simply logged the corresponding event in Flurry. This subsequently helped to know how many installations I received after the advertising campaign.

Promotion


Since the game turned out to be free, then in addition to the market I placed the apk-file on several forums. Some signs of life the branch of the game gives only w3bsit3-dns.com. Thanks to reviews and user tips from w3bsit3-dns.com, the game acquired several features and fixed several serious bugs. In general, the reviews on the forum were much more meaningful and more useful than the reviews on the market. After the publication of the game, reviews on various blogs and sites began to appear, which gave a certain influx of users.
At the very beginning, representatives of Ubi Nuri contacted me with a request to adapt the game for their harsh Korean realities, but I decided not to get involved with them, because 97% of users of the application are Russian-speaking, and such a game is unlikely to be popular in Korea.

The most important point in the promotion of the application, it seems to me was the addition of a dialogue when exiting with a request to vote for the game in the market. After the publication of the version with this dialogue, the fives fell down, the rating went up and the application began to rise in the top category. Now the application has 207 ratings and an average rating of 4.8, which is very good.

Earned money in AdMob can be spent in the same place - for $ 100 you can buy ads for $ 120. I conducted two small advertising campaigns for $ 120 12.28.2011 and 04.01.2012. Here is the chart of the application rating in the top category, two red dots are advertising campaigns:

After advertising, the application begins to rise in the overall rating.

Despite the promise of AdMob to spend money allocated for advertising, they are spent evenly during 2-3 hours during the day.

For $ 240, I received 4800 clicks and 469 installations. Thus it turned out that one installation costs about 50 cents. For the same 50 cents, you can buy guaranteed installations from Flurry, but the minimum amount Flurry works with is $ 400.

Immediately after the update and the last campaign, the number of users increased dramatically. On this chart, the total number of sessions (red dots are advertising campaigns):


The best effect of advertising is noticeable on the graph of new users:


After the last update and advertising, AdMob revenue increased from $ 15-20 per day to $ 40-50 (schedule for the last 30 days):


Since October 12, 2011, the AdMob ad has earned $ 1095 from ads (of which $ 700 is in the last 30 days), of which $ 200 has been spent on advertising.

What's next?


Today the number of users is growing, advertising brings some income and I hope that the game has a bright future. Having read the long story about the sale of rights to the indie game publisher Ubi Nuri, I also decided to move in this direction. Since the game is popular only in the Russian market, I selected several leading Russian developers and publishers of mobile games (Alawar, Game Insight, Herocraft and Joybits) and sent them letters of happiness. Unfortunately, I did not receive any response from any of them, apparently they missed the letters or simply ignored them.

Despite the interesting versatile experience and satisfied users, I don’t want to be more involved in game development. It seemed to me that it was possible to make money only on mass applications - the top of the market was littered with talking little animals from Outfit7 and clones of “Merry Farmers”, but such games are not at all interesting for me.

Video:


UPDATE

I will give a small visual illustration of habraeffekt.

Statistics on new users from Flurry (red dot - publication of the article):


Statistics from Admob (red dot - publication of the article):


4 days after publication, the number of ratings in the market has increased from 209 to 371 and the application has risen to 28th place in the top category.
And one more figure that seemed interesting to me - at the moment, users spent a total of 7 years and 2 months in the application.

Source: https://habr.com/ru/post/135951/


All Articles