Наследование в играх на самом деле является одной из худших вещей, которые вы можете сделать, особенно в отношении сущностей. Прочитайте это почему. Композиция над наследованием проделывает долгий путь с играми. Что касается других областей вашего двигателя, это не имеет большого значения. Скажем, например, что вы делаете вызов какой-либо внешней сетевой службе, тогда вы можете наследовать один универсальный тип службы, например. HTTPService и SocketService - во многом как в корпоративных приложениях, к которым вы привыкли.
Если ваша игра не очень просто, вы будете хотеть использовать сущности (CBE) архитектуру на основе компонентов. Общая идея заключается в том, что для сущностей причина, по которой они так часто составляются, а не наследуются, заключается в том, что вы не можете знать до времени выполнения, какие возможности у данной сущности будут, Например, возьмите корабль игрока в космическом шутере. Вы не знаете до определенного момента во время игры, какое оружие, броня, системы (т.е. компоненты), которые игрок собирается подобрать, купить, продать, потерять, уничтожить и т. Д. Таким образом, единственный реалистичный способ смоделировать это через композицию объектов. Плюсом в этом сценарии является то, что вы также можете иметь полностью настраиваемых врагов, построенных таким же образом, а не врагов, которые всегда одинаковы каждый раз, когда вы видите этот тип врага. Таким образом, с CBE вы можете увидеть марсианский фрахтовщик и подумать: «Ах, у него только крошечные лазеры, я его снесу», и обычно это было бы правдой, но когда вы попадаете в зону действия внезапно, вы понимаете, что у него большая задница. червоточина Сюрприз Сюрприз!
Компонентация удаляет неявную связь логики, и это ХОРОШО.