Основной подход к архитектуре
Основная архитектура проекта строится на стартерпаке, на этом документе и на принципах SOLID, особенно SRP - каждая отдельная фича должна быть реализована в своем отдельном классе. Причем если для её реализации требуется зависимость, то она должна быть как можно более “узкой”. Например если мы делаем для какого-то бота функцию удара оружием, то нам надо лишь получить в зависимостях класс, предоставляющий только это оружие, а не еще какие-либо другие функции бота, по типу бега. Не надо делать мега-классы для сложных сущностей, весь их функционал надо в достаточной степени разделить на разные классы, которые будут находится в разных местах иерархии сущности.
Если же вы хотите реализовать какую-либо глобальную логику для игры, то создавайте для этого синглтон менеджеры.
При реализации фич старайтесь использовать уже имеющиеся решения из стартерпака, если они присутствуют в нём. А также для оптимизации желательно использовать эвенты, чтобы сообщать о изменении состояния игры нужным частям кода, чтобы только в эти моменты делать что-то в своей логике, а не мониторить состояние игры в update (или в таймере). Не допускать более одной одинаковой реакции на одно событие, и не допускать вызова множество одинаковых событий в один момент, если того не требует логика.
Если используем малоизвестный паттерн или практику, то будет неплохо оставить ссылку в этом классе на гайд или статью этой практики.
Last updated