Juego AirAttack! - nuestra primera experiencia de desarrollo de realidad virtual

Continuamos una serie de publicaciones sobre las mejores aplicaciones móviles de los graduados de "IT SAMSUNG SCHOOLS".

Hoy es la palabra para los jóvenes desarrolladores de Novosibirsk, ganadores del concurso de aplicaciones de realidad virtual "SCHOOL VR 360" en 2018 cuando eran estudiantes de primer año. Esta competencia terminó con un proyecto especial para los graduados de "IT SAMSUNG SCHOOLS", donde enseñaron el desarrollo de Unity3d para gafas de realidad virtual Samsung Gear VR. Todos los jugadores están familiarizados con el género Tower Defense: debes defender el territorio de atacar a los enemigos con la ayuda de la construcción de la torre. Los chicos decidieron tomar esta mecánica y hacer su juego de realidad virtual basado en él, pero al otro lado de la barricada: aquí eres un piloto, y tu objetivo es ayudar al destacamento terrestre a llegar al final disparando con torres que bloquean el camino. El juego está hecho en el LowPoly de estilo retro: modelos tridimensionales con una pequeña cantidad de polígonos, como en los viejos juegos de computadora. Debajo del corte, una descripción del proceso de desarrollo, video y capturas de pantalla del juego, un enlace a la fuente.

Captura de pantalla del juego
Lo que finalmente sucedió

Siguiente


Brevemente sobre las condiciones del proyecto de Samsung "SCHOOL VR 360", en cuyo marco se llevó a cabo el desarrollo del juego AirAttack. Entonces, a los graduados de SAMSUNG IT SCHOOLS se les ofreció:

  1. Realice un programa de autoaprendizaje en 4 meses, para el cual en noviembre se emitieron licencias para capacitación en especialización de 5 cursos en línea sobre desarrollo de realidad virtual
  2. Forme un equipo y desarrolle su propio proyecto en 3 meses. Las consultas individuales de los profesionales en desarrollo de realidad virtual a la empresa "Realidad fascinante" ayudarían
  3. En mayo, presente el proyecto a los expertos de Samsung, "Realidad fascinante" y otros miembros del jurado.

Sobre la idea


Kirill Prokofiev, capitán del equipo:
Decidimos tomar el formato de la sala de juegos, que sería familiar para todos, pero al mismo tiempo parecía interesante en realidad virtual y se abriría desde un ángulo completamente diferente. Los juegos de disparos Arcade en las tiendas de aplicaciones de realidad virtual son más que suficientes. Decidimos cruzar el arcade aéreo con Tower Defense: solo aquellos que no pasan tiempo en el metro no jugaban juegos en los que protegías las torres de los aviones invasores.

¿Alguna vez te has preguntado quién juega contra ti cuando actualizas torres?

Vladimir Sperling, desarrollador:
Nuestra idea era crear una aplicación LowPoly para juegos, porque este es el único estilo posible para una aplicación móvil de realidad virtual de esta magnitud. Desde el punto de vista de la jugabilidad, decidimos no desarrollar los temas trillados existentes, como deambular por el espacio y el paso de laberintos de realidad virtual. Queríamos algo más

Sobre experiencia previa y errores


Vladimir Sperling, desarrollador:
Captura de pantalla del juego Cuando conocí la realidad virtual un año antes, en 2016, el año en que me gradué de IT SAMSUNG SCHOOLS, mi primer equipo constaba de solo dos personas. Decidimos crear una sala de carreras, llamada Speed ​​Riders. Las responsabilidades se dividieron de la siguiente manera: una debía ser responsable del código del programa, la arquitectura y la adaptación de la aplicación para VR, y la segunda del concepto, diseño e integridad de la idea. Quizás este enfoque hubiera sido exitoso para implementar la aplicación en poco tiempo y con un equipo con una calificación más alta, pero en ese momento no conocíamos las características de diseño de las aplicaciones de realidad virtual y cometimos muchos errores.

Por ejemplo, tratamos de implementar la interacción de un jugador demasiado complejo con los objetos del mundo, mientras que el énfasis estaba en el hecho de que cualquier movimiento del jugador podría provocar el efecto del mareo o una disminución en la calidad del movimiento. Esto condujo a una interfaz increíblemente cargada y manipulaciones complejas, como resultado, después del primer minuto del juego, el usuario quería eliminar puntos y no regresar. Quedó claro que para la corrección es necesario revisar el concepto de todo el proyecto. ¡Y apareció 2 semanas antes de la defensa!

Demostración del juego para todos en la competencia anual de proyectos de Samsung
Demostración del juego para todos en la competencia anual de proyectos de Samsung

Además, la falta de visualización y automatización adicionales para crear niveles creó problemas: dos programadores novatos tuvieron que hacer niveles en 3-4 etapas. No teníamos un trabajo conjunto en git: Unity3D almacena las escenas completas y es imposible combinarlas más tarde: tuvimos que esperar hasta que uno de nosotros terminó el trabajo, luego el otro conectó sus detalles ... y así sucesivamente. Más tarde, cuando desarrollamos AirAttack !, cuando tuvimos muchas escenas, este problema se resolvió parcialmente por el hecho de que cada uno de nosotros trabajó con diferentes escenas.

Trabajar en el juego


Vladimir Sperling, desarrollador:
Un año después, nuevamente decidí participar en la escuela VR 360 y Cyril y yo nos unimos. Después de pasar varias horas con una hoja de papel y tazas de té, dividimos todo el proyecto en etapas y establecimos plazos:

  1. Creando el menú principal
  2. Implementación de Nivel 1
  3. Prueba y depuración inicial de errores críticos
  4. Optimización de VR, resolución de problemas, funcionalidad de construcción (pagamos un papel muy importante a los detalles, porque nuestro objetivo es hacer y optimizar, y no "pegar" mucho y mal) y quizás mejoras arquitectónicas
  5. Agregar nuevos niveles
  6. Publicando la aplicación en la Tienda Oculus
  7. Añadir multijugador
  8. Agregar materiales descargables (en forma de niveles, actualizaciones, nuevos barcos, etc.)

Durante el desarrollo, a pesar de plazos tan cortos, tratamos de discutir cada momento de acuerdo con el diagrama.

Carta de desarrollo

Se discutió cualquier idea y se emitió un veredicto: sea o no. Todas las ideas aprobadas se dividieron en tareas y se implementaron. La fase de prueba se llevó a cabo por su cuenta, atrajo a amigos y conocidos. Escuchamos sugerencias y comentarios, especialmente notamos que causó dificultades para aquellos que ingresaron por primera vez a nuestro juego, que tuvieron que explicarse durante la sesión. Discutimos nuevas características y comenzamos una nueva ronda de desarrollo.

Los plazos se mantuvieron estrictamente: a veces las ideas más interesantes tuvieron que ser rechazadas cuando se dieron cuenta de que no tendríamos tiempo para implementarlas a tiempo.

Captura de pantalla del editor Teniendo en cuenta la experiencia previa con Unity3D y el conocimiento de cómo se puede modificar para simplificar el desarrollo y la creación de niveles, nos tomamos un poco de tiempo para crear "scripts de ayuda". Por ejemplo, mostrar el radio de destrucción de las torretas: ahora podríamos controlar qué secciones del camino están cubiertas por torretas, qué secciones serán las más difíciles y cuáles permitirán que el jugador tome un descanso y recargue o respire. U otro guión: mostrar la trayectoria de movimiento de las unidades y el jugador, para que podamos ver claramente si la trayectoria está dibujada correctamente y, si es necesario, arreglarla. En la imagen, la línea se rompe, pero durante el movimiento se suavizó la trayectoria.

Para la final del concurso, planeamos implementar solo una parte de los planes, detenernos en la creación de 4 niveles y en el futuro comenzar a implementar funcionalidades adicionales. Y todo estaría bien, si no ...

La esperanza de que todas las bibliotecas de complementos funcionen perfectamente fue uno de los principales errores durante el desarrollo del juego. Tuvimos que modificar la biblioteca principal de Oculus, lo que nos permitió utilizar por completo las funciones de GearVR, además de que todo se volvió más complicado debido a la documentación incompleta. Se analizó el rendimiento de cada biblioteca conectada al proyecto: se eliminó parte del código y se corrigieron las construcciones ineficientes por otras más simples. En algunos lugares, se usaron variables de puntero 'inseguras' para obtener el máximo rendimiento, y este código se probó cuidadosamente para detectar pérdidas de memoria. Se utilizó un enfoque modular en el que todos los objetos son independientes y pueden eliminarse de la escena sin dañar el código. Se probó cada nivel, y en la "carga aumentada" el número de fotogramas por segundo no fue inferior a 50 fps.

Kirill Prokofiev, capitán del equipo:
Nuestro equipo cumplió completamente con los plazos establecidos: se escribieron alrededor de dos docenas de guiones, se creó la interfaz de usuario de la nave, la interfaz de usuario de dos menús y las instrucciones.

La versión final del menú de la interfaz de usuario




La aplicación es completamente funcional. Todos los modelos fueron cuidadosamente seleccionados y optimizados para reducir el número total de polígonos en la escena. La base se tomó modelos confeccionados en el dominio público con permiso para el cambio.

Mientras trabajaba en el proyecto AirAttack! Pasamos un tiempo considerable en UED (Diseño de experiencia de usuario o UX). Además de los elementos de la interfaz de usuario (el menú principal, el menú de salida del nivel, la interfaz de usuario del barco e incluso las torres de la interfaz de usuario), varios procesos están acompañados de efectos de sonido y visuales (por ejemplo, partículas de fuego o una sombra del cristal de un avión). Todo el juego consiste en modelos Low-Poly, que no solo aumentan la productividad, sino que también crean una atmósfera.

Resumen


El juego recibió el título de "Mejor aplicación de juegos" en la competencia "VR 360 School" en 2018. El resultado de nuestros esfuerzos está en el siguiente video.



Fuentes del juego: bitbucket.org/Vova_SH/air-attack

Autores

Kirill Prokofiev
Kirill Prokofiev
Diseñador de juegos
Capitán del equipo
prokyhouse@yandex.ru
Swift, Java, desarrollador de C #, diseñador
Medallista del Campeonato de Seguridad Cibernética
Ganador de la ronda regional del concurso de proyectos "IT SAMSUNG SCHOOL" en 2017
Ganador del concurso "VR 360 School" 2018

Vladimir Sperling
Vladimir Sperling
Desarrollador de Unity
vladimir-shperling@yandex.ru
Desarrollador Kotlin, Java, C #
1er lugar de la final del concurso del proyecto "IT SAMSUNG SCHOOL" en 2016
Ganador del concurso "VR 360 School" 2018

Source: https://habr.com/ru/post/461099/


All Articles