á°ááᣠáĽá Nikita Brizhak ááᣠá Pixonic á áááá ááá˘á˘ áᏠá ááŁáá áĽá á°áŤáá˝ ááľáĽ áľá áá ááŤáŤáť áááŤáľ áĽáááááá˘
á áŠá˛áŤá á¨áᎠáľá á áááá áááá¨áľ áŤáł áĽá á˝ááá˝ á°á˝áááᢠáá á áŤáľáááá, ááááŤáąá áá á´áááá ᨠ90 ááš áááŁá°á ááᎠáŁááĽá á°áŤáá˝ FPS áááá á á áááľ áĽá á áá ááá. áááłáᣠá¨ááááŞáŤááš ááľáĽ á ááą á¨áááá á¨áŠáá ááááľ ááľ áĽááľáłááłááá˘
á ááŁáá áĽá á°áŤáá˝ á°áłá˝ á˛á áľáłáľ ááľáĽá áĽáá ááááá˘
á áá
á˝áá áᤠá ááľ áşá
áá á¨á°áááá ááľáá áłááá á¨á´áááá ááá áĽá áá á¨á¨ááł áŁá
áŞáŤá˝áá á¨áááľ ááľáĽ á ááľááŁáľ á á¨ááłá˝á ááľáĽ á¨áá ááŤáŤáťá áĽáá´áľ áĽáá°á°áá áá áááá ááá˘
áľááĽá áá áĽá á´áááááá˝ á áĽááľ áááľá˘
Dino Squad á¨ááľáá áá á¨ááŁáá PvP á°áłá˝ ááᢠá°áŤáážáš á á°ááŤáŠ ááłáŞáŤáá˝ á¨áłá á áłááá°ááśá˝á áááŁá áŤá áĽá á 6v6 áĄáľáá˝ áĽááľ á áĽááľ ááááá˘
á°áá áá áĽá á áááአá á ááľááľ áá á¨á°áá°á¨áą áá¸á. á ááá´áá¸á áá°áłážá˝ á áŁá á¨áłáá ááᥠá áááአáŁááľááŁá ááᣠáĽá á¨á°áá á-áá áľáá ፠á á°áá áá˝ áá áá°áŤáᢠá¨á¨ááłá ááľáá°á á á¤áľ ááľáĽ ECS á áá áá á¨á°áá áĽá á á áááአáĽá á á°áá áá áá áĽá á áá ááááá˘
áľá áááá¨áľ ááŤáŤáť áááááŞáŤ áá á°áá°á á¨ááᣠá ááłáŠ áá á áá ááĽáŤáŞáŤ áĽáá á áá˘
á áŁááĽá-á°áŤáá˝ FPS á¨ááłáá˝áŁ ááĽááŤá áĽááá áá á áŠá á áááá áá áá á¨áááľááᢠá°áŤáážá˝ ááŁá¸áá (áľá á°áŤá áááá˝ áá¨á) áá° á áááአáááŤá, áĽá á áááš, á áááአá á°áá áá áá¨á áá°á¨áľ á¨á°áťáťá á¨á¨ááł áááłá áááŤá. á áá á¨ááľá°ááĽá áĽá áľ á¨"áá°ááľ" áááá á ááŤá áĽá á¨á°áŤááš áŁá ᪠á áľááŞá áá á ááááłááľá áľ á á˝á áľ ááŤá¨á áŤáá áááá¨áľ áá áá á¨ááá á¨á áá ááááá˘
á á áŤáŁá˘áŤá á ááłá¨ áá¨áŚá˝ áá áá áááá¨áľ (á áłááá á¨áá¤áľ áááá¨áľ á°áĽá á¨áá áŤá) áááłá áá˝áá, á¨ááŤá á á˘áá°áááľ á˛áŤááą áḠáŁá áŞá á˛ááŁá አ"á á á¨áś áá ááá¸áŤá°áľ" áľááľ áááĽáŤá. áá á˝áá áá°áááłáá˝ áľáá á ááłá¨ áá¨áŚá˝ á áĽáĽá á áá áá, á°áŤááš 200ms ááá á˛áá¨á á ááá áĽáŠ áááááľ áĽáá°áá ááá áŤá. áĽá áá ááá 350, áĽá 500, áĽá 1000 ms. á¨á፠ááŁá á°áłá˝ á ááĽááľ áááá¨áľ ááŤááľ á¨áááťá ááááá˘
á¨áá á˝áá áááľá á¨á°áá á-áá á¨ááľáá°á áľáá ፠áá. áĽáá á°áá áá áŤáą á¨á áááአááá˝ áłáá áĽá áá¤áąá á á°áŤááš áŁá ᪠áá áá°áá áŤáᢠáĽá áááą á˛á°áá°á, áá¤áąá á ááá áŤááłáľáŤá áĽá á¨á°ááááá˝á á áááἠáŤáťá˝áá. á áá ááłá áá áááá á ááŤá áĽá áá¤áąá á áľááŞá áá á ááłá¨áľ ááŤá¨á áŤáá áááá¨áľ á ááľá°á áá.
áĽáá
áá áŤááá ááŠááľ áá¨áłáľ á áŁá á áľááá áá-á°áá áá áááá á áá¨á¨áťá áá¤áľ áá°á¨áľ áĽáŤáąá ááľáŁá, áĽá á ááśá˝ - á¨á ááłá¨ áá¨áĽ áááá¨áľ áá, á¨á áááአááľáĽ áŁáá áá¨á á ááľáá áááł áá°á¨áľ. áŤá áááľ á á ááľ áá á˛á°áŽáľ á°áŤááš á¨áŤáą áá á ááááá áŤáááá áá áŤá¨áá. áľá á°áá á áľáá ፠á°á¨ááŞ
áľááá á¨á°áá áá áľáá ፠á ááľ á˝ááá áááłá, ááá áá áá áááĽáŤá: á°áŤááš á ááľ áá°á á˛á á áá á¨á áľ áŚáł, á á áááአáá, á á°ááłáłá áŚáł áá á˛á°áŽáľ, á ááľ á á፠áŚáł áááá áá˝áá. á¨á áááá áááá¨áľ ááŤáŤáť áá áá á˝áá ááááłáľ ááááŤáᢠááłáŞáŤ á á°á°áŽá° áá á áááአá°áŤááš á á áŤáŁá˘á á á°á°áŽá°á áľ áá áľ áŤá¨áá á¨á¨ááłáá áááł ááááłá áĽá á ááľá áááłáľ áá˝á áĽáá°áá áŤáŁáŤáᢠáááą "á á" á¨áá, á ááľ á á áááአáá áŁáááá, áááłáą ááá áŤá.
áá á áĽáááľ áááᣠá á˛á áľáłáľ á¨á áááá áááá¨áľ ááŤáŤáťá áá°áá á ááááᢠá ááááŞáŤ á°á¨á á°áá áá áŤá¨áá á á áááአáá áĽáá´áľ áá°áá á¨á áľ ááááľ áĽáá°ááťá áá¨áłáľ á áľááá áá á? áĽá á áľááá áá ááááľ á áá áľ? á áĽá á¨ááł á¨áŚá ááłáŞáŤ áĽá á¨á˝ááł áááłáľ á á¨á¨á áĽá á áá°áŤá¨áĽ - áááľá á¨á ááľ á áŤáá á°áá á áŤááľ áá á áááááľ áá°ááᢠá áá áá á¨áľ á°áŤááš á á áŤáŁá˘á "áŤá¨á" á¨áĽááá áááśá˝ á áááἠá á áááአáá áĽáá°áá ááŁááľ áŤáľááááá. á ááŤá ááᣠUnity version 2018.x áĽáá áá áá áᢠá¨ááááľ á¤áá á áĽá፠á¨áááááłááľ ááᣠá áŤááá ááá á á ááľ á á á áᢠáááąá áááłá ááá ááááľ á¨áá, áľááá á á áá á¨áłáĽá ááľáĽ áá°áá á¨á áľ ááááľ ááťáá. áľááá áá ááľá¨á?
áááľáá áá ááŠá áá á ᣠááá ááĽá¨ áááŽá˝ áá°á á˛á ááá˝ á˝ááŽá˝á ááááłáľ á áĽá áĽá á áá áááá-
- ááĽáŤááłááą á°áá á áááášá á˛áŤá á°ááááá˝á á áá á°ááľ áĽááłá¨ ááá á ááĽáᢠáá áá áá¨á á áľááľáá áá° áá¤áľ ááŹá á˝ááá áĽá á¨á°áá ááá áľáá ፠áľáŤ áááľá°áŤá¨á á°á ááá áľ.
- á¨á¨ááł áááśá˝á áłáŞá áá¨áá¸áľ ááťá á ááĽáᢠá ááľáĄ áá á¨á°ááááá˝á áŚáł á¨ááááá (áľááá
á á°ááááťá¸á)ᢠáá°á á˛á á á áááአáá á¨áľá´áľ áłáŞá áá á¨á, áááááŁáľ á°á áááá áľ
á´ááłáľ . áľáááááá áá á ááá á áłáŞá ááľáĽ áľáááááá áááł á ááá ááááľ áĽáá˝ááá. - á áá á¨á¨ááłáá áááł á¨áłáŞá á áĽáá˝á áľááá á¨á°áŤáá˝ áá¨áá á¨ááłáá ááá áááł áá áááłá°á ááťá á ááĽáᢠáŤááľá á°ááá°á áŤáááłá áąáŁ á¨áá°ááľá ááá áŠáŁ á°á¨ááŞáášá áŤáĽáᢠáá á áááᎠá áľááľá á áĽá á¨á°áá áĽá á ááŤáł á¨ECS áľáááśá˝á áŤáŤá°á° ááᢠá á ááľ á ááľááľ áá°áľ ááľáĽ á ááŤáł á¨á¨ááł áááá˝á áááá¨áľ á°á áááá áľá˘ áĽá ááá ááá á áá°áľ á ááľ áľáááᣠá áááá˝ ááŤá¨á áĽáá°áá áĽá á áá ááá áá á¨á áľá˘ á¨áĽáŤááłááą á¨ááľáá°á ááááľ á ááľ á¨á áŤáááá á áá áááł "áĽáá°áá áĽááľááá¨ááá" áĽá á áá ááá ááá áá¨áá áĽáá°áá á áľááá¨ááá, á á°áťá áá á Unity game áááŽá˝á á á áľá¸á᪠á¨ááá áľáááľ áĽáá°áá ááá áá áĽááááŤáá. á¨áĽááľ ááᎠáá¨ááłá áááł á°ááłáłá á áááᎠáááĽáŤáľ áááŤáá˘
áĽááá á áá ááĽá¨ áááŽá˝ á ááľ áá á ááŁáá á¨á áŤáááá ááá áááł áá° áľááááá áá á¨ááááľ âá¨áá áá˝áâ á ááá°ááᢠáŽáą áŤáá°ááłá°á áá á°áááĄ-
public class TimeMachine : ITimeMachine
{
//ĐŃŃĐžŃĐ¸Ń Đ¸ĐłŃОвŃŃ
ŃĐžŃŃĐžŃниК
private readonly IGameStateHistory _history;
//ТокŃŃоо игŃОвОо ŃĐžŃŃĐžŃнио на ŃĐľŃвоŃĐľ
private readonly ExecutableSystem[] _systems;
//ĐĐ°ĐąĐžŃ ŃиŃŃоП, ŃĐ°ŃŃŃавНŃŃŃиŃ
кОННаКдоŃŃ Đ˛ ŃиСиŃĐľŃкОП ПиŃĐľ
//пО даннŃĐź иС игŃОвОгО ŃĐžŃŃĐžŃниŃ
private readonly GameState _presentState;
public TimeMachine(IGameStateHistory history, GameState presentState, ExecutableSystem[] timeInitSystems)
{
_history = history;
_presentState = presentState;
_systems = timeInitSystems;
}
public GameState TravelToTime(int tick)
{
var pastState = tick == _presentState.Time ? _presentState : _history.Get(tick);
foreach (var system in _systems)
{
system.Execute(pastState);
}
return pastState;
}
}
á°áŠáśá˝á áĽá á˝ááłáá˝á áááŤáŤáľ áá áá áá˝á áĽáá´áľ áĽáá°áá ááá áľ áááá áááˇáá˘
á áŁá ááá á ááá áááł, ááŤááŽá˝ á á ááľ ááľáŤá áá á˛áááĄ, ááá ááá ááá˝ áááľáá: á°áŤááš á¨áá°áŽáą á ááľ, á áŤáááá ááá áá° á°áááá áááł ááááľ, áŹááŤáľáľ ááľá¨á, áááłáľ ááá ááŁáľ áĽá ááá á áŤáľáááááłá. áááá áá° ááááŞáŤá áááłá ââááááąá˘
ááá áá á á˛á áľáłáľ ááľáĽ áĽáá°áá áŤá ááŤááŽá˝ á áŁá áĽááľ áá¸á! á á¨ááłá ááľáĽ áŤááľ á áĽááááš ááłáŞáŤáá˝ ááŽáááśá˝á áááĽáŤá - ááĽá á¨ááľáá°á ááĽááŽá˝ á¨áá አá¨á á ááľá áŤáá¸á áĽááśá˝ (á á ááłááľ áááłáá˝ á á°ááá á¨ááá አááĽááŽá˝)ᢠá¨ááą áá áá ááľá¨á á ááŁá¸á, á áá á°ááľ ááĽá¨á á ááŁá¸á?
Đ
áá á ááŤá á ááá á¨ááᥠá ááŽáááľ áá á¨á°áá°á¨áą á¨áŚá ááłáŞáŤáá˝ á¨á¨ááłá á˛ááá áá áŁá ᪠áá áŠá˘ áľááá á¨áá ááá áááŁáľ áá á¨áĽáᢠá¨áľáá˝ á áĽááŽá á˝á á ááᣠááĽá á¨áá á á á¨áááľá áááľ á ááŤáŽá˝á áá¨á áá˘
1. ááŽáááąá á¨áá á¨á á°áŤáá˝ áá áá áĽááŤáááá. ááĽáŤááłááą á°áŤáá˝ ááĽáŤááłááą áĽááľ á¨á áááá ááľáá°á áĽáŤááłááą áááᾠᣠá áŤáááá ááá áá° á°áá á áááł áĽááááłáá áĽá á áľááááá áľááľ áĽáá°áŤááᢠáá á áŤááľ á á áááአáá á¨á°á¨ááá áááľ áĽá ááááľ á¨áá˝á á¨á á¨áŤ áá áĽáá˛áá á áľá˝ááłáᢠá¨á ááľ áľáá áŤáá˝á á¨áᎠááá˝áá á á°áá áá áá á¨á°á°áá አáľááá አáľáá áŤáá˝ ááĽá á áŁá á áľááá áá áá˘
á áĽáá áá á 30 áá ááááľ áá áŤáá á°áŤáá˝ á áľááľá áŽáŹáľ áááľáłá: á ááľ á á¨áľáá á á
áŁáŤ áĽáá°ááŽáĽ áŤáŤá áĽá á¨áŽáŹáąá áááłá ááĽááľ áŤáááᢠá á áŤáŁá˘á, á 33 áá ááááľ áá ááááá áĽáá°ááł áŤáŤá. áááŤáŤáť ááľáá áááŁáá áĽáą á á áááአááá áŤááá
2. áĽáá° ááááŞáŤá á ááŤá áááá ááá áĽáá°áááá ááá áá á ááľ áĽááľ á¨ááľáá°á ááááľ á¨áá áá á áá á áááá ᣠáá á á¨áŤáá á á°ááłáłá á¨á áááá ááááľ ááľáĽ ááľáá°á áĽáááĽááá ᣠá áĽáŤááłááą áá áááá áá° á áááአá ááľ á á ááľ áĽááááŁááᢠááááľ ááľá¨á፠áĽá á¨áááľ áŚáłáá˝á ááááᢠá¨áááľ áááŽá˝ á ááą áĽáľáŞáá áľá¨áľ áá á áĽáá°áááááĄ-
- áĽááą ááá á ááá áłáᢠáá áááľ áľááśáš á áĽá á°áá, ááŁáľ ááá áááłáľ ááááĽá¨á áĽáá˝ááá. áĽá áá á°áŠáą á á°á°áŽá°á áľ á°ááłáłá ááááľ ááľáĽ áá! ááĽáᣠáá áááľ áĽá á°áááś áááąá áá áᢠá á°á¨ááŞá ᣠáá°áłá˝ á°áŤáὠᣠáá á áááłáľ áĽá á¨á ááľá á¤á á ááááľ ááŤá¨á áŤááá áááá¨áľ á áĽá á áááˇáᢠááłáą á°ááááá˝ á á°áŤááš áá á˛á°áŽáą á°ááłáłá áá¤áľ á°áľá°áááᥠá ááľ áááá áŽáŹáľ á¨á°áŽá° áááľáá áĽá ááłáą á áľááľá á°ááĽáŻáá˘
- áĽááą á¨á áááá áá áá á°ááˇáᢠá áá á ááŁá á¨ááľáá°á áľáŤá á ááŁá á¨á áááá ááááľ áŤáááá ááŤáŤáť áááĽááᢠááááá°á ááŽáááśá˝áŁ áá á ááľá ááłáĽ á¨ááááľ "áĽá ááá˝" ááĽá á¨ááááŞáŤá á ááŤá áá á˛ááťá¸á ááááľ áá˝ááᢠá á°ááłáłá áá á á˛áááą áá áŤáá áŤáá°áľá°áŤá¨á áááľ á¨ááŻáᥠá áááአáá áľáŤ ááľáś ááᣠá¨ááŤá á á ááľ á¨á áááá ááááľ áá ááĽá áĽááśá˝ á°ááá á¨ááá á¨ááľáá°á á˛áŹáśá˝á á áľáá˘
áá áĽáá° ááľáá áľáá á°ááłáłá áááł, áá á ááá°áá áĽá
áľ áá°á¨áľ áá°áá. ááłá¤á á¨á áááአáá á á°ááłáłá áá á°áŠáą á á°á¨á°á°á áľ ááááľ áá âá°áŤáâ áĽá áĽááą á áááĽáá ááááľ áá ááá á áá˝ááᢠá 31 áá ááááľ, á áá
áááł, á¨ááᨠááŤáŤáť á¨á áá á áá á áá°áá áá.
á á ááááá˝á ááľáĽ áĽááá áááľ á ááŤá¨áŚá˝ á áááľ á¨áŽáľ ááľááŽá˝ áĽáť áááŤáŤá, áľááá áááłá˝áá áłáĽá áá, áĽá áá¨á á áá á¨áĽá áá á áľáአáá áŠ. á ááłáŞáŤá ááŤááŽá˝ áĽá á áĽááľ ááĽááľ áá á áááľá¨áľ ááĽáŤááłááą áłááá°á á ááľ ááá áá á ááŤá ááá áá. áĽáá áá á¨á°ááá á ááĽáĽ á ááŤáá á¨ááł ááľáĽ ááłá¨áľ áá á âá ááľá áĽá áá áĽáá°áá áĽá áĽáá°áá á áááľ áá áĽáľááł áĽáá°áá áĽá áĽáá°áá áŤá áááť á ááᢠá°áŤááš á ááľ á¨áááłá áľ áá á áľááá á¨ááá áľ ááááá ááŤáá á¨ááá°áá á ááŤá¨áĽ áá áá°á áááá ááá°á á ááááᢠáľááá á áá¨á¨áť áĽá á ááááŞáŤá á ááŤá áá á°áááĽá, áĽá á áá á ááá á¨áŚá ááłáŞáŤáá˝ áĽá á á¨ááłá ááľáĽ áŤá ááá áá á˝ááłáá˝ áá á°ááťá áááá.
á á°áá á, á¨á áááá ááłáá áááłáľ á°áᢠáá. áá áá á¨áááá ááľá á¨áłá¨áᥠáĽáááľáá˝áááᥠáĽáá°á ááᢠáááśá˝á ááááłááľáŁ ááĽáŤáľ áĽá ááĽááľáŁ á ááľááľ á áŁá áááá ááᢠá á˛á Squad ááľáĽ, "á á¨á" áááł ááľáĽ, áĽá ááś ááŽáááśá˝ á á ááľ áá á áá፠ááľáĽ ááአáá˝áá. áĽáŤááłááąá ááŽáááľ áá¨áĽáť áááá á áááśá˝á ááááłááľ á ááŚáľ ááᢠáľááá ᣠá¨ááááľá "á¨ááááť" áĽááľ ááááľ ááĽá á áŁá á áľááá áá áᢠáá áá áááľá¨á á ECS ááľáĽ á¨á°áᨠá áŤá áá áá, á ááľáĄá á¨á°áŤáášá áá áĽáááááŁáá. á¨ááᨠááŤáŤáť (ááŽáááśá˝, á˝ááłáá˝, ááá°) á ááŤáľáááá¸á ááá á áŤááľ áá á°á áááá. áĽáá°ááá áŤááľá á áŤááľ áááá á á¨ááááŤá˝á á ááľáŁ á áá áá á°áĽáľá áá¸á áĽá á ááľ áá áĽáá°ááá¸áááᣠááĽáŤááłááą ááá á ááľ áá áááá ááá áĽááááłááá˘
á áá á°á¨á, á á á ááá á¨á á áŤá áľáááľ á ááá°áá. á¨áĽáˇ áŽáľ á á°áá°á ááአááá áááĄ-
public sealed class LagCompensationSystemGroup : ExecutableSystem
{
//ĐĐ°Ńина вŃоПони
private readonly ITimeMachine _timeMachine;
//ĐĐ°ĐąĐžŃ ŃиŃŃоП НагкОПпонŃĐ°Ńии
private readonly LagCompensationSystem[] _systems;
//ĐĐ°ŃĐ° ŃоаНиСаŃĐ¸Ń ĐşĐťĐ°ŃŃĐľŃиСаŃĐžŃĐ°
private readonly TimeTravelMap _travelMap = new TimeTravelMap();
public LagCompensationSystemGroup(ITimeMachine timeMachine,
LagCompensationSystem[] lagCompensationSystems)
{
_timeMachine = timeMachine;
_systems = lagCompensationSystems;
}
public override void Execute(GameState gs)
{
//ĐĐ° вŃ
Од кНаŃŃĐľŃиСаŃĐžŃ ĐżŃĐ¸Đ˝Đ¸ĐźĐ°ĐľŃ ŃокŃŃоо игŃОвОо ŃĐžŃŃĐžŃнио,
//Đ° на вŃŃ
Од вŃĐ´Đ°ĐľŃ Đ˝Đ°ĐąĐžŃ ÂŤĐşĐžŃСин. РкаМдОК кОŃСино ĐťĐľĐśĐ°Ń ŃĐ˝ŃиŃи,
//кОŃĐžŃŃĐź Đ´ĐťŃ ĐťĐ°ĐłĐşĐžĐźĐżĐľĐ˝ŃĐ°Ńии Đ˝ŃМнО ОднО и ŃĐž Мо вŃĐľĐźŃ Đ¸Đˇ иŃŃĐžŃии.
var buckets = _travelMap.RefillBuckets(gs);
for (int bucketIndex = 0; bucketIndex < buckets.Count; bucketIndex++)
{
ProcessBucket(gs, buckets[bucketIndex]);
}
//РкОнŃĐľ НагкОПпонŃĐ°Ńии ĐźŃ Đ˛ĐžŃŃŃанавНиваоП ŃиСиŃĐľŃкиК ПиŃ
//в иŃŃ
ОднОо ŃĐžŃŃĐžŃнио
_timeMachine.TravelToTime(gs.Time);
}
private void ProcessBucket(GameState presentState, TimeTravelMap.Bucket bucket)
{
//ĐŃкаŃŃваоП вŃĐľĐźŃ ĐžĐ´Đ¸Đ˝ ŃаС Đ´ĐťŃ ĐşĐ°ĐśĐ´ĐžĐš кОŃСинŃ
var pastState = _timeMachine.TravelToTime(bucket.Time);
foreach (var system in _systems)
{
system.PastState = pastState;
system.PresentState = presentState;
foreach (var entity in bucket)
{
system.Execute(entity);
}
}
}
}
ááááŽášá ááááá áĽáť áááŤá-
1. á¨áá°ááá á¨áĽáá áľáá´ áá á á áá ááľáĽ áá áŤá á áĽáá°áááľáĄ áá¨áą.
á á°áŤá á¨ááŁáá ááľáááŽá˝ áááłáá˝ á¨ááłáá á á°áťá áá á á°á°áŤá˝ ááľá¨á ááĽá á áľááá áá áᣠáľááá áłáŞáŠá á 30 ááĽááŽá˝ áá°á ááľá ááá (á 20 Hz á¨á˛áŹáľ áá á)ᢠáá á°áŤáážá˝ á áŁá á¨áá°á ááá áá áĽááł á°ááááá˝á áĽáá˛ááł áŤáľá˝áá¸ááá˘
2. á¨áľááš áááŽá˝ á áá ááááłááą áĽáá°áá˝á áĽá áĽáá°ááá˝á áááľá.
áĽá á áĽááἠá°ááááá˝á áĽááááłá áłááᢠááá áá á¨á°áŤá á¨ááá áá¨áá¨áŤáá˝, áááłá, á áá°áá. á ááľáá áá á°áłážá˝ ááľáĽ áĽááá áá áĽáá°áá°á¨áá áĽáá á¨áá¨áá¨áŤ á˝ááłá á áľá፠ááľá áľ á¨á°áťá áĽáá°áá ááľáááᢠá°áŤááš ááľááá ááťáá á á áá áá áŤáľááá ᣠáŤááá áá áŤáł á¨á°á¨áá áĽááśá˝ á áĽáą ááľáĽ ááĽá¨á á¨ááŁá¸ááá˘
3. á¨áłááá°áá á˝ááłáá˝ ááŤáŤáľ áŤáľáááááľ áĽáá°áá áááľá: áááť, á áŤáľ áááłáľ, ááá°. á áľááá áááá ááľááá áĽá áĽáá° áĽááśá˝ á°ááłáłá á°ááŚá˝á áĽáá°áŤá¸ááá.
4. á¨ááᨠááŤáŤáť áĽá¨á°áŤáá°á áľ áŁáá á°áŤáá˝ á°áá á áŤááľ áá áá áĽáá°áá°á¨á áááľáᢠá áĽáŠ áááł, áŚáłá¸á áá° ááľáá ááá¨á á¨áá áľá: á°áŤááš á áá á á áááአáá á áááá áľ á á°ááłáłá áá áĽáŤáąá áá¨áľ á áá áľ. áááᣠá¨á°áŠáľ ááŤááťáá á°ááá°á áá° áá áĽááááłááᣠáĽá ááá á ááŤáł ááááŤáśá˝ á áá˘
á ááááŞáŤ, áááľá°áá áŤáťá˝áá: áááá á áἠááá áŤáá¸á á°áŤáážá˝ á°ááłáłá á¨ááááľ áááłá áá áá áĽáá˝ááá.
á ááá°á á°á¨áᣠá ááá á¨á¨áŽá˝ áĽá áá°áŤá¨áŚá˝áŁ á˝ááł ááá ááŽááá˛á áŤááá á¨á°áŤáá˝ áááľ áááá áĽááľáááłááᢠá á˛á áľáłáľ ááľáĽáŁ á°áŤáážá˝ á á°áłážá˝ ááľáááľ áá°á á áŤááá ááŚááľáŞ áŤáá¸áá áłááá°ááľ áááŁá áŤáᢠá°áŤááš áŁáá°ááá° á ááá á˘á°áŽáľ áĽá á¨áĽááą á á áŁáŤ á á°áŤááš áłááá°á áááľ ááľáĽ á˘áŤááá áĽááą á˝á ááááá˘
á áśáľá°á á°á¨á ᣠá¨áłááá°á ááłáŞáŤáá á áááἠááá á¨á˝ááłáá á¨áľáá ፠ááĽáĽ ᨠECS á¨á°ááá áá¨á áááá¨áľ ááŤáŤáť á¨áááአá ááľ áĽáá°áááá˘
á áá¤áąá, á¨áá-ááŤáŤáť á°áŤáá˝ áľáááá á áááἠááĽá á áľááá á áá°áá, áľááá á¨á áá áá¤áłá áĽá á á°ááłáłá áá ááá ááááľ ááľá°áá.
á¨á ááłá¨ áá¨áĽ áááá¨áľ á ááá ááááľ á áá˝áá, áááĽá áĽáť áá. áá áĽáá°ááá á¨áá°á á፠áá´áŁ á¨á áááá áááá¨áľ ááŤáŤáť á¨áŤáą á¨áá ááĽááľ á ááᢠá á°á°áŽá°á á°áŤáá˝ á᪠á¨á°áŠáľ á°áŤáá˝á á¨á¨ááł áááľ áŤáťá˝ááᢠáá˛á áľáłáľ áá áĽáá áŤáá áá፠ááá˝ áá áá˘
á áĽááἠáá áá á á á ááá á¨á áááá áŽáľ ááľáĽáľáĽááľ áá¨áá áá á¨á áľ - áááŽááŤá á ááŞáá˝ áĽá áá¨ááł á˛ááááŽá˝á˘ áá°á á˛á ááľáá°á ááá á°á¨áłáłá á¨áĽáááśá˝ áĽáŞ á¨áá ᣠá¨á፠á áááá¨áľ ááŤáŤáť ᣠá¨áá ááá áśá˝ áĽá á áááŤáá˝ á áĽáą ááľáĽ áłáŠá˘ á áĽáŽ áááľáŤáľ ááš áĽáá˛ááá áĽá áĽá¨áľ á áľááááá˘
á 2019 áľáŞáľ (ááá ááááŁáľ áľáá˝ áá°á áĽá)ᣠá ááľááľ ááááá°á á¨ááááľ áľááááśá˝ áá áľááá áááľ ááá ááááľ á áľá°ááááᢠá¨áááá á áá áá˛áŤáá á á áááአáá á°ááŁáŤá á á°á¨ááá¸áᣠááááŤáąá á á°áťá ááĽááľ áááá áááá˝ á¨á፠á¨áááá á áŤáá áááá ááľáááľ áĽááááááá˘
ááĽáŤááłááą á¨á¨ááł ááá á¨áŤáą á¨áá á áŤáá áľááááľ á°áĽá°áá áĽáá á áľááłáŠá á¨ááľááľá á ááľ áľááááąá á¨áá¨á¤áľ ááá áá¨á áá âáá˝áłáľâ á áľáááááľá á áľááá°ááᢠá ááááŞáŤ, ááá á¨áá á¨á áááá áĽáľááľá á°áĽáˇá. á ááá°á á°á¨á ᣠááŽááŤáá á á˛áľ á¨á¨ááł á áŤááľá á˛á¨áá á áľáĽáááľ á¨áá˝áłáľ áŽáľ áá áľá á°áľ á¨á ፠á¨á°á¨á°áąáľá á á ááá á¨áłááŤáá˝ ááá áááľáááľ á áľá˝ááłáᢠáĽáá˛á áŤá áľá á°áśá˝ ááá¨á á áľá¸á᪠áá áŠ, áĽá áĽááá áá á ááľ ááá áá° áá ááá ááľáĽ "á¨áááľ" áŚáł áá á áŤáá áááŽá˝ áááł á áľá¨áľáá.
á á°á¨ááŞáᣠá áŤáá áľááááśá˝á á¨áĽáááá ááá áłáŞá ááá¨áá¸áľ ááťá áĽáá°áá á ááłááľ áĽááśá˝á á áľááááᢠáá
á áááľáŁ áááłá á áá áááŠáŁ ááĽáŤááłááą ááá á ááľ áľááááľ áłááá 30 áľááááśá˝á áááá°áĽ áĽá áłáŞáá á¨ááŤá¨áá˝á áľ áłááá ááľ áĽáá˛á°áŤá˘ á á á ááá, á ááŤáŠ áĽá¨á°áŤ áá, ááá áá áĽá á áá°á°áá áááá: ááá á áááľ áĽáĽáľ á¨á áááá áľáá á ááłá¨á, ááá áá á áŁá á á°áá áááŚá˝á ááááá. á¨áĽá áľááááśá˝ áá áá¨á
á áá á˛á°áŤ á áááአáĽáá´áľ áĽáá°áá ፠ááá°áá á á áľá¸á᪠áá áᢠáľááá
á°ááĄá á°á¨áľáá áá ááĄ-áŤáá°á°á ᨠá áŤáľá°áŤááÂť.
ááá: hab.com