2011-01-05 10 views
5

Hace poco aprendí la idea básica (en la más áspera de las definiciones) de la programación de la Entidad y me gustaría obtener más información. El concepto que obtuve fue más que una simple abstracción masiva. ¿Es esto correcto?Tutoriales de programación de entidades?

+0

TekPub ......... –

+0

No dude en editarlo de nuevo, pero eliminé C++ ya que la pregunta no lo menciona (y hay un límite de 5 etiquetas), y desarrollo de juegos agregado, ya que usted mencionó a Tony Hawk en uno de sus comentarios –

+0

Eso es aceptable, gracias por la consideración. En cuanto al aspecto de Tony Hawk, estaba buscando algo que utilicé Entidades nuevas. En realidad, fue un artículo que leí uno de los principales desarrolladores que me hizo sentir curiosidad por él. – AedonEtLIRA

Respuesta

2

Entity es simplemente una abstracción de base para objetos en un gráfico de escena/"su mundo". Nada mas.

Cada motor de juego define y usa entidades de diferentes maneras. Algunos motores de juego pueden asociar coordenadas mundiales o propiedades comunes a entidades, otros no. Dado que varía de un juego a otro, no hay mucho más que decir al respecto.

Si no las ha leído, puede ser útil leer más sobre abstracciones de programación. El polimorfismo, las clases base abstractas, el Principio de sustitución de Liskov (LSP) o el libro Código completo pueden ser buenas cosas para observar. O podría ser una buena idea profundizar y aprender mucho más sobre un motor de juego específico, y usar un SDK para desarrollar algo para él (UDK se ve muy bien, por ejemplo).

+0

Gracias que era lo que estaba buscando, tendré que echar un vistazo a esos libros. Entonces, ¿eso es realmente lo que es, simplemente un montón de objetos "físicos" masivos y abstractos? Por físico me refiero a cualquier cosa que ocupe espacio en un mundo. ¿Es realmente una forma elegante de abstracción de clases? Ej .: la clase c extiende la entidad. c tiene todo lo que necesita pero lo representa con una entidad que tiene un puntero a la clase c? – AedonEtLIRA

+1

@AedonEtLIRA: Sí, solo una abstracción. Algunos juegos tienen entidades no físicas, también. Al igual que cualquier abstracción, cuantas más características se encuentren en la abstracción base, más piezas del motor del juego podrán usar. Demasiadas características, sin embargo, y podría impedir que algunas piezas lo usen. Por ejemplo, si agrega coordenadas mundiales, no puede tener entidades no físicas (que podrían usarse para desencadenantes de AI, estado global, secuencias de comandos de eventos, etc.). Pero tal vez las entidades no físicas no tienen sentido, o la arquitectura del juego tiene una mejor manera de manejarlas. Todas las cosas específicas del juego. –

+1

@AedonEtLIRA: Puedo ver si puedo encontrar un tutorial para ti, pero básicamente es solo una gran lista (o en C++, tal vez std :: vector ), que podrías recorrer y llamar a métodos virtuales, o obtener/configurar miembros en. Probablemente habría un método de 'Actualización', por ejemplo, que le permitiría hacer física o ejecutar la lógica del juego. Esas entidades pueden tener un montón de otras clases adjuntas, o existir en más de una lista, para diferentes partes de su motor. –

3

Por lo que puedo decir, no parece ser un método muy conocido. La única información que pude encontrar parece respaldar lo que pensé: la programación de 'Entidad' significa tener varios objetos que se pueden usar de forma intercambiable en una estructura de datos (como el gráfico de escena de un juego). Además, la entidad debería poder definirse en datos, lo que significa que una entidad podría construirse a partir de, digamos, un archivo XML, o igualmente importante, anotarse en un archivo XML y volverse a cargar desde allí.

Por lo que recuerdo, Quake usó el término 'entidad' en el día para referirse a objetos no estáticos (es decir, cualquier cosa menos el árbol BSP que formaba el terreno). Cosas como luces, puertas, etc.

Cuestiones relacionadas