ืื, ืืื ืืื Nikita Brizhak, ืึท ืกืขืจืืืขืจ ืืขืืืขืืึธืคึผืขืจ ืคืื ืคึผืืงืกืึธื ืืง. ืืืึทื ื ืืื ืืืึธืื ืืื ืฆื ืจืขืื ืืืขืื ืงืึทืืคึผืึทื ืกืืืืื ื ืคึฟืึทืจ ืึธืคึผืฉืืื ืืื ืจืืจืขืืืืืง ืืืืืืคึผืืืึทืขืจ.
ืคืืืข ืึทืจืืืงืืขื ืืึธืื ืฉืืื ืืขืฉืจืืื ืืืขืื ืกืขืจืืืขืจ ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื, ืึทืจืืึทื ืืขืจืขืื ื ืืื ืจืืกืืฉ. ืืึธืก ืืื ื ืืฉื ืืืืืฉ, ืืืืึทื ืื ืืขืื ืึธืืึธืืืข ืืื ืึทืงืืืืืื ืืขื ืืฆื ืืื ืืขืจ ืฉืึทืคืื ื ืคืื ืืืืืืคึผืืืึทืขืจ FPS ืืื ื ืื ืฉืคึผืขื 90 ืก. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืจ ืงืขื ืขื ืืขืืขื ืงืขื ืื QuakeWorld ืืึธื, ืืืึธืก ืืื ืืขืืืขื ืืืื ืขืจ ืคืื ืื ืขืจืฉืืขืจ ืฆื ื ืืฆื ืขืก.
ืืืจ ืืืื ื ืืฆื ืขืก ืืื ืืื ืืืขืจ ืจืืจืขืืืืืง ืืืืืืคึผืืืึทืขืจ ืฉืืืขืจ Dino Squad.
ืืื ืืขื ืึทืจืืืงื, ืืืื ืฆืื ืืื ื ืืฉื ืฆื ืืืืขืจืืืจื ืืืึธืก ืืื ืฉืืื ืืขืฉืจืืื ืืืืื ื ืืึธื, ืึธืืขืจ ืฆื ืืึธืื ืืื ืืืจ ืืืคึผืืึทืืขื ืึทื ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื ืืื ืืื ืืืขืจ ืฉืคึผืื, ืืขื ืืืขื ืืื ืืฉืืื ืืื ืืืขืจ ืืขืื ืึธืืึธืืืข ืกืืึทืง ืืื ืืึทืจืฅ ืืึทืืขืคึผืืืึท ืคึฟืขืึดืงืืืื.
ืขืืืขืืข ืืืขืจืืขืจ ืืืขืื ืืื ืืืขืจ ืงืึธืจืืขืงืก ืืื ืืขืื ืึธืืึธืืืข.
Dino Squad ืืื ืึท ื ืขืฅ ืจืืจืขืืืืืง PvP ืฉืืืขืจ. ืคึผืืืึทืขืจืก ืงืึธื ืืจืึธืืืจื ืืืื ืึทืกืึธืจื ืืงืืืืคึผื ืืื ืคืึทืจืฉืืื ืืืขืคึผืึทื ื ืืื ืงืขืืคื ืืขืืขืจ ืื ืืขืจืข ืืื 6 ืื 6 ืืืื.
ืืืืืข ืืขืจ ืงืืืขื ื ืืื ืืขืจ ืกืขืจืืืขืจ ืืขื ืขื ืืืืืจื ืืืืฃ ืื ืืื. ืื ืึทืจืงืึทืืขืงืืฉืขืจ ืืื ืืึทื ืฅ ืงืืึทืกืืฉ ืคึฟืึทืจ ืฉืืืขืจื: ืืขืจ ืกืขืจืืืขืจ ืืื ืึทืืึธืจืึทืืขืจืืึทื, ืืื ืื ืคึผืจืึธืื ืึธื ืคืื ืื ืงืืืขื ื ืึทืจืืขื ืืืืฃ ืื ืงืืืืึทื ืฅ. ืื ืฉืคึผืื ืกืืืืึทืืืืฉืึทื ืืื ืืขืฉืจืืื ืืื ECS ืืื-ืืืื ืืื ืืื ืืขื ืืฆื ืืืืฃ ืืืืืข ืกืขืจืืืขืจืก ืืื ืงืืืขื ื.
ืืืื ืืึธืก ืืื ืืขืจ ืขืจืฉืืขืจ ืืึธื ืืืจ ืืึธื ืืขืืขืจื ืืืขืื ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื, ืืึธ ืืื ืึท ืงืืจืฅ ืฉืคึผืึทืฆืืจ ืืื ืืขื ืึทืจืืืกืืขืื.
ืืื ืืืืืืคึผืืืึทืขืจ FPS ืฉืคึผืืืขืจืืึท, ืื ืืืืึทืื ืืื ืืืืฉืึทืืืึทืื ืกืืืืึทืืืืืื ืืืืฃ ืึท ืืืืึทื ืกืขืจืืืขืจ. ืคึผืืืึทืขืจืก ืฉืืงื ืืืืขืจ ืึทืจืืึทื ืฉืจืืึทื (ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืงืื ืืขืืจืืงื) ืฆื ืื ืกืขืจืืืขืจ, ืืื ืืื ืขื ืืคืขืจ ืืขืจ ืกืขืจืืืขืจ ืกืขื ืื ืืื ืึท ืืขืจืืืึทื ืืืงื ืฉืคึผืื ืฉืืึทื ืืื ืื ืืืงืืืขื ืืึทืื. ืืื ืืขื ืื ืืขืจืึทืงืฉืึทื ืกืืขืืข, ืื ืคืึทืจืืึทืืื ืฆืืืืฉื ืืจืื ืืืขื ืื ืคืึธืจืืืก ืฉืืืกื ืืื ืืขืจ ืืึธืืขื ื ืืืขื ืื ืฉืคึผืืืขืจ ืืึทืจืึทืงืืขืจ ืืืืืขืื ืืืืฃ ืืขื ืขืงืจืึทื ืืืขื ืฉืืขื ืืืง ืืืื ืืจืขืกืขืจ ืืื ืื ืคึผืื ื.
ืืฉืขืช ืืืืฃ ืืืืข ื ืขืืืืึธืจืงืก ืืขื ืคืึทืจืืึทืืื (ืคึผืึทืคึผืืึทืืขืจืื ืืขืจืืคื ืึทืจืืึทื ืฉืจืืึทื ืึธืคึผืฉืืื) ืงืขื ืืืื ืึทื ื ืึธืืืืกืึทืืึทื, ืืืขื ืคึผืืืืื ื ืืืจื ืื ืืื ืืขืจื ืขื, ืขืก ืงืจืืืืฅ ืึท ืืขืคืื ืคืื "ืกืืืืืื ื ืืืืฃ ืืืื" ืืืขื ืงืึทื ืืจืึธืืืื ื ืึท ืืึทืจืึทืงืืขืจ. ืืขืจ ืคึผืจืึธืืืขื ืืื ืืึทืืื ืืึทืืืึทืืืง ืคึฟืึทืจ ืจืืจืขืืืืืง ื ืขืืืืึธืจืงืก, ืืื ืืขืจ ืคืึทื ืืืขื ืึท ืฉืคึผืืืขืจ ืก ืคึผืื ื ืืื 200 ืืื ืืื ื ืึธื ืืขืืืืื ืึท ืืืกืืขืฆืืืื ื ืคึฟืึทืจืืื ืืื ื. ืึธืคื ืื ืคึผืื ื ืงืขื ืขื ืืืื 350, 500 ืึธืืขืจ 1000 ืืื. ืืขืจื ืึธื ืขืก ืืื ืึผืืขื ืืืืืขืืืขื ืฆื ืฉืคึผืืื ืึท ืฉื ืขื ืฉืืืขืจ ืืื ืึทืจืืึทื ืฉืจืืึทื ืึธืคึผืฉืืื.
ืื ืืืืืื ื ืฆื ืืขื ืคึผืจืึธืืืขื ืืื ืคึผืจืึธืื ืึธื ืคืื ืื ืงืืืขื ื-ืืืึทื ืกืืืืึทืืืืฉืึทื. ืืึธ ืืขืจ ืงืืืขื ื ืืื ืึทืคึผืืืื ืื ืึทืจืืึทื ืฉืจืืึทื ืฆื ืื ืฉืคึผืืืขืจ ืืึทืจืึทืงืืขืจ, ืึธื ืืืืจืื ืคึฟืึทืจ ืึท ืขื ืืคืขืจ ืคืื ืื ืกืขืจืืืขืจ. ืืื ืืืขื ืืขืจ ืขื ืืคืขืจ ืืื ืืืงืืืขื, ืขืก ืคืฉืื ืงืึทืืคึผืขืจื ืื ืจืขืืืืืึทืื ืืื ืืขืจืืืึทื ืืืงืื ืืขื ืื ืฉืืขืืขืก ืคืื ืื ืงืขืื ืขืจืก. ืื ืคืึทืจืืึทืืื ืฆืืืืฉื ืืจืื ืืืขื ืึท ืฉืืืกื ืืื ืืืืึทืื ืืืง ืืขืจ ืจืขืืืืืึทื ืืืืฃ ืืขื ืขืงืจืึทื ืืื ืืขื ืคืึทื ืืื ืืื ืืืึทื.
ืขืก ืืื ืืืืืืืง ืฆื ืคึฟืึทืจืฉืืืื ืื ื ืืึทื ืก ืืึธ: ืืขืจ ืงืืืขื ื ืฉืืขื ืืืง ืืจืึธื ืืื ืืืื ืืืื ืืขืฆืืข ืึทืจืืึทื ืฉืจืืึทื, ืืื ืคืืื ื - ืืื ื ืขืฅ ืคืึทืจืืึทืืื, ืืืื ืื ืคืจืืขืจืืืงืข ืฉืืึทื ืคืื ืื ืืึทืื ืคืื ืื ืกืขืจืืืขืจ. ืืึธืก ืืืืกื, ืืืขื ืืขื ืฉืืกื ืืืืฃ ืึท ืฉืื ื, ืืขื ืืขืจ ืฉืคึผืืืขืจ ืืื ืืื ืืขืจ ืคืึทืจืืึทื ืืขื ืืืื ืงืึธืจืขืื ืฆื ืืื. ืืขืจ ืืืขืื ืงืืืขื ื ืคึผืจืึธืื ืึธื
ืืืื, ืงืืืขื ื ืคึผืจืึธืื ืึธื ืกืึทืืืื ืืืื ืคึผืจืึธืืืขื, ืึธืืขืจ ืงืจืืืืฅ ืื ืืขืจื: ืืืื ืึท ืฉืคึผืืืขืจ ืฉืืฅ ืืื ืื ืคืื ื ืืื ืื ืคืืึทื ื ืืื ืืขืืืขื ืืื ืืขืจ ืคืึทืจืืึทื ืืขื ืืืื, ืืืืฃ ืื ืกืขืจืืืขืจ ืืืขื ืฉืืกืขืจ ืืื ืืขืจ ืืขืืืืงืขืจ ืคืื ื, ืืขืจ ืคืืึทื ื ืงืขื ื ืื ืืขืจ ืืืื ืืื ืืขื ืึธืจื. ืกืขืจืืืืจืขืจ ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื ืคืจืืืื ืฆื ืกืึธืืืืข ืืขื ืคึผืจืึธืืืขื. ืืืขื ืึท ืืืึธืคื ืืื ืคืืืขืจื, ืืขืจ ืกืขืจืืืขืจ ืจืืกืืึธืจื ืื ืฉืคึผืื ืฉืืึทื ืืืึธืก ืืขืจ ืฉืคึผืืืขืจ ืืขืืขื ืืึธืืงืึทืื ืืื ืืขืจ ืฆืืื ืคืื ืื ืฉืืกืขืจ, ืืื ืืฉืขืงืก ืฆื ืขืจ ืืึทืงืข ืงืขื ืืึธืื ืฉืืึธืื ืื ืคืืึทื ื. ืืืื ืืขืจ ืขื ืืคืขืจ ืืื "ืืึธ," ืื ืฉืืึธืื ืืื ืืขืจืขืื ื, ืืคืืื ืืืื ืืขืจ ืคืืึทื ื ืืื ื ืื ืืขืจ ืืืืฃ ืื ืกืขืจืืืขืจ ืืื ืืขื ืคืื ื.
ืึทืจืื ืืื ืืขื ืืืืกื, ืืืจ ืื ืืขืืืืื ืฆื ืื ืกืืจืืืขื ื ืกืขืจืืืขืจ ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื ืืื Dino Squad. ืขืจืฉืืขืจ ืคืื ืึทืืข, ืืืจ ืืึธืื ืฆื ืคึฟืึทืจืฉืืืื ืืื ืฆื ืืืงืขืจื ืืืืฃ ืื ืกืขืจืืืขืจ ืืืึธืก ืืขืจ ืงืืืขื ื ืืขืืขื? ืืื ืืืึธืก ืคึผืื ืงื ืืึทืจืฃ ืฆื ืืืื ืืขืืื ื? ืืื ืืื ืืืขืจ ืฉืคึผืื, ืืืฅ ืคืื ืืืขืคึผืึทื ื ืืื ืึทืืืืึทืืื ืืขื ืขื ืงืึทืืงืืึทืืืืืื ืืืจื ืจืืึทืงืึทืกืื ืืื ืึธืืืืขืจืืืื - ืืึธืก ืืื, ืืืจื ืื ืืขืจืึทืงืฉืึทื ื ืืื ืื ืคืืึทื ื ืก ืืฉืืืืช ืงืึทืืืืขืจื. ืึทืงืงืึธืจืืื ืืื, ืืืจ ืืึทืจืคึฟื ืฆื ืจืขืคึผืจืึธืืืฆืืจื ืื ืฉืืขืืข ืคืื โโืื ืงืึทืืืืขืจื, ืืืึธืก ืื ืฉืคึผืืืขืจ "ืืขืืขื" ืืึธืืงืึทืื, ืืืืฃ ืื ืกืขืจืืืขืจ. ืืื ืืขืจ ืฆืืื ืืืจ ืืขืืืืื ื Unity ืืืขืจืกืืข 2018.x. ืื ืคืืืืง ืึทืคึผื ืขืก ืืื ืกืืึทืืืง, ืื ืืฉืืืืช ืืืขืื ืืืืืกืฅ ืืื ืึท ืืืื ืงืึธืคึผืืข. ืขืก ืืื ืงืืื ืืืขื ืฆื ืจืึทืืขืืืขื ืืืึทื ืฉืืึทื ืืื ืืขืืึธืื ืืืงืขืจื ืขืก ืคึฟืื ืื ืงืขืกืื. ืึทืืื ืืืึธืก ืฆื ืืึธื?
ืื ืืืืืื ื ืืื ืืขืืืขื ืืืืฃ ืื ืืืืขืจืคืืึทื; ืืืจ ืืึธืื ืฉืืื ืืขื ืืฆื ืึทืืข ืืืึทื ืขืืขืืขื ืื ืฆื ืกืึธืืืืข ืื ืืขืจืข ืคึผืจืึธืืืขืืก:
- ืคึฟืึทืจ ืืขืืขืจ ืงืืืขื ื, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืกื ืืื ืืืึธืก ืืึธื ืขืจ ืืขืืขื ืงืขืื ืขืจืก ืืืขื ืขืจ ืืขืืจืืงื ืื ืฉืืืกืืขื. ืืืจ ืืึธืื ืฉืืื ืืขืฉืจืืื ืืขื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืื ืึทืจืืึทื ืฉืจืืึทื ืคึผืขืงื ืืื ืืขืืืืื ื ืขืก ืฆื ืกืืจืืืขืจื ืื ืคึผืจืึธืื ืึธื ืคืื ืื ืงืืืขื ื.
- ืืืจ ืืึทืจืคึฟื ืฆื ืงืขื ืขื ืงืจืึธื ืื ืืขืฉืืืืข ืคืื โโืฉืคึผืื ืฉืืึทืื. ืขืก ืืื ืืื ืขืก ืึทื ืืืจ ืืืขืื ืืึทืืื ืื ืฉืืขืืขืก ืคืื ืืื ืืืขืจ ืงืขืื ืขืจืก (ืืื ืืขืจืืืขืจ ืืืืขืจ ืงืึทืืืืขืจื). ืืืจ ืืึธืื ืฉืืื ืืขืืื ืึท ืฉืืึทื ืืขืฉืืืืข ืืืืฃ ืื ืกืขืจืืืขืจ, ืืืจ ืืขืืืืื ื ืขืก ืฆื ืืืืขื
ืืขืืืึทืก . ืืืืื ืื ืจืขืื ืฆืืื, ืืืจ ืงืขื ืขื ืืืืื ืืขืคึฟืื ืขื ืื ืจืขืื ืฉืืึทื ืืื ืืขืฉืืืืข. - ืืืฆื ืึทื ืืืจ ืืึธืื ืื ืฉืคึผืื ืฉืืึทื ืคืื ืืขืฉืืืืข ืืื ืืึทื ื, ืืืจ ืืึทืจืคึฟื ืฆื ืงืขื ืขื ืฆื ืกืื ืืงืจืึทื ืืื ืฉืคึผืืืขืจ ืืึทืื ืืื ืื ืฉืืึทื ืคืื ืื ืืฉืืืืช ืืืขืื. ืืืืืกืืื ื ืงืึทืืืืขืจื - ืืึทื, ืคืขืื ืืืง ืึธื ืขืก - ืฉืึทืคึฟื, ืืื ืืืืืง ืึธื ืขืก - ืฆืขืฉืืขืจื. ืื ืืึธืืืง ืืื ืืืื ืฉืืื ืืขืฉืจืืื ืืื ืงืึธื ืกืืกืืขื ืคืื ืขืืืขืืข ECS ืกืืกืืขืืขื. ืืืจ ืืขืืืืื ื ืขืก ืฆื ืืึทืืื ืขืืืขืืข ืฉืคึผืื ืจืืื ืืื ืืืื ืื ืืื ืคึผืจืึธืฆืขืก. ืืื ืืื ื ืื ืืฉืืืืช ืืืขืื ืืื ืืืื ืคึผืขืจ ืคึผืจืึธืฆืขืก, ืขืก ืืื ืฆื ืืืื ืจืืืื ืฆืืืืฉื ืจืืื. ืืืืืขืจ ืืขืืขืจ ืืืงืขื ืคืื ืื ืกืืืืึทืืืืฉืึทื, ืืืจ "ืืึทืฉืืขืืืง" ืื ืฉืืึทื ืคืื ืื ืืฉืืืืช ืืืขืื ืืื ืจืืื ืืืืึทืืืืขื ืขืก ืืื ืืึทืื ืคึฟืึทืจ ืื ืงืจืึทื ื ืคึผืืึทืฅ, ืืจืืื ื ืฆื ืจืืืื Unity ืฉืคึผืื ืึทืืืืฉืขืงืฅ ืืื ืคืื ืืื ืืขืืืขื ืืืจื ืึท ืงืืื ืคึผืืืื ื ืกืืกืืขื. ืึทืืข ืืืึธืก ืืื ืืขืืืืื ืืื ืฆื ืจืืคื ืื ืืขืืืข ืืึธืืืง ืคึฟืึทืจ ืื ืฉืคึผืื ืฉืืึทื ืคืื ืืขืจ ืคืึทืจืืึทื ืืขื ืืืื.
ืืืจื ืฉืืขืื ืึทืืข ืื ืขืืขืืขื ืื ืฆืืืึทืืขื, ืืืจ ืืึธืื ืึท "ืฆืืื ืืึทืฉืื" ืืืึธืก ืงืขื ืฆืืจืืงืงืจืืื ืื ืฉืืึทื ืคืื ืื ืืฉืืืืช ืืืขืื ืฆื ืื ืจืขืื ืืึธืืขื ื. ืืขืจ ืงืึธื ืืื ืืขืืืขื ืคึผืฉืื:
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 ืืืงืขื, ืืื ืืขื ืคืึทื, ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื ืืื ื ืื ืืขืจ ืืขืืืขื ืื
ืืื ืืื ืืืขืจ ืืืคึผืืึทืืขื ืืืืฉืึทื, ืื ืฆืืืื ืึทืคึผืจืึธืืืฉืื ืืขื ืขื ืึทื ืืขืจืฉ ืืื ืืืืื ืึท ืคึผืึธืจ ืคืื ืฉืืจืืช ืคืื ืงืึธื, ืึทืืื ืืืจ ืืืฉืืคื ืืืืืข, ืืื ืคึฟืึทืจ ืึท ืืึทื ื ืฆืืึทื ืืื ืขืงืกืืกืืืจื ืืื ืคึผืึทืจืึทืืขื. ืืขืคึผืขื ืืื ื ืืืืฃ ืื ืืขืืฉืึทื ืืง ืคืื ืื ืืืึธืคื ืืื ืื ืืืืงืืึทื ืคืื ืื ืงืืื, ืืืจ ืืืืกืืขืจืืืืืื ืืืื ืขืจ ืึธืืขืจ ืื ืืขืจื ืึธืคึผืฆืืข ืคึฟืึทืจ ืืขืืขืจ ืืืื ืึทืกืึธืจ. ืื ืืืืกืืขืืจืืื ืคืื ื ืืึธ ืืื ืืขืืืขื ืืขืจ ืืืืกืืขื ืืื ืื ืฉืคึผืื ืคืื ืืึทืงืึทื ืืงืก ืืื "ืืืื ืืืจ ืฉืืึธืื ืื ืคืืึทื ื ืึทืืื ืคืืืข ืืึธื ืืื ืึทืืึท ืืื ืึทืืึท ืึท ืฆืืื, ืืึทืงืืืขื ืึทืืึท ืืื ืึทืืึท ืึท ืืึธื ืืก." ืงืืื ืืขืืึทื ืืงืขืจ ืืื ืื ืฆืืึทื ืืื ืืืึธืก ืื ืฉืคึผืืืขืจ ืฉืืึธืื ืื ืคืืึทื ื ืืขืฉืคืืื ืึท ืืืืืืืง ืจืึธืืข ืืคืืขืืืื ืฆื ืึทืจืืขืื ืืื ืื ืจืืข ืฆืืืึทื ื. ืึทืืื ืืืจ ืขื ืืืงื ืืื ืืื ืืขืจ ืขืจืฉืืขืจ ืึธืคึผืฆืืข, ืืื ืขืก ืืืฆื ืึทืคึผืืืื ืฆื ืึทืืข ืืืขืคึผืึทื ื ืืื ืึทืืข ืึทืงืืืื ืึทืืืืึทืืื ืืื ืื ืฉืคึผืื.
ืกืขืคึผืขืจืึทืืื, ืขืก ืืื ืืืขืจื ืจืืืืื ื ืื ืึทืจืืืกืืขืื ืคืื ืคืึธืจืฉืืขืืื ื. ืืืื ืืืจ ืืึธื ืืขืืืื ื ืึทื ืืึธืก ืึทืืฅ ืืืขื ืคึผืึทืืขืืขื ืื ืืืื, ืืื ืขื ืืคึฟืขืจื: ืขืก ืืื. ืืื ืืื ืืื ืืึทื ืฅ ืคึผืึทืืขืืขื ืืื ืืึธืืืื ื ืงืึทืืืืขืจื ืืื ืืืจื ืื ื ืืื ืืืืฃ ืืื ืึทืืืขืง. ืืื ืืื ืึธ ืกืงืืืึทื, ืืื ืื "ืขืจืืกื" ืคืึทื, ืขืก ืงืขื ืขื ืืืื ืขืืืขืืข ืืื ืืขืจื ืคึผืจืึทืืืฉืขืงืืืืื ืกืืืืึทืืืืื ืืึทืกืื ืืื ืงืึทืืืึทื. ืืึธืืืื ื ืงืึทืืืืขืจื ืฆื ืฆืืืื ืืขืืขืจ ืคึผืจืึทืืืฉืขืงืืึทื ืื ืืืืืืืืฉืืึทืื ืืื ืึทื ืึทื ืึทืคืึธืจืืึทืืึทื ืืืงืกืืก. ืืขืจืืืขืจ, ืขืก ืืื ืืขืืืขื ืืขืืึทืืจืข ื ืืืืืง ืคึฟืึทืจ ืืื ืื ืฆื ืืื ืึทืืืื ืื ื ืืืขืจ ืคืื ืคืืืืง "ืจืึธืืืืึทืงืงืก". ืฆื ืืึธื ืืึธืก, ืืืจ ืืืฉืืคื ืึท ืืึทืืื ืืขืจ ืงืึธืืคึผืึธื ืขื ื ืืื 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 ืื). ืืึธืก ืึทืืึทืื ืคึผืืืึทืขืจืก ืฆื ืฉืืึธืื ืงืขืื ืขืจืก ืืคืืื ืืื ืืืืขืจ ืืืื ืคึผืื ืืก.
2. ืืึทืฉืืืืขื ืืืึธืก ืึทืืืืฉืขืงืฅ ืงืขื ืขื ืืืื ืืจืืืขืจืืขืคืืจื ืืื ืฆืืื ืืื ืืืึธืก ืงืขื ืขื ื ืืฉื.
ืืืจ, ืคึฟืึทืจืฉืืืื ืืื, ืืึทื ืืื ืืืขืจ ืงืขืื ืขืจืก. ืืืขืจ ืื ืกืืึทืืืึทืืืข ืขื ืขืจืืืข ืฉืืืื, ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืขื ืขื ื ืืฉื. ืืืจ ืืึทืฉืืึธืกื ืึทื ืขืก ืืื ืืขืกืขืจ ืฆื ืืขืื ืืืืืขืจืงืืึทื ืฆื ืื ืืืคืขื ืกืืื ืคืืืืงืืื, ืืื ืึธืคื ืืขืืื ืืื ืึธื ืืืื ืฉืืืขืจื. ืืืื ืืขืจ ืฉืคึผืืืขืจ ืืื ืฉืืื ืืขืฉืืขืื ืึท ืฉืืื ืืื ืื ืคึผืจืขืืขื ื, ืึธืคึผืฉืืื-ืงืึธืืคึผืึทื ืกืืจื ืืืืึทืฅ ืคืื ืืขืจ ืคืึทืจืืึทื ืืขื ืืืื ืืึธื ื ืืฉื ืคืืืขื ืืืจื ืขืก.
3. ืืืฉืืืกื ืฆื ืขืก ืืื ื ืืืืืง ืฆื ืคืืจืืืืืงื ืื ืคืขืืืงืืืื ืคืื ืื ืืื ืืกืืืจืก: ืืืืกื, ืขืง, ืืื"ื ื, ืืืจ ืืืื ืืืฉืืืกื ืืืืก ืืขื ืืืจืฃ ืืื ืคืืจืืจืืขืื ืืืื ืื ืืขืืืข ืืืืื ืืื ืงืืืืก.
4. ืืึทืฉืืืืขื ืืืึธืก ืฆื ืืึธื ืืื ืื ืงืึทืืืืขืจื ืคืื ืื ืฉืคึผืืืขืจ ืคึฟืึทืจ ืืืขืืขื ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื ืืื ืืืจืืืขืงืึธืื. ืืื ืึท ืืืื ืืืขื, ืืืืขืจ ืฉืืขืืข ืืึธื ื ืืฉื ืืืขืจืจืืง ืืื ืืขืจ ืคืึทืจืืึทื ืืขื ืืืื: ืืขืจ ืฉืคึผืืืขืจ ืืึธื ืืขื ืืื ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื ืืื ืืืึธืก ืขืจ ืืื ืืืฆื ืืืืฃ ืื ืกืขืจืืืขืจ. ืึธืืขืจ, ืืืจ ืืืื ืฆืืจืืงืงืจืืื ืื ืงืึทืืืืขืจื ืคืื ืื ืฉืืกืขืจ ืฉืคึผืืืขืจ, ืืื ืขืก ืืขื ืขื ืขืืืขืืข ืกืืืืช ืคึฟืึทืจ ืืขื.
ืขืจืฉืืขืจ, ืขืก ืืืคึผืจืืืื ืงืืึทืกืืขืจืื ื: ืืืจ ืงืขื ืขื ื ืืฆื ืื ืืขืืืข ืืฉืืืืช ืฉืืึทื ืคึฟืึทืจ ืึทืืข ืคึผืืืึทืขืจืก ืืื ื ืึธืขื ื ืคึผืื ืืก.
ืฆืืืืืื ืก, ืืื ืึทืืข ืจืืึทืงืึทืกืื ืืื ืึธืืืืขืจืืึทืคึผืก ืืืจ ืฉืืขื ืืืง ืืืกืฉืืืกื ืื ืงืึทืืืืขืจื ืคืื ืื ืฉืคึผืืืขืจ ืืืึธืก ืึธืื ื ืื ืึทืืืืึทืืื ืึธืืขืจ ืคึผืจืึทืืืฉืขืงืืึทืื. ืืื ืืื ืึธ ืกืงืืืึทื, ืคึผืืืึทืขืจืก ืงืึธื ืืจืึธืืืจื ืืืื ืึทืกืึธืจื, ืืืึธืก ืืึธืื ืืึทื ืฅ ื ืื-ื ืึธืจืืึทื ืืืฉืืึทืืึทืืจื ืืืื ืฉืืืขืจ ืกืืึทื ืืึทืจืืก. ืืคืืื ืืืื ืืขืจ ืฉืคึผืืืขืจ ืืจืืืขื ืืื ืึท ืืืืขืืืืื ืืืขื ืืืื ืงื ืืื ืื ืงืืื ืก ืืจืืึทืขืงืืึธืจืืข ืืืื ืืืจื ืื ืฉืคึผืืืขืจ ืก ืืืื ืึทืกืึธืจ ืงืึทืืืืืขืจ, ืื ืงืืื ืืืขื ืืืื ืึธืจืืจื ืขืก.
ืืจืืื ืก, ืืืจ ืจืขืืขื ืขื ืื ืฉืืขืืขืก ืคืื ืื ืืืึธืคื ืคืื ืื ืืืื ืึทืกืึธืจ ืึธืืขืจ ืื ืคืื ื ืคืื ืึทืคึผืืึทืงืืืฉืึทื ืคืื ืื ืคืืืืงืืื ื ืืฆื ืื ECS ืืึทืื ืืคืืื ืืืืืขืจ ืื ืึธื ืืืื ืคืื ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื.
ืืื ืึท ืจืขืืืืืึทื, ืื ืคืึทืงืืืฉ ืฉืืขืืข ืคืื โโืื ืงืึทืืืืขืจื ืคืื ืื ืึธืคึผืฉืืื ืงืึทืืคึผืึทื ืกืืืืึทื ืฉืคึผืืืขืจ ืืื ื ืื ืืืืืืืง ืคึฟืึทืจ ืืื ืื, ืึทืืื ืืืจ ืืขื ืืืขื ืึท ืืขืจ ืคึผืจืึธืืืงืืืื ืืื ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื ืกืืืคึผืืขืจ ืืืขื.
ื ืขืืืืึธืจืง ืืืืืึทื ืกื ืงืขื ืขื ื ืื ืคืฉืื ืืืื ืึทืืืขืงืืขื ืืืขื, ืขืก ืงืขื ืขื ื ืึธืจ ืืืื ืืึทืกืงื. ืืื ืงืืื ืื ืืขืจืข ืืืคึฟื ืคืื ืคืึทืจืฉืืขืืื ื, ืกืขืจืืืขืจ ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื ืืื ืืืื ืืจืืืืึธืคืคืก. ืขืก ืืืคึผืจืืืื ืื ืืืืืื ื ืืขืจืคืึทืจืื ื ืคืื ืื ืฉืคึผืืืขืจ ืืืึธืก ืืื ืฉืืกืขืจืืึท ืืืืฃ ืื ืงืึธืกื ืคืื ืื ืฉืคึผืืืขืจ ืืืึธืก ืืื ืฉืึธืก. ืคึฟืึทืจ ืืื ืึธ ืกืงืืืึทื, ืึธืืขืจ, ืื ืืจืืจื ืืึธ ืืื ืืขืืืขื ืงืืึธืจ ืืื ืืขืจ ืืึธื.
ืคืื ืงืืจืก, ืึทืืข ืืขื ืืืื ืืื ืฆื ืืืื ืืึทืฆืึธืื ืคึฟืึทืจ ืื ืืขืืืืงืกื ืงืึทืืคึผืืขืงืกืืื ืคืื ืื ืกืขืจืืืขืจ ืงืึธื ืืื ืึท ืืึทื ืฅ - ืืืืืข ืคึฟืึทืจ ืคึผืจืึธืืืจืึทืืขืจื ืืื ืฉืคึผืื ืืืืืื ืขืจื. ืืืื ืคืจืืขืจ ืื ืกืืืืึทืืืืฉืึทื ืืื ืืขืืืขื ืึท ืคึผืฉืื ืกืึทืงืืืขื ืืฉืึทื ืจืืคื ืคืื ืกืืกืืขืืขื, ืืขืืึธืื ืืื ืึธืคึผืฉืืื ืคืึทืจืืืืืงืื ื, ื ืขืกืืขื ืืืคึผืก ืืื ืฆืืืืืื ืืจืืืก ืืื ืขืก. ืืืจ ืืืื ืคืืจืืจืืื ืึท ืคึผืืึทืฅ ืคืื ืื ืฆื ืืึทืื ืขืก ืืึทืงืืืขื ืฆื ืึทืจืืขืื ืืื.
ืืื ืื 2019 ืืืขืจืกืืข (ืืื ืืคึฟืฉืจ ืึท ืืืกื ืคืจืืขืจ), Unity ืฆืืืขืืขืื ืคืื ืฉืืืฆื ืคึฟืึทืจ ืคืจืืึท ืืฉืืืืช ืกืื ื. ืืืจ ืืืคึผืืึทืืขื ืึทื ืืื ืืืืฃ ืื ืกืขืจืืืขืจ ืึผืืขื ืืืืื ื ืึธื ืื ืืขืจืืืึทื ืืืงื, ืืืืึทื ืืืจ ืืขืืืืื ืฆื ืืขืฉืืืื ื ืืึทืงืืืขื ืืึทืคืจืืึทืขื ืคืื ืื ืืฉืืืืช ืืืขืื ืคึผืจืึธืกื ืืื ืึทืืข ืจืืื.
ืืืจ ืืึธืื ืืขืืขืื ืืขืืขืจ ืฉืคึผืื ืฆืืืขืจ ืืืื ืืืืืขื ืข ืืฉืืืืช ืกืฆืขื ืข ืืื ืึทืืื ืืืืืึทื ืืืืึทื ืื ื ืืื ืฆื "ืืืกืืขืงื" ืื ืกืฆืขื ืข ืคืื โโืื ืืึทืื ืคืื ืื ืืจืืืืงืข ืฆืืืขืจ ืืืืืขืจ ืงืึทืืงืืึทืืืืืื ื ืื ืกืืืืึทืืืืฉืึทื. ืขืจืฉืืขืจ, ืขืก ืืื ืึท ืืึทืืืืืืง ืคืึทืจืืจืขืกืขืจื ืืื ืคึผืจืึธืืืึทืงืืืืืืื. ืฆืืืืืื ืก, ืขืก ืืื ืืขืืืขื ืฆื ืืึทืงืืืขื ืืึทืคืจืืึทืขื ืคืื ืึท ืืึทื ืฅ ืงืืึทืก ืคืื ืืึทืื ืืืึธืก ืืขื ืขื ืืืืคืืขืฉืืื ืขื ืืืื ืืขืจ ืคึผืจืึธืืจืึทืืืกื ืืขืืืื ืึท ืืขืืช ืืื ืื ืงืืื ืึทืคึผ ืงืึธื ืคืื ืื ืกืฆืขื ืข ืืืขื ืึทืืื ื ื ืืึท ืฉืคึผืื ืขืืขืืขื ืื. ืืืขืืืข ืืขืืชืื ืืขื ืขื ืฉืืืขืจ ืืขืืืขื ืฆื ืืขืืืืืจื, ืืื ืืื ืืืื ืืคืืืื ืืขืืจืืื ืื ืืขืจ ืืฆื ืคืื ืคืืืืฉืข ืืืืขืงืื ืืื ืืืื ืฆืืืขืจ'ืก ืกืฆืขื ืข ืืื ืืื "ืืขืคืืืืื" ืืื ืื ืื ืืขืจื ืฆืืืขืจ.
ืืื ืืขืจืฆื, ืืืจ ืืึธืื ืืืจืืืขืงืึธืื ืขืืืขืืข ืคืึธืจืฉืื ื ืฆื ืื ืืฉืืืืช ืกืื ื ืงืขื ืขื ืืืื ืืขืืืืื ื ืฆื ืงืจืึธื ืื ืืขืฉืืืืข ืคืื โโืื ืืฉืืืืช ืืืขืื. ืึทื ืืื, ืงืึทื ืืืฉืึทื ืึทืื, ืึทืืึทืงืืื ื ืืฉื ืืืื ืกืฆืขื ืข ืฆื ืืขืืขืจ ืฆืืืขืจ, ืึธืืขืจ 30 ืกืื ื, ืืื ืืึทืื ืึท ืกืืืงืืืง ืืึทืคืขืจ ืคืื ืืื, ืืื ืืืึธืก ืฆื ืงืจืึธื ืื ืืขืฉืืืืข. ืืื ืึทืืืขืืืื, ืื ืึธืคึผืฆืืข ืืื ืืขืืืขื ืืจืืขืื, ืึธืืขืจ ืืืจ ืืึธืื ื ืืฉื ืื ืกืืจืืืขื ื ืขืก: ืขืก ืืื ื ืืฉื ืืืืึทืื ืงืืื ืืขืฉืืืข ืคืึทืจืืจืขืกืขืจื ืืื ืคึผืจืึธืืืึทืงืืืืืืื, ืึธืืขืจ ืคืืจืืื ืื ืืึทื ืฅ ืจืืืืงืึทืืืฉ ืขื ืืขืจืื ืืขื. ืขืก ืืื ืฉืืืขืจ ืฆื ืคืึธืจืืืกืืึธืื ืืื ืืขืจ ืกืขืจืืืขืจ ืืืึธืื ืืืื ืืืืืืืื ืืืขื ืืจืืขืื ืคึฟืึทืจ ืึท ืืึทื ื ืฆืืึทื ืืื ืึทืืื ืคืืืข ืกืื ื. ืืขืจืืืขืจ, ืืืจ ื ืึธืืคืึธืืื ืืขื ืืื: "ืืืื ืขืก ืืื ื ืืฉื ืฆืขืืจืืื, ืืึธื ื ืื ืคืึทืจืจืืืื ืขืก'.
ืืงืืจ: www.habr.com