Legend of Grimrock 2: компоненты вместо классов

Новости о разработке Legend of Grimrock 2.

Объектно-ориентированная модель оригинальной игры была основана на классах. Так у каждого класса были фиксированный набор анимации и поведения – например, мерцание факелов. При таком подходе возникает одна неприятность – внутри многих классов идет повторение кода. И факелы и заклинание «огненный шар» и мерцающие кристаллы использовали одинаковой код. В итоге приходилось тратить массу времени на отладку вроде бы одинакового кода. Также возникали проблемы с наследование классов. Например, было не ясно как поступить, если понадобилась статуя с анимацией. Добавить новый класс или реализовать анимацию в текущем и тем самым сделать все статуи в игре анимированными. Были трудности и с состояниями вроде «замороженности». Для каждого класса требовалось добавить свой код. Но оригинальная игра была относительно невелика и классы в принципе работали удовлетворительно. А вот в Grimrock 2 такая система уже не работает и потому… В новой игре использована так называемая компонентная система, когда каждый объект состоит из набора уникальных компонентов, и можно отредактировать только сам компонент не меняя сам класс или объект. Так анимированная статую всего лишь набор из модели, анимации и звука. Таким образом вся система была переписана под компонентный принцип, что было невозможно реализовать в обычном дополнении.

Метки: