Proyecto OpenGL: Combate Star Wars está inspirado en el juego de mesa Combate Naval. Este fue parte de un proyecto de un curso de gráfica en la Universidad. Como fanático de Star Wars realicé el videojuego con otra armada, no una de barcos, sino que con vehículos imperiales de la batalla de Hoth.
En este videojuego, el jugador humano tiene que posicionar los vehículos en el tablero y al hacerlo aparecerán los vehículos en tres dimensiones rotando. Una vez posicionados los vehículos en el tablero, este aparece en perspectiva con los vehículos sobre este. Por lo tanto, el tablero de ataque contra el computador muestra aciertos o desaciertos al momento de atacar. En las imágenes siguientes se puede conocer los escritos que tienen relación con el diseño realizado para el videojuego.
El desarrollo del videojuego contempló un semestre de un curso de gráfica en la universidad. A lo largo de este plazo, claramente no con dedicación completa, se logró presentar tres prototipos de avance evolutivo para finalmente obtener una versión entregable final.
Lo que se logró avanzar para el prototipo 1 son las siguientes tareas:
En la interfaz se dibuja el vehículo ATAT.
Se le agrega luz para lograr mejor el efecto 3D.
Con la tecla R, el ATAT gira según eje X. Problema detectado: el centro de giro no está sobre el ATAT.
Usando la tecla L, el ATAT gira según eje Z. Problema detectado: el centro de giro no está sobre el ATAT
La tecla W se puede ver el modelo en alambres.
Con ENTER se pasa a la siguiente pantalla de juego.
En la parte de interfaz de juego, se coloca un fondo.
Se le da un fondo al tablero de ataque.
En la interfaz se logra colocar letras y números para identificar las celdas.
Aparece el tablero en perspectiva del usuario.
El cursor cambia al pasarlo sobre el tablero de ataque.
Al disparar se identifica si es acierto o no. Si es acierto dibuja un fuego semitransparente, sino dibuja un círculo blanco. Problema detectado: identifica dos veces.
Todo tiene sonido. Problema detectado: una sola pista de audio, no permite colocar música de fondo continua.
Con la tecla ESC se sale del programa.
Para el prototipo 2 se mejoraron los problemas detectados en el prototipo 1, y se agregaron otras tareas que son las siguientes:
Se agregan dos personajes más, el vehículo ATST y un piloto ATAT.
Los personajes son mejorados gracias a la importación de archivos obj.
Con la tecla R, el personaje gira según eje X.
Usando la tecla L, el personaje gira según eje Z.
Con el segundo botón del mouse aparece un menú en el que se puede ver el modelo en alambres.
Se agrega un ATAT al tablero en perspectiva con un poco de neblina, esto para que no se vea tan brillante.
El computador ubica sus piezas en forma aleatoria.
Se mejora aún más lo presentado en el prototipo 2, además de mejorar la experiencia de usuario y la jugabilidad, logrando las siguientes tareas:
El personaje del piloto ATAT se cambia por un Probe Droid.
Se agrega título a los personajes.
Aparece un holograma como ayuda en el personaje de Vader, con texto explicativo del juego.
Ahora la rotación es automática y sólo cobre el eje Z.
Con el segundo botón del mouse aparece un menú en el que se puede ver el modelo en alambres y salir.
Una vez en el juego, en el menú, sólo aparece la opción salir.
En vez de un círculo blanco en desacierto aparece un cuadrado azul semitransparente.
Ya no identifica dos veces un acierto.
El usuario puede pintar la posición de sus piezas en el tablero.
Se agrega una introducción al juego.
En la versión final del videojuego, que es el entregable que se obtuvo en el curso, se mejoraron los últimos aspectos vistos en el prototipo 3 y se agregaron algunas tareas asociadas a look & feel y jugabilidad.
Tuve dificultades para que el videojuego se pudiera ejecutar en un computador actual, y sigue teniendo un problema de refresco en la utilización de OpenGL. Tuve que forzar la sincronización vertical en la configuración de la tarjeta gráfica para lograr tener una imagen fija. Así y todo, y considerando que el videojuego fue hecho en un contexto de un curso, aún tiene algunos problemas de sincronización de cuadros, lo que se nota en el video capturado en que varios objetos titilan y no se logra la totalidad de movimiento en la captura.