Итак, я работаю над созданием 2D-игрового движка для игр с защитой башни. В моей игре я использую дизайн системы компонентов Entity (ECS), что позволяет повысить гибкость и расширяемость. Тем не менее, я смущен тем, как я буду реализовывать пользовательские правила, определенные пользователем. Например, пользователю может потребоваться правило, в котором говорится, что при столкновении двух конкретных объектов возникает взрыв с определенным радиусом. Или ей может понадобиться правило, в котором говорится, что когда здоровье определенного лица достигает определенной точки, скорость увеличивается на определенную величину. Или скажем, что, когда сталкиваются два других сущности, Уровень автоматически завершается и переходит на следующий уровень.Как разрешить пользовательские правила в дизайне Game Engine?
Дело в том, что я хочу, чтобы пользователь мог определять пользовательские правила и события, и я не совсем уверен, как включить эту функциональность в свой дизайн. Одна из моих идей заключалась в создании объекта правила, который состоит из списка Predicates и List of Actions, но я не совсем уверен, где эти объекты правил должны существовать или где их нужно проверять/запускать, или если они " даже хорошая идея.
Так философия дизайна ECS является то, что не должно быть никакой логики в компонентах или объектах. Идея состоит в том, что логика должна быть в разных системах. Но даже, как я могу позволить пользователю создавать пользовательские правила? Кажется, что вы предлагаете мне выполнить правила перед вами.? –
В игровых механизмах я работал с логикой, как правило, внутри компонентов или объектов. Однако некоторые компоненты могут быть очень конкретными. Даже ваши пользовательские правила не могут быть безграничны, и в конце концов им нужно изменить конечное количество свойств. – Cuthbert