Development, optimization and release of Synthety games on Unity

image

Good day to all. Finally, my mobile game Synthety was released. Habr often saved with advice and help, and I decided to share my development experience from scratch, summing up the path done.

A little short about everything.

Synthety is a quest adventure game. The goal of the game is to find a way out from the current location to the next. To do this, you need to communicate with characters, interact with surrounding objects, solve puzzles and more. From the beginning of development to the release of the game, they flew for about six months. The game was developed on the Unity engine in C #. In this post I would like to share tips and tricks in the development and release of the game.

Content


  1. Development and optimization.
  2. Google release and revenue generation.
  3. Further actions.

1. Development and optimization


I divide mobile games into 4 categories. Time killer games, social games, mmorpg (well, in any case, they call themselves that) and atmospheric games. I chose the genre of atmospheric games, which is closest to art, and I consider games to be part of art. You can make games of this genre in different ways, I personally chose the following basic conditions for creating a game for myself: a sense of the living world, characters and plot. This requires atmospheric graphics, elaborate level design and interactivity with the objects of the world, and all this affects the optimization of the game.

1.1 Game Optimization


Unlike hypercools with a simple visual and a small number of objects on the stage, but a huge number of levels (about 200-400), in my game the emphasis is not on the number of levels, but on quality. But quality requires optimization. The main optimization tools that I used in Unity:

  • Lightmapping
  • Occlusion Culling
  • Mesh Baker
  • Other optimization.

1.1.1 Lightmapping

There are a lot of posts about baking lighting on the Internet, but I have not seen specific values ​​for baking parameters that would at least be the starting point of the settings. Therefore, I attach a screen of my parameters, which were tested on three machines (MacBook pro, Dell G17, and a desktop computer).

image

The result of baking is approximately the same everywhere. As an example of baking according to these settings:

image

In fact, from here you can configure the baking of your scene by changing only three parameters to achieve your goals:

  • Lightmap Resolution (better quality, but larger baking texture size);
  • Direct and Indirect contribution (from which lighting sources there will be more influence from Directional or all non-direct lighting sources such as PointLight or SpotLight);
  • Indirect intensity (Environment Light intensity in particular, even if you have Gradient, it still takes into account only Sky Color, it is Ambient color, if the Color parameter is set)

1.1.2 Occlusion Culling

Everything is quite simple here. The main purpose of this tool is to reduce the number of tris in the screen, standard Unity parameters are enough. A decrease in Smallest Ocluder and Smallest Hole will lead to an increase in data size, but no significant trice reductions were observed. Tip: if you use an orthographic camera, then configure Clipping Planes so that those objects that should be displayed, and not those that are not even visible, get into the camera.

1.1.3 MeshBaker Bakes

models in batches in one, perfectly reducing Drawcalls. There is a good free tool. .

You can bake models in batches of 64k tris (static butching breaks over 64k tris) However, I personally advocate using purely native Unity tools to reduce the risk of application breakdown on certain phone models.

1.1.4 Other optimization

I do not recommend using a standard shader for mobile devices. In particular, I recommend using material with a diffuse shader on objects of secondary visibility. In general, I think the ToonyShader shader is pretty cheap, but acceptable in terms of visuals.

Do not use vertical sync (Vsync), use instead

Application.targetFrameRate=300;

Baking works only on static objects (Static), and I recommend that all dynamic objects be illuminated with a Directional light source (or several, but dividing the Culling Mask into each group of objects so that each object has its own single light source). And also use fake shadow Projector. Do not use Spot and Point light in real time. To change the lighting on a dynamic object in the area of ​​baked objects, use Light Probes. (Bake with lighting).

image

image

2. Release


How to publish the application on Google Play has already been written in many places, in particular
habr.com/en/company/livetyping/blog/326874

There is nothing wrong with this and every step is controlled and if something is done wrong, an error is generated with an explanation of what has been done wrong (and moreover, each item has a link to the certificate).

I am a developer from Belarus in Minsk. In Belarus, the only way to receive payments from Google Play is via bank transfer. You must go to the local city executive committee with an application for registration of an individual entrepreneur (you can find the form on the website of the city executive committee, since they are not required to give them to you, fill them yourself before the trip). There on the same day you will be issued a certificate with UNP. You need this payer account number to open a bank account at the IP (within 20 days, I advise you to come to the tax office and apply for a simplified taxation system). Accordingly, then you need to call the bank (the cheapest in maintenance are BPS Sberbank and Belgazprombank), declare that you want to open a current account in foreign currency and national currency on IP. The manager will tell you the date when you need to come and sign, and on the same day you will be given the account details.These details are filled in by Google in the developer account in the "Settings" / Payment settings / Method of generating income.

3. Further action


After the release, your game or application will appear in a huge list of the same applications on Google. And also in the same big list on the AppStore (where I am going to release Synthety soon). Promotion and advertising are needed. For this, I personally use and plan in particular to use Facebook traffic for this game. But this is a completely different story, if there are people who are interested, I will make a separate post.

I will be happy to help in a personal and comments if anyone has questions, since in this post 10 percent of all that the developer has to deal with. I will be glad to help even at least one person.

Thank you for your attention . If you are interested, you can play the game right now on Google Play at the request of Synthety.

All Articles