Using ready solutions (assets) in Unity helps to save a lot of time. In the Asset Store you can buy models, sounds, animations, scripts and much more. There are tons of assets, but basically it is all a product of extremely low quality. Today I want to talk about which third-party assets I happened to encounter, which ones I ended up leaving in the game, and which ones I had to rework.
Standard terrain material in Unity uses the simplest way to blend textures. There are solutions for blending textures using heightmaps, which makes the transitions between textures more natural.
For my game, I chose between CTS and MicroSplat, read reviews and performance comparisons, and chose the seccond one. This is a completely free solution for better display of landscape. It has many settings, is well optimized, its developer answers all questions very quickly. It is also possible to expand the possibilities of the material with paid add-ons, such as snow, the illusion of wind, water / lava, triplanar overlay and others. However, I have not yet encountered the need for any such addition.
As in the first part of the game, I am still very concerned about the performance, so I looked for a good and lightweight shader to display water. In the end, I chose AQUAS. For quite some time I was completely satisfied with how the water looked like, but when I started doing the day-night cycle, I noticed that water does not always respond correctly to a smooth change of illumination. Sometimes sharp jumps in brightness occur. For a long time I had to figure out what was going on. It turned out that unity sorts light sources by importance - it selects 1 main and several additional lights. The processing of these lights in the shader is slightly different. Usually the main light is the sun. However, during the change of day and night, this source gradually goes out to 0, thus the main source becomes the sky, moon or torch. The developer of AQUAS obviously made a mistake in shader, because when the main light source changed that the brightness of the water changed discontinuously. I tried to fix this bug myself, but the shader code was completely unreadable. Obviously, the shader was automatically generated by some system of visual editing of materials. As a result, I refused to use AQUAS. By this time, I had been using Unity for more than a year, so it wasn’t too difficult for me to write my own shader, which correctly processes all light sources. I also added the ability to display shore waves to my shader. I am satisfied with the result.
Ez Define Symbols
Ez Define Symbols is a small free utility that allows you to make build parameters. With it, you can easily turn on and off sections of code. For example, you can make an assembly for testing, in which the game control panel will be included. Eith this panel I can spawn resources, teleport the hero to any point on the map, control the weather, spawn animals and much more.