Лучший способ организовать сущности в игре?

Допустим, я создаю игру OpenGL на C ++, в которой будет создано много объектов (врагов, персонажей, предметов и т. Д.). Мне интересно, как лучше организовать их, так как они будут создаваться и уничтожаться в реальном времени в зависимости от времени, позиции / действий игрока и т. Д.

Вот что я подумал до сих пор: у меня может быть глобальный массив для хранения указателей на эти объекты. Текстуры / контекст для этих объектов загружаются в их конструкторы. Эти объекты будут иметь разные типы, поэтому я могу привести указатели, чтобы получить их в массиве, но позже я хочу иметь функцию renderObjects (), которая будет использовать цикл для вызова функции ObjectN.render () для каждого существующего объекта.

Я думаю, что пробовал это раньше, но я не знал, с каким типом инициализировать массив, поэтому я выбрал произвольный тип объекта, а затем произвел все, что не было этого типа. Если я помню, это не сработало, потому что компилятор не хотел, чтобы я разыменовывал указатели, если он больше не знал их тип, даже если данная функция-член имела то же имя: (* Object5) .render () <-doesn не работает?

Есть ли способ лучше? Как коммерческие игры типа HL2 справляются с этим? Я предполагаю, что должен быть какой-то модуль и т. Д., Который отслеживает все объекты.

Ответы на вопрос(5)

Ваш ответ на вопрос