Gráficos isométricos en juegos de computadora.

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 26 de febrero de 2021; las comprobaciones requieren 2 ediciones .

El término " isometría " en los juegos de computadora se refiere a algún tipo de proyección paralela (a veces, una proyección dimétrica se denomina erróneamente "isométrica"). El ángulo de visión se desplaza en él, y esto crea un efecto tridimensional y le permite mostrar algunos detalles del entorno que no son visibles cuando se ve desde arriba o desde un lado. También se utilizan los términos "2.5D" y "pseudo-3D".

Con la llegada de los potentes sistemas gráficos, la proyección isométrica se ha vuelto menos popular y ha sido reemplazada por la proyección en perspectiva.

Resumen

En el campo de los videojuegos de computadora, el uso de isométricos se ha vuelto popular debido a la facilidad con la que un sprite 2D y gráficos basados ​​en mosaicos pueden simular un entorno 3D con él. Dado que los objetos no cambian de tamaño según su ubicación en el espacio del juego, no hay necesidad de cálculos complejos de escalas de sprites y modelado de perspectiva visual. Esto permite mostrar grandes espacios 3D en sistemas de juegos portátiles y de 8 y 16 bits. Los problemas de profundidad se pueden resolver con un buen diseño de juego.

Diferencia de la proyección isométrica "real"

La proyección comúnmente utilizada en los videojuegos difiere un poco de la isometría "verdadera" debido a las limitaciones de los gráficos de trama. Las líneas x e y se verían desordenadas si estuvieran inclinadas 30° con respecto a la horizontal. Las computadoras modernas pueden solucionar este problema usando anti-aliasing, pero los sistemas de gráficos más antiguos no admitían suficientes colores o no tenían suficiente poder de procesamiento para hacerlo.

En cambio, los ejes x e y se desviaron 26,565° (0,5 arcotangente) de la horizontal, pero los sistemas de juego basados ​​en píxeles no cuadrados podían mostrar cualquier ángulo, incluida la isometría "verdadera". Por lo tanto, esta forma de proyección puede describirse como una modificación de la proyección dimétrica, ya que en ella solo dos de los tres ángulos entre los ejes (116.565°, 116.565°, 126.87°) son iguales.

Proyecciones similares

El término a menudo se aplica a juegos con una proyección "verdaderamente isométrica", incluidos juegos que usan proyección trimétrica ( Fallout , SimCity 4 ), juegos que usan proyección oblicua ( The Legend of Zelda: A Link to the Past , Ultima Online ), como así como juegos que utilizan una combinación de proyección en perspectiva y vista de pájaro ( Torchlight [1] , Silent Storm [2] ).

Otros ejemplos de juegos que usan proyección oblicua incluyen el SimCity original , EarthBound y Paperboy.

Historia de los videojuegos isométricos

Aunque hubo juegos con verdaderos gráficos 3D en la historia de los juegos de computadora desde principios de la década de 1970, los primeros videojuegos que usaban proyección isométrica en el sentido descrito anteriormente no aparecieron hasta la década de 1980 y eran juegos de arcade.

1980

El primer uso de isométricos en un videojuego es Zaxxon [3] [4] , lanzado en enero de 1982. Era un juego de disparos con desplazamiento isométrico en el que el jugador tenía el control de un avión. También fue uno de los primeros casos de sombras que se muestran en los juegos.

Otro de los primeros juegos isométricos es Q*bert , que Warren Davis y Jeff Lee comenzaron a escribir en abril de 1982 y lo lanzaron en octubre/noviembre de 1982. El juego presentaba una pirámide isométrica estática sobre la que el jugador tenía que saltar.

En 1983, se lanzó el juego de arcade de plataforma isométrica Kongo-Bongo, que se ejecuta en el mismo hardware que Zaxxon. El jugador podía moverse por grandes niveles isométricos, incluido el movimiento hacia arriba y hacia abajo en el eje Z. Lo mismo era posible en el juego de arcade Marble Madness de 1984 .

Durante este tiempo, los juegos isométricos ya no eran exclusivos de las salas de juegos y llegaron a las computadoras domésticas con el lanzamiento de Ant Attack para ZX Spectrum en 1983. El jugador podía moverse en cualquier dirección, ofreciendo total libertad de movimiento, a diferencia del Zaxxon. La vista también se puede girar 90 grados alrededor de su eje. La revista ZX Crash le otorgó el 100% en gráficos [5] .

Un año después, nació un nuevo juego para ZX Spectrum: Knight Lore , que definió el género de los juegos isométricos en los años venideros. Este juego generó muchos clones para computadoras domésticas. Otros ejemplos de esos años incluyen Highway Encounter (1985), Batman (1986), Head Over Heels (1987) y La Abadía del Crimen (1987). Isometrics en esos años no se limitaba a las salas de juegos: existe, por ejemplo, el juego de estrategia Populous en 1987.

1990 y después

Durante la década de 1990, aparecen algunos juegos muy exitosos que utilizan una perspectiva isométrica fija, como Civilization II , Diablo y Fallout . Pero con la llegada de los aceleradores 3D en las computadoras personales y las consolas de juegos, los juegos que anteriormente usaban una perspectiva 2D comenzaron a cambiar a 3D. Esta tendencia también se puede ver en los sucesores de los juegos antes mencionados: por ejemplo, Civilization IV y Diablo III usan 3D real. Si bien Diablo II usó una perspectiva fija como su predecesor, también permitió escalar los sprites para darle un efecto 3D [6] .

Durante la década de 1990, los gráficos isométricos comenzaron a usarse en los juegos de rol de computadora , especialmente en los juegos de rol tácticos, muchos de los cuales todavía usan gráficos isométricos en la actualidad. A fines de la década de 1990, juegos como Vandal Hearts (1996), Final Fantasy Tactics (1997) y Breath of Fire III (1997) utilizaron gráficos en 3D para crear una vista isométrica en la que el jugador podía girar libremente la cámara.

Comparación de coordenadas en la pantalla y en el espacio

Uno de los problemas más comunes con los juegos de programación que usan proyección isométrica (o dimétrica) es la vinculación de las coordenadas en el plano de la pantalla con las coordenadas de la ubicación real del objeto en el espacio isométrico.

Un ejemplo típico es la definición del mosaico debajo del cursor. Un método para hacer esto es usar las mismas matrices de rotación que definieron la vista isométrica. Luego, al dividir los valores de x e y por el ancho y la altura del mosaico y redondeando hacia abajo al valor más pequeño más cercano, podemos obtener las coordenadas x e y en el espacio isométrico.

Otra forma, que es menos intensiva desde el punto de vista computacional y funciona si el método se llama cada cuadro, se basa en la suposición de que tenemos una cuadrícula que se ha girado 45 grados y luego se ha reducido a la mitad como se describe anteriormente. Primero, las coordenadas del mosaico se encuentran en la cuadrícula virtual (cuyas líneas son paralelas a los bordes de la pantalla), que llamamos x virtual e y virtual. Como puede ver, las coordenadas de los mosaicos de la cuadrícula virtual en el eje central coinciden con las coordenadas de los mosaicos en el eje central del espacio isométrico.

Un mosaico de cuadrícula virtual que se encuentra una posición a la derecha de la línea central coincidirá con un mosaico de espacio isométrico que se encuentra una posición menos en el eje y (en comparación con su contraparte virtual). Puede derivar una fórmula que calculará la coordenada y de un mosaico en el espacio isométrico, restando de la y virtual la diferencia entre la x virtual de la línea central y la x virtual del mosaico deseado.

Código de ejemplo en C (asumiendo que las variables tienen los valores correctos):

float virtualTileX = screenx / virtualTileWidth ; float virtualTileY = screeny / virtualTileHeight ; // Algunos sistemas de visualización tienen el origen en la parte inferior izquierda y el mosaico en el mapa en la parte superior izquierda, por lo que tenemos que voltear y float inverseTileY = numberOfTilesInY - virtualTileY ; float isoTileX = inverseTileY + ( virtualTileX - numberOfTilesInX / 2 ); float isoTileY = inverseTileY - ( virtualTileY - numberOfTilesInY / 2 );

Un mosaico en la cuadrícula virtual contendrá más de un mosaico isométrico y, dependiendo de dónde se presione el botón del mouse, se debe asignar a las coordenadas adecuadas. La clave de este método es que las coordenadas virtuales son números de punto flotante, no enteros. Los x e y virtuales pueden ser, por ejemplo, (3.5, 3.5), lo que significa el centro del tercer mosaico.

Notas

  1. McDougall, Revisión de la luz de las antorchas de Jaz . Radar de juegos (4 de noviembre de 2009). Consultado el 2 de febrero de 2015. Archivado desde el original el 12 de abril de 2012.
  2. O'Hagan, Steve Vistas previas de PC: Silent Storm . ComputerAndVideoGames.com . Future Publishing Limited (7 de agosto de 2008). Fecha de acceso: 13 de diciembre de 2007. Archivado desde el original el 19 de febrero de 2012.
  3. Bernard Perron & Mark JP Wolf (2008), Lector dos de teoría de videojuegos , p. 158 Archivado el 25 de febrero de 2015 en Wayback Machine , Taylor & Francis , ISBN 0-415-96282-X
  4. Zaxxon  en el sitio web Killer List of Videogames
  5. Krikke, J. Axonometría: una cuestión de perspectiva  (neopr.)  // Computer Graphics and Applications. — Instituto de Ingenieros Eléctricos y Electrónicos . - T. 20 , N º 4 . - S. 7-11 . -doi : 10.1109/ 38.851742 .
  6. Diablo II se acerca a su finalización mientras Blizzard se prepara para la fase final de las pruebas beta , FindArticles , BNET Business Network  (mayo de 2000). Archivado desde el original el 10 de julio de 2012. Consultado el 29 de septiembre de 2008.