Several years of startup and development of his failed MOBA, to eventually create a new startup to help other game developers. Broken offers due to *****, moving to Cyprus and other adventures.
How it all began
Back in 2014, at one of the game jams, we presented a prototype of a cross-platform MOBA.
The arena part of the gameplay was essentially a mobile League of Legends (at that time there were no such games, and Vainglory appeared a little later). With this project we participated in several accelerators and received investments.
For several years, we visited several other countries and accelerators, but due to inexperience and ambition, the startup had to be closed. You can read about our jambs, erroneous decisions and some technical aspects in separate article.
We dragged the project to the last and hoped that everything would work out, but at some point, nevertheless, we realized that it was better to close the game. We still had some money left for salaries for employees (the founders at that time had not received a salary for a year), we decided to quickly make a Hero Masters butler out of UnnyWorld assets.
In about 2-3 months, we launched a more or less working version in order to collect basic metrics. They were not bad, the game even brought in some money (surprisingly, more than MOBA, which was sawn for several years), but not enough to pay for itself. As a result, the final decision was made to close the company.
Everyone needs tools
For each of our projects, we created certain tools. For UnnyWorld, where there is a lot of game data (balance), I wrote a simple admin panel in php. Visually, it was a typical dashboard, where on the left is a tree of elements (specific entities, eg game items), and on the right are the parameters of these elements (cost, strength, etc.).
There were several environments: dev, stage, production. When the changes were published, they all flew away as jsons on the CDN, and the game then downloaded this data. It was quite convenient: no need to mess around directly with spreadsheets, jsons, xmls and other things. The game designer got a handy tool in his hands, and they don’t care about the rest of the magic associated with the movement of data over the network.
For Hero Masters, we used the same admin panel. The game was partially offline, separate game instances were not needed, an API was made for it for authorization through social networks / game centers and for working with saves. At this stage, we thought about the fact that we do similar things in every project. Just at this moment, they began to think about how to make it as a separate service, so that other developers could use it in their projects.
Because the company had to close, and we didn’t pay ourselves money for the last year+, so we had to look for a job, but in parallel with one of the co-founders Pasha Ignatov decided, nevertheless, to try to file the service.
The fateful pivot or how Balancy appeared
While sawing Hero Masters and UnnyWorld, they really wanted to make an analogue of BattleNet, but for their games: a shared account, friends, chat and other social features. So the first version of the service called unnynet.
We had an open source solution under the hood Nakama, which in turn used CockroachDB as the database. At that time, we had already implemented chat, groups, guilds, leaderboards, achievements, and even some kind of chat customization.
Separately, I note that the chat itself and its design worked out of the box, in mobile builds it all opened in WebView. Developers did not need to type anything or write logic for processing messages. But, of course, one of the downsides is that our design might not fit the game UI and looked foreign.
Along the way, we decided to pivot in the direction of the admin panel, through which developers could manage the game balance. It didn’t make much sense to drag and finish the old system on php, there is too much legacy there, and I have already stopped working with php.
I used a node on the back, and a react on the front, because At least I worked with him. Visually, everything looked about the same as the old admin panel – on the left is a list of entity types, and on the right is a tree of the entities themselves and their parameters.
This was enough for the prototype, but a lot of problems immediately surfaced, ranging from convenience (especially if a person had previously worked with something like Google Spreadsheets), ending with the fact that there were no clear entity structures, which resulted in incorrectly generated json ‘s.
After talking with developers and advisors, we redesigned the design to be more familiar to the majority, plus revised the mechanism for how document structures are set.
We screwed on the bootstrap and, plus or minus, a uniform design turned out. Navigation has changed slightly: entity types (templates) on the left, data table on the right.
The templates themselves and their parameters now need to be set in advance.
To work with template documents, then select it in the left menu.
In the admin panel, templates help you work with clear structures, types, and parameters. This is convenient in principle, but, as a result, we get a mechanism for validating this data out of the box: checking types, broken links, and so on.
Templates are also used in the same Unity (for which you need to install our plugin) to generate the necessary classes. All those parameters that were set in the admin panel become properties of the generated classes. The code for uploading jsons and mapping them to these classes is also generated by us. As a result, the developer receives ready-made structures that he uses directly to work with game logic.
We positioned the solution as “smart Spreadsheets”. There were clients, but when compared with our last startup, balance is a pure b2b project, for which it is much harder to find clients. Selling to a potential buyer a solution that “will be better than json and Google Sheets” is very problematic. As an example, the most common obstacles we have encountered are:
I’m used to X, Y, Z
Our developers themselves will make such an admin panel in a month (spoiler: they won’t)
You have to pay for it
Venderlock (this is a common reason for the failure of large studios who want to do everything in-house)
We already have a kind of admin panel
Obviously, selling the solution with a tagline “like Google Sheets, but better”, we will not achieve much success. We needed some special feature that would immediately interest potential buyers.
Smart offers and liveops
Watching our clients, we noticed how they are trying to implement some of their business tasks on the basis of the admin panel. One of them, for example, built a system of tutorials and quests based on templates and inheritance.
A little later, another client, whom we helped with the transfer of their data from an already launched project, tried to implement a system of in-game offers in the admin panel.
Thus, it turned out to implement both basic logical conditions of the type and / or, and all sorts of additional fields / enums. And, most importantly, editing such documents is very convenient compared to Google Spreadsheets or, God forbid, raw jsons.
After thinking about it and talking with other people from the industry, we came to the conclusion that it would be nice to implement something like this ourselves as a separate module / package. The developer then, if necessary, right in the admin panel could add all these structures and data that we have prepared in advance to the existing project with one click.
Been discussing this topic with game developers and potential clients for a while. The goal was to get a soft-commitment to the fact that when implementing such a feature in our service, they will become our customers. We collected a pool of such studios and began to cut functionality.
For offers, we also added a visual editor with basic functionality so that a game designer can easily set up all the conditions for displaying in-game offers (for example, a window with a chest purchase at level 10 or an offer to buy a cool sword if you lose 5 times in a row).
At about the same time, we discussed the issue of investment with potential investors. By the end of February 2022, we already had an offer on hand, but plans have changed. After the beginning of *****, funds and angel investors practically stopped investing in Russian startups if the founders are located in Russia or if the accounts are there.
One of the conditions was moving and registration of citizenship / residence permit in another country. Over the next months, we polished the project and at the same time looked for options. There was one accelerator from Canada that could invest and help with relocation, but they took another percentage of the company from above for this, which did not suit us.
As a result, we found an angel investor from Cyprus, who agreed to invest in us if we moved. At the end of June, my teammate and I left Russia, created our own company in Cyprus and hired ourselves as employees to get work visas. Now in the process of obtaining a residence permit and opening bank accounts.
Currently we are looking for four employees in the company:
backend. Stack: node + ts + nest.js + postgry.
Frontman. React + ts + webpack here.
Liveps is a manager/producer with experience in launching and operating successful projects. Of the tasks: participation in the creation of the product and helping current customers to create successful cases.
Bizdev for communication with game developers and partners, including onboarding and attracting new customers. Need a person with native English or something like that.
Salary in euro + option. It is not possible to transfer money to Russia, so people with foreign accounts are needed.
If you are a game developer who is interested in the service and wants to try it out, you can do it for free up to a certain number of documents in the system. If you have any questions, you can always ask them in our Discord or directly to me telegram.