Всем привет. Я чуть-чуть переделал логику своего движка. Хочу коротко рассказать об этом. Как было Как я уже писал в предыдущей статье, геймплей работает по принципу стейт-машины. Есть граф состояний. Есть набор игровых параметров. И игра переходит между состояниями вдоль ребер. Каждый переход сопровождается изменениями в игровых параметрах. Как стало Я реализовал идею "вложенных графов". Теперь можно создать несколько, так называемых, контекстов. Каждый контекст это Попадая в определенный узел, движок создает новый контекст. Дальше игра перемещается по состояниям нового графа. Как будто этот граф находится внутри узла предыдущего. Определенные ребра могут "закрывать" контекст. И игра возвращается к узлу, который вызвал этот контекст. Это чем-то похоже на вызов функции. При этом существует возможность "вернуть результат" из функции. Создаваемые контексты складываются в "стек вызовов", а затем удаляются в обратном порядке. Давайте рассмотрим примеры. Пример Hamster Chainsaw (v3) Я