Dev Story: Crystalux nuances of development and promotion puzzle for Android

Hello, Habr!

A month ago on Google Play published my new game — Crystalux. Still being overjoyed by this momentous occasion, I will share with you some of the technical and marketing nuances that are learned in the course of development. And at the same time a little papieru my creation, of course.



key features.


Crystalux puzzle game with a chain of levels. The gameplay does not claim to uniqueness, but it is quite good and can tighten. You need to collect a pattern of crystals arranged in the hexagonal chips so that the crystals were connected by color. A more detailed description makes no sense, it's easier to watch a video or try.

I hope I'm not one for negative attitude towards new-fangled “games” trends, like energy (pay or wait) or imposed by sociality of each slot? Exit the room, those who scream that I'm alone. I know a lot of us. My friend is small and poor, but proud indie, so the game has no energy, there are no toll barriers and other things. But there are levels from which the brain really boils and to monetize through traditional advertising off advertising and the sale of hints in the game. Sociality — at least, only to have the game somehow promoted themselves. The emphasis on simplicity and immersion in the game.

Actually, I'm rambling, here are the links for those interested, and I will move on to the finer points:



Crystalux on Google Play:


Technical issues


1) the Game is written in AndEngine and this is one of the important blunders. No, the engine is good and quite simple to learn, but the modern mobile market clearly shows that cross-platform is a must. When we started the project, I didn't think about it now to run on other platforms, the game will need to be rewritten. To migrate from iOS to Android are the tools (Hello, Apportable and Marmalade Juice), but I don't know of any tools/framework for the reverse process. Alas. The following projects are either in Unity or Cocos2d bundle/Apportable

2) Games — one of the most voracious types of mobile applications, and the development of your game you most likely gonna happen. The most common complaint of users of the first version of the game was to heat the device and battery consumption. I was particularly impressed by the opinion of one of the players, where he painted the dignity of the game asked new levels, and in the end he added: “by the Way, fried a couple eggs on my Nexus 5 while playing”. No comment.
The problem with the heating can be caused by a lot of different reasons — from the failed architecture of the engine to heavy operations in your code, so it is difficult to give universal advice. I partially solved the problem by switching to SpriteBatch (originally without them) and forced restriction of FPS, since the game is not dynamic and she can't get the maximum return.

3) in AndEngine SpriteBatch is related a funny bug, which I at first not using them. If I posted a picture with scale=1 at X and Y (i.e. the source size), then when displaying the coordinates of the picture somehow, randomly distorted, and the result was a mess. Something like this:



I spent a few nights, tried different approaches, but they all led to the same result. In the end, I just spat and made a primitive hack that surprisingly worked:
the
 // SpriteGroup HACK!
if (displayWidthScale == 1.0 f)
displayWidthScale = 1.00001 f;
if (displayHeightScale == 1.0 f)
displayHeightScale = 1.00001 f;

So I still don't know what it is and why I nothing about it found.

4) Ad networks a lot, they offer different returns. The same network can work on different applications. In short, experiment with is just have a lot. Every time you release an update when changing an ad network is a bad option, so I immediately started thinking about the possibility to run ads without impacting the rest of the game. A very good approach is described here, I have the game implemented something similar, but easier. I installed the SDK multiple ad networks (AdMob, Chartboost, Tapjoy) and implemented a class of ads Manager. The Manager decides, banner/polnoekrannom which network show at some point in time. And in order to manage this process, the game at every startup (but not more often than once per day) downloads a small json config from my server. I change the setting in the config, and the next day, max two, the bulk of players will see banners my chosen network. Works fine, is controlled by easy — PROFIT! Maybe later I'll formalize this code into a separate library and put them on github.

5) the Android World is a world of multiple app stores, and it is foolish to miss profit and audience, limited to publishing only on Google Play. However, each store has its own services, which often needs to integrate, so the more comfortable the Assembly builds for different shops should be taken care of at the stage of development. I have developed a logic that allows change one of the constants to reconfigure the game as I need (in some limits, of course), however to test have not had — we've published so far only in Google Play and are busy developing games in it. Description this topic deserves a separate post, I will try to do in the coming weeks. While brief, it must be taken into account from the outset of development and in the design of monetization. For example, it is not necessary to hope that every store will be available in-app purchases, which means you need to think about alternative ways of monetization.

6) Last tip is not a technical. If undertook the development of a game — make something that would play themselves. At least compromise with me on controversial issues, high rigid internal censorship. Feature doubt? To remove or at least alter it to suit himself. No need to hope if you don't like, the players will appreciate — most likely it will not. For example, the logic of the hints we have to change three or four times until satisfied with the result. On the other hand, interesting pieces to add never too late and they can play a role. For example, the comments at the end of the level was added at the last moment, but was well received by players that have become the highlight of the game.



Promotion


Our promotion strategy is described in two words: “no Money!”. But from this, and dance.

1) F2P is sweeping the planet. Well, not the planet, but in the world of mobile gaming for sure. Direct sales on a good income you can count only on two conditions: a) very good or eye-catching than project b) a hefty marketing budget. Otherwise, most likely, will have to give the game for nothing and to worry about what this would offer players in the game that they wanted to buy it. It is advisable not to break the fun of the game itself. Our game was no exception, and selling tips was unexpectedly good seller. Cheers, and move on to the next item.



2) Google Play updated once a day — melancholy green. Have Flurry and Google Analytics is also a good update interval. And how can you sit there and refresh the stats page every minute? I couldn't deprive us of other such pleasure, so I inserted a simple database and a file in PHP that flooded to your hosting. When you first start the game sends greetings to my server, and I have the opportunity to enjoy the most current numbers of installations by country (taken from the locale of the device). I strongly advise you to get something similar — it's worth it.
This system, incidentally, helped to make an unexpected discovery — shortly after the release of the game went to the Chinese through their sites and forums applications and at the moment players from China scored about 100,000 installs that are in Google Play are not tracked.

3) If your budget promotion similar to ours, the only option is to replace the money enthusiasm. Write to the sites games and Android apps, ask to write reviews on review websites, work with your audience on forums and don't forget to respond to reviews in Google Play. Important point — advertising in social networks has proved very effective. I'm not referring to banner networks, and custom posts in the major thematic public. There are also a number of resources that give a good return when you publish for a reasonable price — 4pda, for example.

4) As you know, in Google Play for a long time already there is no list of new and updated, so if you publish your game and will not promote it, it is equivalent to what you will bring and put a box of goods to a huge warehouse, already filled with such boxes. On the other hand, there are top new — there are games and applications that show good growth rates, and published less than a month ago. This top gives you a huge starting advantage to the person who moves and promotes the game. It is very hard to get there, and plan to promote better to prepare before the release to after the start not to waste time and to gain upload as soon as possible. 30 days after the publication of the game flies out and you start to play on the General rules (many do play on this finish).
Our game has quickly enough grown to 5-10 seats in the top of a new category of puzzles in Russia and the rest of the month dailed out there that would give us 1,000 additional downloads a day from Russia.

the result.


And the outcome is not. The game is under active revision, we're a little Popurri them on the Russian market and are now preparing new levels, localization and PR campaigns at the regional foreign markets. But as on habré love numbers, will share current:



The game is published a month ago.
The number of downloads on my system downloads — 160,000
The number of downloads in Google Play 60,000
The approximate income at the moment is about$2000.
The game has about 3000 ratings and an average rating of 4.65. Users really like the game and the difficulty level, usually complain for crashes on specific devices or that there were more levels.
On the day of game about 60,000 sessions (for Flurry).

This, perhaps, finish. If you have any questions or even feedback on the game write in PM or comments, pleasure to read and answer. Thanks to those who overcome to the end)
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

ODBC Firebird, Postgresql, executing queries in Powershell

garage48 for the first time in Kiev!

The Ministry of communications wants to ban phones without GLONASS