Tools that allowed us to accelerate game development
I used to work on creating mobile games as a game designer or producer, but I myself have never professionally written code. A few months ago, I wanted to fix it and make a game with my own hands. So, after two months of work, “Seals” appeared on the App Store and Google Play with the help of three people. In my story I want to share my experience and tell about the development tools that allowed us to quickly make this game.
A few words about the preparatory phase of the work. Before starting the development of any project, you need to decide on the idea and team. I decided not to risk it and made a bet on simple gameplay and a popular setting. As a result of some thought, the cats became the central characters of the game, and Bejeweled Blitz, a slightly revised idea, was chosen as the mechanics. Along the way, I recalled a funny cat habit of climbing into empty boxes - and the whole concept finally took shape. Then I found like-minded people and the team was replenished with a talented artist and server programmer.
Although the story is about development, you can not say a few words about 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 choose the mechanics of the game, which will allow you to completely not pay attention to art. It is better to adhere to these two extremes, but you should not draw something on the knee, players will not appreciate it. I was lucky, and the seals were just awesome. Here is the first sketch:
The game engine is the foundation of everything
Now there are plenty of game development tools, but I did not regret that I chose Unity :
- The engine’s free functionality is enough to develop a game like ours;
- A large online community, you can find many video lessons, almost all the necessary plugins are ready;
- One code - several platforms. We relied on Web, iOS and Android;
- The main development language is C #, the residual knowledge of which I have preserved from university times.
With the engine, I learned to work on video tutorials. There are quite a lot of different courses on Youtube , and most of all I liked these . Well, be sure to check out the standard tutorials from Unity developers .
Meet on the interface
Usually, the interface creation functionality is included in the game engine, but Unity has historically had this as a weakness. Almost everyone used the NGUI plugin for this. I also studied it, but I was lucky - at the time of the start of the development of the game, Unity released update 4.6, which implements a new system for creating interfaces - 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 whose display 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, “lively”. Even such seemingly trifles as the reaction of the button to the touch or the beautiful special effect when activating the cat’s super ability have improved the impression of the game. For this, in addition to standard tools, I used the free iTween plugin , 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 are also an integral part of the interface. Here we were able to get by with finished works, acquiring them for a relatively low price. I recommend Premiumbeat and the standard Unity Asset Store for searching .
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 players, their friendship and raise the server.
The best way to register a player is to use off-the-shelf services like 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 that should be resorted to only in the most extreme case. 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;
- Facebook usually contains all the player’s friends; the better the interaction with them is realized, the stronger the effect of “word of mouth” will be, i.e. more people will learn about your game. At Kotiky we realized the opportunity to share achievements and compete with friends;
- A good Unity plugin has been written for working with the social network , and all this is friends with Parse, which I will discuss in more detail below.
Choosing Facebook as the main and so far the only platform, we realized that we would not please everyone, and there would be many dissatisfied players who did not use this social network. However, this trick allowed us to quickly start up and begin to analyze the results as soon as possible. As a result, it happened, we have a small percentage of negative reviews for the lack of other social networks, but this can always be made up later.
If you do not need complex server logic, and you only need the database functionality to store the game progress of the user and settings, use the ready-made Backend as a Service platform. That is what we did. We chose and were satisfied with the Parse cloud service . In fact, for us it is a database with a convenient admin panel and many additional features, such as simplified identification via Facebook and push notifications. Parse's free limit is quite large and there is a good Unity plugin . To start, we had 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 from Parse.
As a result, the architecture of the gaming system now looks simplified like this:
We immediately decided to take the free-to-play path. The game on this model is easier to promote 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 in-app purchases. It’s unrealistic to sell a paid product on Google Play due to piracy, and protecting an in-game purchase is much easier.
The hardest part of the free-to-play model is finding the right balance. The main thing is that players should always be interested, and they perceive the presence of a store as possible, but not mandatory support in the game. All missions in our game with due persistence and desire can be completed at no extra cost. We focus mainly on the purchase of impatient players or very enthusiastic collectors. And there really is something to collect in the game - these are super cats, which, firstly, strengthen the player, and, secondly, are cute and funny on their own and it is really nice to collect them.
To implement the sales function, I recommend Prime31 plugins , they are paid, but they are easy to integrate and work.
In addition to shopping, we use advertising to monetize. The main thing here is not to overdo it with 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. While we use Unity Ads , but later we will increase the number of advertising providers.
We protect ourselves from hacking
Players are different, and the dishonesty of some may prevent everyone else from enjoying the game. It is in our power to try to protect:
- local player data (saved progress);
- variables in the memory (for example, the number of points scored during the game);
- in-app purchase mechanism.
Anti-Cheat Toolkit allowed to quickly implement encryption, which solved the first two tasks. Shopping protection is best done on the server side, especially if it already exists. However, authentication can also 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 on how to make protection 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 so far the only one. With the prepared system, you quickly connect a new language. In our project, all localization texts are stored in a google table. An obvious plus is that several people can edit a document at once, without creating intermediate documents and mailings. Texts from the table in csv format are loaded into the game automatically. If it’s interesting, I’ll tell you in detail in the comments how this works.
We analyze the results
An indispensable assistant in working on bugs is in-game analytics. It is important to understand where your players come from, how they actually play, when and why they leave. For beginners, the easiest way to start is with the free and easy to learn GameAnalytics .
I recommend using two analytics systems in a project. This will help to detect the connection error of one of them in time, as You will quickly notice if the data diverges. As the second analytics we use Google Analytics, it has a large free limit. It provides more detailed data, for example, you can see where the players came from in your game. Again, there is already a good plugin for Unity .
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 , which allows you to aggregate data from all stores and ad networks. This is really convenient - all the statistics are in one place, not to mention the ability to track places in various tops.
Servers and promotional website
If you have a server application, then you need to run it somewhere. Better for free. Better on good hardware. All at once, of course, it doesn’t happen, but I found a loophole in the form of a startup support program from Microsoft . If you are just starting your business, they provide you with $ 9,000 of Azure server capacity 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 host the game’s promo site. 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 Share posts that players make on Facebook. Kotikov’s website, we also made for free based on WordPress.
In order to release the first version of the game, the three of us spent 2 months of personal time and about $ 270 on the purchase of music and Unity plugins. I find these costs more than acceptable. The purchase of each plugin or ready-made content paid off, because these are saved months of development.
Now our game is released in Russian-speaking countries. We continue to refine 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 the development and save valuable time.
I will be glad to answer questions in the comments.
Update: In the comments, colleagues suggested some more useful plugins. I have not tried them, but judging by the description, they are worth mentioning: