Motores en el desarollo de VideoJuegos
Por Santiago Zapata – 2006
Qué es un motor?
Un motor, en el ámbito de desarrollo de videojuegos y sistemas de simulación, es un mecanismo centralizado multicapas mediante el cual las entidades y los eventos que ocurren dentro del mundo del juego son controlados y mostrados al jugador.
Existen diferentes tipos de motores, cada uno de los cuales se especializa en una de las funcionalidades del juego, los cuales trabajan en conjunto para al final lograr brindarle al jugador una experiencia completa de juego; la idea al diseñar un juego es lograr un equilibrio entre el nivel de especificación que queremos para cada uno de estos motores, es decir que tan acoplado está a este juego específico, y las posibilidades que deja abiertas para el desarrollo posterior de otros juegos mediante la reutilización de sus componentes.
Motor Lógico
Se encarga de manipular los actores dentro del juego: definir el órden en el que actúan, procesar sus acciones y hacer que sean efectivas dentro del mundo, así como de controlar los diferentes eventos causados por estas acciones y comunicárselos a la interfaz de usuario o motor gráfico.
Este motor puede ser síncrono o asíncrono, dependiendo del estilo de interacción esperado en el juego y el número de jugadores simultáneos que este permita; normalmente se usa un motor asíncrono basado en hilos o subprocesos cuando tenemos muchas acciones concurrentes ejecutadas por diferentes jugadores, mientras que un motor síncrono puede ser la mejor alternativa para juegos por turnos o mono-jugador.
El órden de interacción de los actores dentro del mundo está determinado por una estructura como lo puede ser una cola simple o de prioridades, con la particularidad de que cada vez que se saca un elemento de la cola, este vuelve a entrar con la menor prioridad. Esto es en el caso de un motor síncrono.
Por otro lado, para un motor asíncrono, debemos de implantar un mecanismo tipo servidor que esté escuchando constantemente las peticiones hechas por cada cliente, revisando la prioridad que tiene para actuar con el fin de no permitir a uno de los actores consumir los turnos de proceso del motor sin darle cabida a la actuación de los otros.
Motor Gráfico
Se encarga de darle apariencia a las entidades dentro del juego, como lo son el mundo físico en sí, los actores que se encuentran dentro de este y los objetos que pueden ser manipulados dentro del mismo; la idea al diseñar el motor gráfico es que no esté acoplado completamente a una herramienta o libreria gráfica, tales como lo son OpenGL o SDL, sino que permita intercambiar interfaces de IO con relativa facilidad.
Dentro del desarrollo de este motor, encontramos un concepto denominado ‘perspectiva’ del juego, pudiendo encontrar diferentes categorías, entre las cuales se pueden nombrar las siguientes:.
SideScrollers
Esta perspectiva, denominada comúnmente “De Lado”, nos muestra un mundo en el cual la interacción es en dos dimensiones; ejemplos clásicos son las series de Mario, Metroid, MegaMan, entre otros.
El motor gráfico para un sidescroller normalmente tiene su punto de enfoque en el personaje del jugador, desplazándose por el nivel al mismo tiempo que este lo hace. En ocasiones el punto de enfoque se encuentra siempre centrado en el jugador mientras que en otras ocasiones solo se desplaza cuando el jugador se acerca a los límites de la pantalla.
Hoy en día es común que los juegos sidescroller tengan un ambiente tridimensional, aún cuando la interacción es (mayormente) en 2D; estos juegos se caracterizan por ser un híbrido entre el movimiento en 3D y el sidescroller, distinguiendose por que la mayoría de la interacción se hace en escenarios que cuentan con un plano base con dimensiones de ancho mucho mayores que las de alto o viceversa. En estos casos el motor gráfico se toma como tridimensional y no sidescroller, aún cuando el motor lógico maneje las interacciones en dos dimensiones.
Top-View
La perspectiva “Desde arriba” es común en los juegos de estrategía y en algunos juegos de acción; se trata de una cámara localizada en un ángulo de 90 grados sobre el área de juego; ejemplos de esta perspectiva son Civilization I, Godzilla II, entre otros.
3/4 View o Isométrico
Esta fué una de las perspectivas más populares antes de que los juegos en 3D pudieran ser desarrollados con facilidad. Se trata de una cámara que permite apreciar las tres dimensiones del mundo aún cuando se hace rendering con imágenes planas. Ejemplos: Super Mario RPG, Paperboy, Q-Bert
Tridimensional
Es una categoría bastante amplia que cubre diferentes estilos de interfaces.
Podemos encontrar por ejemplo, algunos híbridos de gráficos sidescroller y 3D, los cuales aprovechan la jugabilidad y simplicidad de interacciones en 2D y le añaden una capa de presentación tridimensional al mundo lo cual lo hace más atractivo para el usuario.
También se tienen los híbridos entre Isométricos y 3D como lo es Warcraft III, un juego en el cual la interacción se hace en forma isométrica aún cuando sus gráficos son tridimensionales.
Tenemos los juegos tridimensionales que no necesitan un ambiente detallado, como lo son los shooters o incluso algunos puzzles, los cuales aprovechan las características tanto de presentación como jugabilidad de 3D, pero no requieren de un ambiente completo.
Por último, tenemos los juegos completamente 3D, como lo son SuperMario 64 o The Legend of Zelda; en estos juegos el jugador tiene que interactuar completamente con un mundo detallado en 3D, por lo cual se manejan diferentes cámaras o perspectivas que le permiten al jugador cambiar el punto de enfoque a su conveniencia.
Motor de Efectos Ambientales
Este motor complementario se encarga de mejorar la experiencia del usuario, especialmente en juegos tridimensionales. Se basa en los eventos que ocurren en el motor lógico para reproducir un efecto ya sea auditivo o visual a partir de la posición relativa del punto de enfoque principal del juego con respecto al lugar o lugares en los que ocurre el evento.
Algunos juegos simplemente no necesitan de este motor, o prescinden de él debido a que es un esfuerzo adicional que requiere recursos especializados en este tipo de efectos que no son fáciles de conseguir.
Historia de Versiones
Version 0.2 – Febrero 18 de 2006 | Formateo en HTML, Correcciones menores. |
Version 0.1 – Julio 13 de 2006 | Versión Inicial |
One thought on “Motores en el desarollo de VideoJuegos”