I used to work on creating mobile games as a game designer or producer, but I have never written code in a professional manner. A few months ago I wanted to fix it and make a game with my own hands. So, after two months of work, the Kittens appeared in the App Store and Google Play with the help of three people. In my story I want to share my experience and talk about the development tools that allowed us to quickly make this game.
A few words about the preparatory stage of work. Before starting the development of any project you need to decide on the idea and the team. I decided not to risk it and made a bet on simple gameplay and a popular setting. As a result of a brief reflection, the cats became the central characters of the game, and a slightly reworked idea of Bejeweled Blitz was chosen as the mechanics. Along the way, I remembered the funny cat's habit of getting into empty boxes - and the whole concept was finally formed. Then I found like-minded people and the team was replenished with a talented artist and server programmer.
Although the story is devoted to the development, one can not say a few words about the art. It is impossible to overestimate the importance of graphics in the gaming industry, so I recommend not even starting to do anything without first resolving this issue.
')
If you do not have the opportunity to attract a professional artist, then select the game mechanics, which will allow you not to pay attention to art at all. It is better to adhere to these two extremes, but you should not draw something on your knee, players will not appreciate it. I was lucky, and seals turned out just awesome. This is how the first sketch looked like:
Game engine - the basis of everything
Now there are plenty of game development tools, but I didn’t regret choosing
Unity :
- Free functionality of the engine is enough to develop a game like ours;
- A large online community, you can find a lot of video tutorials, almost all the necessary plugins are ready;
- One code - multiple platforms. We relied on Web, iOS and Android;
- The main language of development is C #, the residual knowledge of which I have preserved from university days.
With the engine, I learned to work on video lessons. There are quite a
few different courses
on Youtube , and
what I liked the most was
these . Well and surely look at
standard lessons from developers of Unity .
Meet on the interface
Typically, the interface creation functionality is included in the game engine, but for Unity, historically, this was the weak side. Almost all used for this plugin NGUI. I also studied it, but I was lucky - by the time the game was launched, Unity released update 4.6, where the new interface creation system is implemented - I highly recommend using it. It is simple, functional and free. Thanks to the correct use of such technologies, it is possible to make interfaces, the display of which does not depend on the size and proportions of the screen, which is very important for working on a mobile game.
In addition to building the interface itself, it was important to make it responsive, "alive." Even such seemingly trivial things, like the reaction of a button to a touch or a beautiful special effect when a cat's super ability is activated, improved the impression of the game. For this, in addition to standard tools, I used the free
plugin iTween , which allows you to quickly and easily create smooth animations. And about half of the special effects acquired in the form of ready-made packs, for example, such as the
FX Mega Pack .
Sounds and music is also an integral part of the interface. Here we were able to get along with ready-made works, acquiring them for a relatively low price. I recommend to search
Premiumbeat and standard
Unity Asset Store .
Socialization of players
The ability to communicate and compete with each other in games has many obvious advantages, but the implementation of this function can be a headache for you and your players. To do this, you need to make the registration of the players, their friendship and raise the server.
The best way to register a player is to use ready-made services such as the Apple Game Center, Google Play Games and Facebook. Independently manage this process, require the player to enter the mail and remember the password - a measure to which it is necessary to resort only as a last resort. We chose Facebook, guided by the fact that:
- It works on all platforms that interest us and is popular in most countries of the world;
- On Facebook, all friends are usually found; the better the interaction with them is realized, the stronger the word of mouth effect will be, i.e. more people will learn about your game. In "Kitties" we realized the opportunity to share achievements and compete with friends;
- To work with the social network, a good Unity-plugin is written, and all this is friendly with Parse, which I will discuss in more detail below.
Choosing Facebook as the main and so far the only platform, we understood that we would not please everyone, and there are many dissatisfied players who do not use this social network. However, such a focus allowed us to quickly start and begin to analyze the results as soon as possible. As a result, it turned out that we have a small percentage of negative reviews for the absence of other social networks, but this can always be made up later.
Server support
If you do not need complex server logic, but only need database functionality to store the user's game progress and settings, use the ready Backend as a Service platform. So we did. We chose and were pleased with the cloud service
Parse . In fact, for us, this is a database with a convenient admin panel and a lot of additional functions, such as simplified identification via Facebook and push notifications. The free limit for Parse is quite large and there is a good
Unity plugin . To start, we have enough of these functions. Only later, when additional logic was required to service the tournament and the championship, we deployed our own server, but we still do not plan to refuse Parse.
As a result, the architecture of the gaming system is now simplified as follows:
Monetization
We immediately decided to take the path of free-to-play. It is easier to promote the game on this model in the mobile market, especially for a novice developer. But even if you make the game paid, I advise you to get acquainted with the amazing world of embedded purchases. It’s unrealistic to sell a paid product on Google Play due to piracy, and it’s much easier to protect a purchase within a game.
The hardest part of the free-to-play model is finding the right balance. The main thing is that the players were always interested, and they perceived the availability of a store as possible, but not mandatory support in the game. All missions in our game with proper perseverance and desire can be completed without additional payment. We mainly rely on purchases of impatient players or very enthusiastic collectors. And to collect in the game there really is something - these are super-cats, which, firstly, strengthen the player, and, secondly, are cute and funny in themselves and are really nice to collect.
I recommend
Prime31 plugins to implement the sales function, they are paid, but they are easy to integrate and work.
In addition to shopping, we use advertising for monetization. The main thing is not to overdo it with the frequency, because the players do not like this the most. And, of course, advertising must be turned off as soon as the player makes the first purchase. So far we are using
Unity Ads , but later we will increase the number of advertising providers.
We protect against hacking
Players are different, and the dishonesty of some can prevent the rest from enjoying the game. In our power to try to protect:
- local player data (saved progress);
- variables in memory (for example, the number of points scored during the game);
- inline shopping mechanism.
Anti-Cheat Toolkit allowed us to quickly implement encryption, which solved the first two tasks. Protection of purchases is best done on the server side, especially if it is already there. However, authentication can be done on the side of the game. In the case of the App Store,
you need to contact their server , in the case of Google Play, this
is done directly on the client . By the way, recently there was an article about how
to make a defense with your own hands .
Do not forget about localization
Plan to support multiple languages from the very beginning of development, even if the content in Russian is still the only one. With the prepared system, you quickly connect a new language. In our project, all the localization texts are stored in a google-table. The obvious plus is that several people can edit the document at once, without creating intermediate documents and transfers. Texts from a table in csv format are loaded into the game automatically. If it is interesting, I will tell in the comments in detail how it works.
Analyzing the results
An in-game analyst is an indispensable tool in the work on errors. It is important to understand where your players come from, how they actually play, when and why they leave. It will be easiest for beginners to start with a free and easy to learn
GameAnalytics .
I recommend using two analytics systems in the project. This will help in time to detect the connection error of one of them, because you will quickly notice if the data will diverge. We use Google Analytics as the second analytics, it has a large free limit. It provides more detailed data, for example, you can see where players came from in your game. Again,
for Unity there is already a good plugin .
In addition to internal analytics, you will need to track sales statistics. After the application is released and the first purchases go, the
AppAnnie service is
useful , allowing you to aggregate data from all stores and advertising networks. It is really convenient - all the statistics in one place, not to mention the ability to keep track of places in various tops.
Server and promo site
If you have a server application, then you need to run it somewhere. Better free. Better on a good iron. All at once, of course, does not happen, but I found a loophole in the form of
a startup support program from Microsoft . If you are just starting your own business, they provide you with Azure server capacity at $ 9,000 per year. In practice, you will get 5 decent servers for free for 3 years. In my opinion this is a great offer.
Including on Azure, you can kill the promotional site of the game. It is useful if someone wants to google (for example, journalists), well, for various other needs. For example, we use it as a landing page for the Share posts that players make on Facebook. We made the
Seals site for free, too, based on WordPress.
Expenses
In order to release the first version of the game, the three of us spent 2 months of personal time and about $ 270 to purchase music and Unity plug-ins. I consider these costs more than acceptable. Buying each plug-in or ready-made content proved itself, because it saved months of development.
Now our game is released in Russian-speaking countries. We are continuing to finalize the game and in parallel we communicate with future partners who will help promote the game in various countries. I hope our experience and advice will help you in developing and save you valuable time.
I will be glad to answer questions in the comments.
Update: In the comments, colleagues suggested several more useful plugins. I have not tried them, but judging by the description, they are worth mentioning:
- DOTween - more nimble analogue of iTween
- TextMeshPro - if the capabilities of the standard uGUI texts are not enough
- I2 Localization - not to write your localization system