📜 ⬆️ ⬇️

Dev Story: Crystalux - nuances of developing and promoting puzzles for Android

Hi, Habr!

A month ago, my new game, Crystalux, was released on Google Play. Being still pleased with this momentous event, I will share with you some technical and marketing subtleties that I learned during the development. Well, at the same time a little poparuyu my creation, of course.


')

Briefly about the game.


Crystalux - a puzzle with a chain of levels. The gameplay does not claim to be unique, but quite good and able to tighten. You need to collect a pattern of crystals arranged on hexagonal chips so that the crystals are connected by color. It makes no sense to describe in more detail, it's easier to watch the video or try.

I hope I'm not the only one who is negative about new-fangled "game" trends, such as energy (pay or wait) or imposed sociality from every gap? Exit the room those who shout that I am alone. I know a lot of us. My friend and I are small and poor, but proud indies, so there is no energy in the game, no paid barriers and other things. But there are levels from which the brain really boils and there is still monetization through traditional advertising, disabling advertising and selling tips in the game. Sociality - at least, only that the game somehow promoted itself. The main emphasis on simplicity and immersion in the process of the game.

Actually, I started talking, here are the links for those interested, and I’ll go over to the subtleties:



Crystalux on Google Play :


Technical points


1) The game was written on AndEngine and this is one of the important mistakes. No, the engine is quite good and quite simple to master, but the modern mobile market clearly shows that the cross platform is a must. When we started the project, I did not think about it and now I need to rewrite the game to run on other platforms. To transfer from iOS to Android, there are support tools (hello, Apportable and Marmalade Juice), but I don’t know of any service / framework for the reverse process. Alas. The following projects will be either on Unity or on the Cocos2d / Apportable bundle

2) Games are one of the most voracious types of mobile applications, and when developing your game you will most likely come across this. The most frequent complaint of users in the first versions of the game was on the heating device and battery consumption. I was particularly impressed by the feedback of one of the players, where he painted the merits of the game, asked for new levels, and at the end attributed: “By the way, I fired a couple of eggs on my Nexus 5 while I was playing.” Comments are superfluous.
The problem with heating can be caused by a bunch of different reasons - from an unsuccessful engine architecture to heavy operations in your code, so it's difficult to give universal advice. I partially solved the problem by switching to SpriteBatch (initially without it) and the forced restriction of FPS, since the game is not dynamic and there is no need for maximum return.

3) There is a funny bug with SpriteBatch in AndEngine that I didn’t use at first. If I placed on it a picture with scale = 1 in X and Y (that is, the original size), then when displaying the coordinates of the picture for some reason, randomly distorted and it turned out porridge. Something like this:



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

So I still don’t know what it is and why I didn’t find anything on the Internet.

4) There are many advertising networks, they give different returns. The same network may work differently on different applications. In short, experimenting with advertising just have a lot. Every time releasing an update when replacing an advertising network is a bad option, so I immediately thought about the possibility of managing advertising without reassembling the game. A very good approach is described here , I have implemented something similar in the game, only simpler. I built the SDK of several ad networks (AdMob, Chartboost, Tapjoy) and implemented a class of advertising manager. The manager decides which network banner / fullscreen to show at a specific point in time. And in order to manage this process, the game downloads a small json-config from my server every time it starts (but not more than once a day). I change the setting in the config, and in a day, maximum two, the majority of players will see the banners of my chosen network. Works great, easy to manage - PROFIT! Perhaps later I will draw this code as a separate library and lay it out on github.
Currently, AdMob banners and Chartboost full screen are spinning in the game - the indicators suit me.

5) The world of Android is the world of a multitude of app stores, and it’s stupid to miss the profits and the audience, limited to publishing only on Google Play. However, each of the stores has its own services with which it is often necessary to integrate, therefore, it is better to take care of a more comfortable build of builds for different stores at the design stage. I developed a logic that allows changing a single constant to reconfigure the game as I need (in some frames, of course), but I didn’t have to test it yet - we only published it on Google Play and are busy developing the game in it. The description of this topic is worthy of a separate post, which I will definitely try to do in the coming weeks. So far, I will say that this must be taken into account from the very beginning of the development and in the design of monetization. For example, do not hope that in-store purchases will be available in every store, which means that you need to think about alternative ways of monetization.

6) The last tip is not entirely technical. If you took up the development of the game - do what you yourself would begin to play. Minimum compromises with themselves on controversial issues, maximum rigid internal self-censorship. Feature in doubt? Remove or at least redo it to suit itself. No need to hope that if you do not like it, the players will appreciate - most likely it will not. For example, we changed the logic of prompts three or four times, until we were satisfied with the result. On the other hand, it’s never too late to add interesting pieces and they can play their part. For example, comments at the end of the level were added literally at the last moment, but were well received by the players and became a peculiar highlight of the game.



Promotion


Our promotion strategy is described in two words: “No money!”. From this and dance.

1) F2P walks on the planet. Well, or not on the planet, but for the world of mobile games for sure. With direct sales, you can expect a good income only under two conditions: a) a very high-quality or project that stands out by something, b) a hefty marketing budget. Otherwise, most likely, you will have to give away the game for nothing and wrestle with what to offer such players to the game itself, so that they want to buy it. It is desirable not to break the fun of the game itself. Our game did not become an exception, and the prompts being sold suddenly turned out to be a good selling item. Hurray, and move on to the next item.



2) Google Play is updated once a day - the longing is green. Flurry and Google Analytics also have a strong update interval. But how to sit and update the statistics page every minute? I could not deprive us with a friend of such pleasure, so I put a simple database and a file in PHP that I uploaded to my hosting. When you first start the game sends hello to my server, and I have the opportunity to admire the most current installation numbers by country (taken from the device locale). I strongly advise you to get something similar - it is worth it.
This system, by the way, helped to make an unexpected discovery - soon after the release, the game went quite well from the Chinese through their websites and application forums, and at the moment players from China have already gathered about 100,000 installations that are not tracked on Google Play.

3) If your promotion budget is similar to ours, then the only way out is to replace money with enthusiasm. Write to the sites of games and Android applications, ask to write reviews on review sites, work with your audience on the forums and do not forget to respond to reviews on Google Play. An important point - advertising on social networks has proven to be very effective. I mean not banner networks, but custom posts in large thematic publics. There are also a number of resources that give a good return when publishing for reasonable money - w3bsit3-dns.com, for example.
I will not give you any specific links and lists of resources, as they are already full on the Internet and on the web. A visitor will be answered by Yandex.

4) As you know, Google Play has no new and updated list for a long time, which means if you publish your game and don’t promote it, this is equivalent to what you bring and deliver the box with the goods to the huge warehouse already filled with such boxes. On the other hand, there are top new ones - there are games and applications that show good growth rates, and were published less than a month ago. This top gives a huge starting advantage to the one who moves and promotes the game. You need to really try to get there, and for this you need to prepare a promotion plan before the release, so that after the start you don’t waste time and collect downloads as quickly as possible. 30 days after publication, the game crashes out of there and you start to play the general rules (many people stop playing at all).
Our game quickly grew to 5-10 places in the top of new puzzles in Russia and spent the rest of the month there, which gave us more than 1000 additional downloads per day from Russia.

Actually, the result.


And there are no results yet. The game is in the stage of active development, we have a little popiar it in the Russian market and now we are preparing new levels, localizations and public relations campaigns in regional foreign markets. But as on Habré like numbers, I will share the current:



The game was published a month ago.
The number of downloads on my system downloads - about 160,000
The number of downloads on Google Play - about 60,000
Approximate income at the moment - about $ 2000
The game has about 3000 ratings and an average rating of 4.65. Users really like the game and the level of complexity, usually complaining about crashes on specific devices or that there are few levels.
About 60,000 sessions are played per day (by Flurry).

On this, perhaps, finish. If you have any questions or even reviews on the game - write in a personal or comments, I will read and answer with pleasure. Thanks to those who beat to the end)

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


All Articles