Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Teoria De Motores

Iniciado por DraKKaR, 25 de Agosto de 2005, 03:39:07 PM

« anterior - próximo »

tiutiu

 Como todos, yo tambien he tenido mis dudas sobre que sistema utilizar.
Usar punteros no es muy recomendable a la hora de exponerlos en una interfaz, ya que cualquier usuario puede hacer un delete y ya te han jodido.

La parte del motor que vayas a exponer al resto de usuarios yo la haria usando el sistema de handles. Aqui tienes un articulo sobre un sistema generico de handles para un manager de recursos, yo lo tengo implementado y va bastante bien (y rapido). Puedes implementar refcounting rapidamente.

Para usos internos de recursos en el motor, puedes usar smart pointers (o shared pointers) para compartir texturas, nodos, mallas y todo eso entre los distintos modulos. Claro que para muchas funciones internas puedes (y de hecho deberias) tirar de punteros por cuestiones de eficiencia.

Recuerda que la finalidad de estos sistemas es protegerte de los errores provocados por los usuarios. Si solo vas a usarlo tu, puedes fiarte de los punteros o usar shared pointers simples.  
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos

zupervaca

 queda como alternativa hacer que los destructores de las clases sean privados haciendo que solo desde un sitio se pueda realizar la operacion por ejemplo de eliminar una entidad o modelo 3d, lo que esta claro es que el programador tiene que adaptarse al engine que utilice y nunca debe de ser necesario preparar tu codigo fuente por si la pifia, siempre y cuando lo tengas todo documentado no deberia de haber problema alguno, no obstante se esta entrando en tema de que queremos del motor, ya que algunos juegos no requieren que se tengan que eliminar recursos durante la partida de un nivel, pero en otro puede que si y tengamos que andar liberando memoria y asignandola sin parar, un ejemplo seria el juego del lineage2 que necesita liberar y asignar memoria cada vez que lee un bloque del mapa y uno que no le hace falta es el quake3 que lo lee todo al principio y cuando pasa de nivel se libera todo, recordar que lo mas importante de un motor es no meter codigo innecesario

saludos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.