¿La mejor manera de organizar entidades en un juego?

Digamos que estoy creando un juego OpenGL en C ++ que tendrá muchos objetos creados (enemigos, personajes jugadores, elementos, etc.). Me pregunto la mejor manera de organizarlos, ya que se crearán y destruirán en tiempo real según el tiempo, la posición / acciones del jugador, etc.

Esto es lo que he pensado hasta ahora: puedo tener una matriz global para almacenar punteros a estos objetos. Las texturas / contexto para estos objetos se cargan en sus constructores. Estos objetos tendrán diferentes tipos, por lo que puedo convertir los punteros para colocarlos en la matriz, pero luego quiero tener una función renderObjects () que usará un bucle para llamar a una función ObjectN.render () para cada objeto existente. @

Creo que he intentado esto antes, pero no sabía con qué tipo inicializar la matriz, así que elegí un tipo de objeto arbitrario y luego lancé cualquier cosa que no fuera de ese tipo. Si recuerdo, esto no funcionó porque el compilador no quería que yo desreferenciara los punteros si ya no conocía su tipo, incluso si una función miembro dada tenía el mismo nombre: (* Object5) .render () <-doesn no funciona

¿Hay una mejor manera? ¿Cómo manejan esto los juegos comerciales como HL2? Me imagino que debe haber algún módulo, etc. que haga un seguimiento de todos los objetos.

Respuestas a la pregunta(5)

Su respuesta a la pregunta