Teniendo un mundo, lo siguiente es rellenarlo de cosas con las que el jugador pueda interactuar, que es lo que denominamos entidades. Las entidades existen de muy diferentes modos, las hay visibles y no visibles. Las visibles son cosas como el jugador, los enemigos, los disparos, items para recoger, etcétera. Las no visibles normalmente son para activar eventos y realizar acciones, por ejemplo que si el jugador se acerca a una zona, se abra automáticamente una puerta.
Bajo estas circunstancias se vislumbra que no es trivial el tema de las entidades y ciertamente no lo es. A la hora de hacer un juego tenemos que hacer dos cosas con las entidades:
- Definir las entidades a un nivel general, como por ejemplo la entidad “Monstruo”. Hay que tener en cuenta que este tipo de definición se realiza en el código del juego.
- Luego tenemos que definir las entidades a nivel detallado, como por ejemplo el tipo de “Monstruo” llamado “Gárgola”, que tendrá un nivel de vida y ciertas propiedades determinadas. En este nivel, la definición se realiza en ficheros de texto que el juego interpreta, para crear enemigos específicos a partir de entidades generales.
¿Por qué separarlos? Obviamente podrían definirse en el código todo de forma detallada, pero sacando las definiciones específicas fuera, podemos obtener ciertas ventajas, como poder realizar mods de nuestros juegos más fácilmente o no tener que recompilarlo todo si solo tenemos que cambiar un numerito de alguna propiedad.
Las entidades tienen propiedades que las definen, suelen tener un comportamiento predefinido como respuesta a cualquier evento que queramos tener en consideración. Las que son visibles obviamente tienen un aspecto que suele estar formado por un conjunto de animaciones y dependiendo del estado en el que esté la entidad se muestra una u otra, ya que no es lo mismo estar corriendo que estar quieto esperando el bus.