Unity: loosely coupled architecture for specific tasks

Hello!
 
 
Everyone knows about the charms of loosely coupled application architecture. Everyone knows, but not everyone does. This happens for various reasons: laziness, timing, ignorance of how to properly apply, etc. I offer for review a small example of a loosely coupled architecture used to solve a specific problem.
 
 
Let's start with the task itself.
 
It is given: a player who moves around the level and collects coins.
 
Purpose: to display the current amount of coins in the player in the game interface.
 
 

Theory


 
We omit the implementation of the selection of coins, the storage ...[/h]
+ 0 -

Work with character statuses. Experiments in Unity

Work with character statuses. Experiments in Unity 3r3187. 3r3-31. While developing the game on Unity, I was faced with an interesting challenge: how to make an extensible time for the effect of negative or positive effects on a character. 3r33175.  3r3187. 3r33175.  3r3187. In short, I have a character to which certain effects can be applied, such as weakening, amplifying, increasing speed, reducing speed and others. To notify the player about the action of a particular effect, the game provides a status line. 3r33175.  3r3187. 3r33175.  3r3187. The first versions of this line contained darkened icons of all statuses, and when the effect occurred...
+ 0 -

Cards from hexagons in Unity: water, objects of a relief and fortress walls

+ 0 -

Under the hood, Graveyard Keeper: How to implement graphic effects

 3r33333. 3r3-31. Hello! As much as 4 years I did not write on Habr. My last series of posts It was about various tools and techniques that we used on our last game (developing it on Unity). Since then, the game that we have safely released, and also released a new one. So now you can breathe a little and write a few new articles that may be useful to someone.
 3r33333.
 3r33333. Under the hood, Graveyard Keeper: How to implement graphic effects  3r33333.
 3r33333. Today I want to talk about graphic techniques and tricks that we used to create the image that you see in the gif above.
 3r33333.
 3r33333. We are very sensitive to the visuals of our games and for this ...
+ 0 -

Cards from hexagons in Unity: bumps, rivers and roads

 3r339396. 3r3-31.
Cards from hexagons in Unity: bumps, rivers and roads 3r? 39122. 3r339112.  3r339396. Start: parts 1-3 . 3r339112.  3r339396. 3r339112.  3r339396.

Part 4: Irregularities

3r339112.  3r339396. 3r38881. Table of Contents 3r38882. 3r339112.  3r339396. 3r37093.  3r339396.
Sample the noise texture.
 3r339396.
Move the vertices.
 3r339396.
We keep the flatness of the cells.
 3r339396.
We subdivide the edges of the cells.
 3r339396.
3r339112.  3r339396. While our grid was a strict pattern of honeycombs. In this part, we will add bumps to make the map look more natural. 3r339112.  3r339396. 3r340.
3r339112.  3r339396.
...[/h]
+ 0 -

We invite you to Voronezh Game Dev Meetup

We invite you to Voronezh Game Dev Meetup October 17 in the Voronezh office Mail.Ru Group will be held a game development mitap. The developers of Mail.Ru Group will tell you about the interesting methods and tools they have worked with, and you will have time to discuss all the presentations and share experiences.
 
 
Participation is free, registration is required.
 
 

Program of the meeting


 
"The experience of migrating highly loaded game projects from MySQL to PostgreSQL"
 
Mark Lokshin, programmer Mail.Ru Group
 
 
Mark will talk about his experience ...[/h]
+ 0 -

As we debug in the browser a self-written ECS on the game server

As we debug in the browser a self-written ECS on the game server  
 
I want to share the mechanisms that we use on the server for visual debugging of game logic and how to change the state of the match in real time.
 
 
In previous articles, the story was told in detail (the list immediately below the cut) about how ECS is structured in our new project in development and how to choose ready solutions. One such decision was Entitas . It did not suit us in the first place due to the lack of storage of the history of states, but I really liked that Unity visually and visually you can see all the statistics on the use of entities, components, system pools, the performance ...
+ 0 -

Job system and search for the path

Job system and search for the path

Card


 
In the previous article I figured out what the new system of tasks is. Job system how it works, how to create tasks, populate them with data and perform multi-threaded calculations, and only in a few words explained where you can use this system. In this article, I'll try to parse a specific example of where you can use this system to get more performance.
 
NavMesh , but it does not work in 2D projects, although at the same Asset Store there are a bunch of ready-made solutions. Well, we will try to create not just a system that will look for the paths on the ...[/h]
+ 0 -

Unity: getting to know Scriptable Objects

Unity: getting to know Scriptable Objects

 
In this tutorial, you will learn how to create and use Scriptable Objects in Unity. Scriptable Objects can help you improve your workflow, reduce the amount of memory you need, and even allow you to share the architecture of your code.
 
 
According to the documentation Unity , ScriptableObject is a class code that allows you to create Scriptable Objects in the game to store large amounts of shared data independent of script instances.
 
 
There are many reasons to use Scriptable Objects in Unity. They can reduce the amount of memory used for each additional prefab, because in essence Scriptable ...
+ 0 -

Zenject: How the IoC container can kill the Implementation of Dependencies on your project

Where does the danger begin? Suppose you firmly decided that you will develop a project, adhering to a specific concept or approach. In our situation, this is the OT, although in its place may also be, for example, Reactive Programming. It is quite logical that in order to realize your goal, you turn to ready solutions (in our example - container Zen Zenject). You will become acquainted with the documentation and begin to build the framework of the application using the basic functionality. If at the initial stages of using the solution you do not have unpleasant feelings, then most likely, it ...
+ 0 -