Three years ago, I single-handedly developed an .io mobile game where you could endlessly run around the map and kill enemies with throwing weapons. I uploaded it to the store and it was relatively successful, even without any marketing support: it brought in about $3000 a month on organic traffic alone.
It went on like this for almost a year until I decided to contact the publisher for the first time. This decision changed a lot: in a couple of months, AXES.io made almost half a million dollars. Without any doubts, a feature did wonders for the project, but we got it only after deploying several major updates with the studio's game designer.
Now, as I’m working on my third game with the publisher, I decided to share that first experience of linking up with a publisher and tell you what has changed in the game, what features we’ve added and how it affected the metrics.
$3000 a month
Disclaimer: I really developed the game alone, but I'm not a game designer or an artist, I just like to code. My girlfriend helped me out with designing the UI and artwork for the stores at the early stages of the project, everything else I got from the Asset Store.
The initial idea was as simple as they come: one world, endless enemy waves, and it had to be an io game. The controls were confined to running and shooting, and the level-ups were basically non-existent: reaching a new level just gave the players an HP increase. The start menu offered you to buy weapons that varied in speed and size, and heroes that were basically the same, except for the design. There was also a basic battle royale mode, but it wasn’t a cornerstone of the first iteration, I just put it in because the genre was very popular at the time.
The game was called THROW.io at first, but then I came up with AXES and liked it way more. I noticed an increase in organic traffic after the change was implemented, so I decided: the new name stays.
When it comes to the initial metrics, the retention was quite high from the get-go, 30-40% on day one. Players willingly shared links to the game, and since I don't have enough marketing experience, all the traffic was organic. At first I tried to promote the game by talking about it on different forums, but it didn’t bring any tangible results, so I gave up on it pretty fast.
I mainly monetized it through interstitial ads that popped up between long sessions. Also, after the player died, they were given an option to watch an ad to resurrect, and you could watch an ad in the main menu for an in-game currency reward – everything’s pretty standard here.
The game was live on my account for 10 months, it reached 100k downloads in 90 days and started to make about $3000 a month in ad revenue. The results seemed pretty good to me, considering that I did everything alone.
I was working for Azur Games as a freelance developer at the time and decided to show them my game just to see what happens. Moreover, the income from the game wasn’t growing in any way, and it wasn’t clear whether it was possible for me to do something about it while still flying solo.
The game was picked up for preliminary tests and that’s where things started to get interesting.
The test results turned out to be good, everyone liked the project, and I started working with a game designer, Georgiy Yushkevich. We communicated through Slack most of the time – he developed a roadmap, came up with features, calculated the mechanics, we discussed some stuff together, and I implemented it all into the project.
The first thing we did was to transfer the game to the publisher's account. Organic traffic started increasing immediately, thanks to all sorts of features on the store pages and cross-promotions. Then we started working on core gameplay, meta and monetization.
We added a tutorial, which also gave us a small boost in metrics, as the entry threshold for new players decreased. But game design is not my area of expertise, so it's better to let Georgiy speak when it comes to these things.
Georgiy Yushkevich: Despite the simplicity of controls in mobile games (in AXES.io, it's just running and shooting), indie developers often underestimate the tutorial. In reality, the way things work is very straight-forward: the player taps the Play button, and immediately gets thrown into the arena, surrounded by enemies, gets hit by a random projectile and dies. Such a negative experience right out of the gate can scare off some of the players, who might think that they aren’t getting something, and will delete the game.
Therefore, we have to put the players on a training map where we show them the controls and give them a taste of the core gameplay right away.
Next, it was vital to do something about the complexity and variability of the sessions. The game designer suggested introducing perks: you could now choose one of three abilities when you level up. For example, an increase in running speed, a double shot or a ricochet off the walls. So it became possible to come up with an array of unique builds that played very differently, which greatly diversified the gameplay.
Georgiy Yushkevich: Perks were a powerful change that made the game better in many ways. Before perks, every session was monotonous and similar to the previous one. Character level-ups were already available, but they did nothing but increase HP. Perks that could work in combinations gave us replayability – now users could put together builds and achieve different styles of play.
For example, the skill of attacking through walls allowed you to hide behind buildings, but at the same time it made it impossible to get the skill of ricocheting a projectile from obstacles. We also added perks that deal melee or poison damage, which created even more variability. All this pushed the players to experiment, increasing the number of sessions and overall enjoyment of the game.
A little later, when we were working on the meta, we added weapons and characters that had default perks allocated to them. The more uncommon an item or skin was, the more useful the perks were (or one item could have several abilities at once). Around the same time, we added armor and rings that also had different stats depending on the play style. The simplest example: heavy armor provides the best defense, but decreases the running speed, which made it possible to further diversify character builds.
The next major update was aimed to change the main game mode from io to battle royale with leagues and transitions between worlds to create a difficulty progression. We came up with three leagues, each had five big world arenas with several smaller arenas inside. This was done to break up game sessions into a more mobile-friendly format, short and diverse, with short-term goals instead of one endless mode.
Georgiy Yushkevich: Initially, the game difficulty didn’t change much over time, especially since it consisted of one endless session. Having split the game into worlds attached to different leagues, we increased the difficulty of each new world to challenge the players, to make them feel their own skills growing, and to motivate them to upgrade and keep coming back.
In terms of modes, our tests showed that having a battle royale mode and nothing else gave us better retention and LTV metrics than when the players were given a choice of several modes. We even tested three modes at the same time for a while (io, campaign transitions between worlds, and battle royale). We also added an intermediate island lobby between the arenas, where you could heal or get a perk for watching ads. The sessions got shorter, the ads got more native and less annoying to the players.
As to updates, the workflow looked something like this: we discussed the changes with the game designer, mostly through Slack, then discussed them with the producers, got their expert opinions, made a roadmap – and I coded the updates. Then we A/B tested everything on a part of the audience to make sure we checked all of our hypotheses, but only the best went into the final release.
Georgiy also helped with the maps, and the studio artists came up with a brand new UI for the game.
Georgiy Yushkevich: When it comes to level design, our main goal was to make all the worlds as diverse and unlike each other in visual terms as possible. Green meadows were followed by a gloomy location, the players went from castle to a winter setting, to a desert, and so on.
We paid special attention to making sure that the players understood which objects can collide with projectiles. The trick is simple: standardize the height of all objects on the map (fences, for example), and the players will immediately understand how to interact with them. If we’re talking about stones, then it’s better to remove the collider from the small ones and give the opportunity to hide behind the large ones – the size difference should be tangible and comprehensible for the players.
It took three major iterations in total before the metrics improved dramatically. In two months of working with the publisher, we managed to raise retention to 45-55%. This was in the summer of 2019, and in September alone, thanks to a feature on Google Play, the game made $428,000. To say that I was happy would be quite an understatement.
In the first six months after joining forces with the publisher, the game was downloaded more than 14 million times. This happened largely due to the marketing campaign, which laid entirely on the publisher’s shoulders: unfortunately, I’m not as well-versed in it. The same goes for analytics: a separate team did the monitoring, although I had access to all the data and metrics.
What went wrong
The project was doing quite well, but I didn’t take one thing into account. The mobile market is evolving and changing so rapidly that it literally requires testing dozens of hypotheses in every area, from gameplay features to regular updates of marketing ideas that tend to burn out.
But it’s not only the marketing ideas that burn out, sometimes you can go into a creative crisis in the middle of a successful project launch and begrudgingly refine the metrics in order to somehow compensate for the decrease of big number metrics. And if we consider the fact that metrics deteriorate quite fast over time, the constant and sometimes weekly improvements are basically a given.
Amid the success, the first tangible profit and features, the founder (in this case, me) can lose focus easily. I’d like to say that I dove head first into the project, refining it day and night, but who am I kidding. Yes, I too faced a crisis and went on a sabbatical in Thailand for six months.
But no matter how awesome the publisher is, it’s almost impossible to complete the project without the developer, and as I learned later, there’s a big difference between doing one A/B test a month and checking four hypotheses in the same period of time and choosing the best one. Metrics started to drop, and my desire to do stuff became virtually non-existent, especially when I realized that the success of the project will eventually dwindle down, since it can’t perform well for 3 to 5 years straight.
In a normal situation, I would simply abandon the project, but, as it turns out, sometimes the publisher can do the unexpected and become your personal therapist. By that time, me and the game designer have already spent a lot of time working on the game together and became a great team. We took our time analyzing the key bottlenecks of the project, and he helped me immensely through this difficult stage.
In the end, we have not only finalized the project, we also released a sequel that performs very well, but more on that another time. All this once again shows that being a solo developer is extremely difficult, even mentally. You definitely need a colleague or two by your side to occasionally help and direct your thoughts in the right direction.
What happened next
It took about six month of active work to finish the game. During that time, we’ve run a lot of tests, fixed the balance, and updated the UI. After that, we started to spend way less time and resources. Now I mainly do tech support related to OS updates, SDKs (advertising, purchases, analytics), and so on, although we still occasionally test various features that have performed well in new projects. We spend just a few days a month on it, even though the game still makes much more than it did when I worked on it alone.
We even did a few unconventional things, at least for me. With the help of a third party, we tried to port the game to Nintendo Switch, PlayStation and Xbox, but the performance indicators weren’t very impressive – after all, this is not a console project. We also ported it to Huawei, where the game performed relatively well. The platform doesn't have as many users as the other stores, but there’s a lot of organic traffic percentage-wise.
Then we started talking about new games – now I had the game designer and producers from Azur Games with me from the start. At a certain point, we thought it would be fun to do something like AXES.io, but about magic, and diversify the gameplay even more. Georgiy and I came up with spells, and he planned out the way they would work and combine.
The perks in AXES.io were independent from each other, but in Magica.io, we decided to spice things up. When they reach a certain level, the players are asked to choose an element that changes the spells. Choose fire and you’ll get a fireball, choose water and get a homing lightning ball, pick water again and get a railgun. Once again, it greatly improved the diversity.
As a result, Magica performed even better in terms of retention at launch than AXES did, and the game keeps making good money to date. So, I'm currently running two projects and working on the idea for the next one. Let's see what happens next.