Визуальный компонент, получать информацию или собирать информацию?

У меня есть два компонента, основной компонент и визуальный компонент. Основной компонент выполняет всю игровую логику и выполняет все вычисления клиент / сервер. Этот компонент всегда находится на объекте, как на стороне клиента, так и на стороне сервера.

Тогда у меня есть визуальный компонент, который только на стороне клиента.

Мой вопрос заключается в том, должен ли основной компонент сообщать визуальному компоненту информацию, в которой он нуждается, и визуальный компонент совершенно не знает о существовании основного компонента, или же визуальный компонент всегда обновляет и извлекает информацию из основного компонента, а основной компонент совершенно не знает о визуальный компонент существует?

1 ответ

Решение

На мой взгляд, самый простой подход заключается в том, что основной компонент не должен знать о визуальном компоненте. Визуальный компонент должен знать о базовом компоненте, чтобы запрашивать его, прослушивать события, обновлять его и т. Д. Таким образом, визуальный компонент можно заменить, не затрагивая основной компонент, а также система может поддерживать множество различных визуальных компонентов, если вы перейти к мультиплатформенной игре, если основные компоненты также мультиплатформенны. Также важно, чтобы компоненты были слабо связаны. Чтобы легко заменить компоненты, спроектируйте систему с самого начала в слабосвязанной форме.

Для вдохновения, посмотрите эти отличные обзоры некоторых игр id с открытым исходным кодом http://fabiensanglard.net/quake3/. Я считаю, что в обзорах упоминается архитектура каждой игры.

Другие вопросы по тегам