Cómo escribir un juego en un mes sin distraerte de tu trabajo principal

imagen



MoonGun es un juego de acción / estrategia sobre la defensa de la base lunar de los asteroides. El juego fue creado por Ivens Serpa, autor de muchos artículos sobre diseño de juegos, como parte de Github Game Off Game Jam en noviembre de 2020. Lo hizo solo en su tiempo libre. El juego recibió muchas críticas positivas, por lo que su creador decidió compartir la experiencia de su desarrollo: describir todo el proceso de creación y compartir los métodos que utilizó, incluidas las etapas de concepto, planificación, desarrollo y lanzamiento.



Antes de pasar al tema del artículo, vale la pena mencionar algunas notas importantes: este material trata más sobre el diseño del juego que sobre el aspecto técnico de su desarrollo. El proyecto se desarrolló utilizando Unity 3D (versión 2020.1), con el que el autor ya está bastante familiarizado y en el que ya ha escrito otros juegos. A pesar de que trabajó solo en el proyecto, sus amigos aún lo ayudaron, probaron el juego y compartieron sus pensamientos sobre este asunto. La mayoría de los activos se tomaron de Internet (por ejemplo, del sitio Kenney.nl ) o fueron creados por el modelador Kaleo Mendes .





Jams de juegos, tema e ideas



Game Jam es una competencia de desarrollo de juegos en la que los participantes intentan desarrollar un juego desde cero en un corto período de tiempo, generalmente de 24 a 72 horas. En noviembre, GitHub organizó el Itch.IO Game Off Game Jam, que duró todo noviembre. Estos jams suelen tener un tema central que guía el proceso creativo de los juegos que se desarrollan. En 2020, este tema fue sobre la luna .



Los desarrolladores pueden interpretar el tema con la mayor libertad posible, la creatividad es clave aquí. También es uno de los criterios para clasificar las obras y elegir a los ganadores.



Por lo tanto, la fase de concepto debe comenzar con una lluvia de ideas sobre la mecánica del juego y las ideas relevantes para el tema.



Como resultado de esta lluvia de ideas, Serpa tenía tres conceptos principales:



  • , , — , ;
  • , , ;
  • , .


Si bien las tres ideas parecían buenas, había un problema con su escala: la mayor parte de la funcionalidad básica que necesitaban simplemente no se podía implementar en tan poco tiempo.



La segunda idea se basa en la física y requiere una base de código extensa para que el juego se sienta realista. La viabilidad técnica puede poner en peligro el diseño y dificultar demasiado la creación inicial de prototipos. Como resultado, puedes arriesgarte y dedicar tiempo a un juego realista que no es divertido de jugar.



En cuanto a la historia interactiva, la viabilidad técnica es insignificante, pero el proceso creativo no. Al comprometerse a implementar esta idea en solo un mes, corre el riesgo de obtener una historia fascinante que, de hecho, sería solo una novela visual, sin ningún elemento de juego notable.



Aparte de estos factores, todavía no estaba claro qué mecánicas serían mejores para usar aquí, cuál sería la principal fuerza impulsora del juego. Después de todo, es mejor comenzar a desarrollar un juego con un prototipo de una mecánica y luego trabajar en él hasta lograr un juego adictivo y llevar al jugador a la línea de meta.



Entonces, la idea de recolectar recursos se tomó como base para el futuro juego. Y dado que solo hacer clic en los botones es bastante aburrido, tomé como inspiración Space Invaders , y el concepto del juego en sí se formuló de la siguiente manera:



el jugador controla un cañón (torreta) que protege la base lunar de la caída de asteroides, así como objetos básicos (mina, laboratorio y hangar) que recolectan mineral lunar hasta que la luna se agota. (condición de victoria).



A continuación puede ver una imagen del primer prototipo funcional: MoonGun Versión 0.1 - prototipo



imagen

no demasiado bonito, pero funcional





Prototipo e hipótesis



Para probar las hipótesis iniciales, se realizó el primer prototipo del juego. Y dado que ninguna de estas hipótesis estaba relacionada con los gráficos o el rendimiento, las imágenes, como puede ver en la imagen de arriba, estaban lejos de ser las más impresionantes.



Una versión corta de estas hipótesis sonaba así:



  1. ¿Es interesante o emocionante disparar a los asteroides que caen?
  2. ¿Puedes simular una superficie lunar con una gran esfera 3D?
  3. ¿Debo controlar el arma con el teclado o el mouse?


También hubo varias hipótesis técnicas para probar, principalmente relacionadas con el lanzamiento del juego como un ensamblaje WebGL usando Unity . Debido a la pandemia, tenía sentido alojar el juego directamente en Itch.io para facilitar las pruebas y la distribución de versiones. Las preocupaciones eran cuánto tiempo llevaría pasar por todo el ciclo de compilación, implementación y prueba en la plataforma Itch.io (en horas o minutos), y luego qué calidad de gráficos se podría lograr para que se mantuviera una velocidad de cuadros aceptable al iniciar el juego en el navegador.



El primer prototipo tuvo mucho éxito. No es que todas las hipótesis fueran confirmadas, pero todas recibieron su valoración, y este es el verdadero propósito de la creación de prototipos. La primera versión del juego se publicó en el sitio web el 3 de noviembre. El ciclo de compilación, implementación y prueba duró unos 15 minutos, lo que resultó ser una agradable sorpresa.



Dado que la idea parecía lo suficientemente prometedora como para seguir trabajando en ella, se hicieron varios diseños conceptuales justo encima de las capturas de pantalla para ver rápidamente algún tipo de aproximación de cómo se vería la versión final del juego. Esto último facilitó la presentación de ideas a otras personas para obtener comentarios.



imagen

Arte conceptual del juego basado en prototipos de capturas de pantalla.



El 14 de noviembre, se lanzó una versión ya más estable con gráficos más ajustados, skybox decente y buen posprocesamiento. Gran parte del tiempo que pasamos trabajando en la actualización se dedicó a trabajar en los aspectos señalados en las revisiones y a mejorar los gráficos para evaluar qué tan eficiente podría ser la compilación de WebGL.



En ese momento, ya se había desarrollado una idea más clara del propósito de la torreta y las estructuras lunares. La torreta generará recursos de asteroides al derribarlos con disparos de cañón. La tarea de las minas es generar minerales pasivamente (esto requiere asteroides). El hangar es necesario para mejorar la torreta (utilizando minerales). Los laboratorios deben ayudar a llevar al jugador a la victoria (agotamiento de la luna) utilizando ambos recursos: asteroides y minerales.



A continuación se puede ver una captura de pantalla de esta versión ( estructuras lunares V0.4 ):



imagen





Benchmarks, lanzamiento estable y jugabilidad



Durante el desarrollo de las versiones 0.1 a 0.4, la mayoría de las pruebas se llevaron a cabo de forma independiente o con la ayuda de amigos cercanos. Pero a partir de la versión 0.4, comenzó una promoción más activa del juego para las pruebas.



La versión 0.4 fue lanzada en Itch.io con todas las funciones principales del juego, es decir, era la llamada versión estable: tenía todas las funciones necesarias para completar el juego y ya podía involucrar a los jugadores al máximo.



imagen



Los comentarios que recibimos durante las pruebas fueron muy útiles para mejorar aún más el juego. Los controles se han cambiado del teclado al mouse, los efectos visuales también han cambiado. Luego, la compilación de WebGL se estableció en la configuración más alta, ya que la mayoría de los jugadores tenían velocidades de cuadro superiores a 60 FPS, con la excepción de un probador que intentaba ejecutarlo en una Chromebook.



Además, ahora está más claro que la gente disfrutó mucho del juego. Incluso hubo un probador que pidió más actualizaciones y más acción. ¡Esto significaba que alguien estaba jugando activamente el juego hasta su final (actual)!



La versión "Lunar Structures" ya ha implementado todo el ciclo principal del juego, como se muestra en el siguiente diagrama:



imagen



Como se mencionó anteriormente, el juego se basa en la recolección de dos recursos principales: asteroides, recolectados destruyéndolos con una torreta, y minerales, que se recolectan automáticamente de las minas de vez en cuando. La torreta y las minas se pueden mejorar utilizando recursos opuestos (minerales para torretas, asteroides para minas). El uso de recursos opuestos evitó fuertes ciclos de retroalimentación positiva en la economía del juego: cuando las mecánicas se mejoran con el mismo recurso que generan.





No siempre se necesitan mecánicas complejas o adicionales



En el diagrama anterior, el término " Misión principal " se utiliza para indicar el objetivo principal del juego . Se implementó como un simple botón que gasta los recursos solicitados. Para ganar, el jugador debe gastar cada vez más recursos hasta que la luna se agote por completo.



La mecánica de la victoria ha sido diseñada para lograr un número arbitrariamente grande, lo que activa la condición de "ganar" y el jugador recibe el estado de ganador. Después del agotamiento de la Luna, las minas dejarán de generar minerales, y ese es el final del juego.



imagen

Variante de la misión principal (láser mineral) en las instalaciones del laboratorio.



¿Qué conclusión se puede sacar de esto? No siempre necesitas hacer tu juego más difícil(por ejemplo, agregando más mecánicas) para proporcionar condiciones de victoria o para mejorar el juego. Para MoonGun, dado que los jugadores ya lo estaban disfrutando, no había necesidad de dedicar más tiempo a desarrollar una nueva mecánica solo para la condición de victoria; podría formularse utilizando la mecánica principal.



También recuerde que el juego tenía que estar listo en un mes, por lo que menos implementaciones aquí significaron más tiempo para pulir y mejorar el juego.





¡Voleo! Equilibrio y equidad del juego



De acuerdo con los consejos de los probadores, comenzaron a introducirse elementos adicionales en el juego, que no expandieron particularmente la mecánica principal y el ciclo del juego. La primera idea aquí fue expandir las capacidades del jugador agregando un arma adicional a la torreta: un láser.



imagen

MoonGun Versión 0.7 - Láser El



láser fue recibido calurosamente por los probadores y agregó un grado extra de libertad al juego. Sin embargo, también desestabilizó el poder percibido del jugador. Debido al mayor alcance y duración del láser, el cañón convencional ahora parecía débil. Era necesario equilibrar el proceso de mejora de ambos tipos de armas.



Entonces, en algún momento a medida que avanza el juego, el cañón recibirá más mejoras y superará al láser. Entonces, el láser recibirá sus propias mejoras y recuperará su liderazgo. Este intercambio de armas preferidas de un lado a otro aumentó la dinámica del juego.



Al mismo tiempo, la elección de las armas aún dependía del jugador. El juego no interfiere con el uso de ninguna de las armas presentadas en él.



Equilibrar es difícil. Por lo tanto, el objetivo principal aquí era lograr un juego justo, que sería divertido y emocionante, pero no necesariamente equilibrado.





Misiones lunares



De hecho, el láser se agregó en la versión 0.5. Sin embargo, su implementación más estable solo se introdujo en la versión 0.7 llamada Lunar Quests, que también incluía:



  1. ;
  2. ;
  3. ( SHIFT);
  4. / ;
  5. ;
  6. ( , );
  7. .


imagen



Tenga en cuenta que dos puntos están relacionados con la mejora de la apariencia del juego (1 y 2), dos, con agregar / cambiar controles (3 y 4), dos más, con elementos adicionales del juego (5 y 6). Uno estaba destinado a análisis y depuración. Esta división fue completamente deliberada.



Dado el tiempo de desarrollo limitado disponible, era necesario equilibrar su carga de trabajo en muchas áreas que necesitaban mejoras.



La versión de Lunar Quests era más completa y permitía a los jugadores experimentar con el juego e interactuar con más controles. Ayudó a ver qué funcionaba bien en el juego (como asteroides y variabilidad de armas) y qué faltaba.



Al mismo tiempo, empezaron a llegar más y más comentarios sobre la falta de explicación y contexto del juego. Hasta ahora, ha sido solo un juego de arcade sin un propósito claro. Es hora de agregarle algunos elementos narrativos.





Conoce a Titán y la Luna S / 2009 S1



Al comienzo del juego, apareció una pequeña pista que se suponía que vinculaba el escenario, la motivación del jugador y las condiciones de victoria. Se veía así:



Moon S / 2009 S1 está lleno de un rico mineral, el flebotio, y tú, el jugador, eres responsable de proteger las instalaciones de la estación durante su extracción. La base está cubierta por un campo que puede protegerla de asteroides débiles. Sin embargo, a medida que avanza la minería, el núcleo de la Luna se vuelve más pesado, atrayendo asteroides más rápidos y peligrosos que pueden dañar el escudo e interrumpir las operaciones en las instalaciones.



Para ayudar con la narrativa, se introdujo el Titán en el juego, un robot que primero introduce al jugador en el curso de los asuntos y luego actúa como guía durante el desarrollo de la trama. Titan fue concebido, modelado y animado por Caleo Mendes, quien también diseñó la interfaz de usuario del juego.



La siguiente imagen muestra la primera versión de la introducción con Titán, una nueva interfaz de usuario y, en el fondo, un escudo que cubre toda la Luna.



imagen



La versión V0.8, Menú lunar, se lanzó el 26 de noviembre, solo unos días antes de la fecha límite. Incluyó una reelaboración significativa de la interfaz de usuario, así como información sobre el escudo.



imagen



Además, hubo otras mejoras en el juego: se cambiaron los efectos, y ahora se hizo más fácil para el jugador cambiar entre armas haciendo clic con el botón derecho del mouse. Además, se cambió la interfaz de recarga de armas: ahora la torreta muestra información sobre ambos tipos de armas a la vez. Esto permitió a los jugadores usarlos con más cuidado, cambiando de uno a otro cuando uno de ellos estaba en enfriamiento.



El movimiento de la cámara también se ha mejorado para mejorar la sensación de poder de ambas armas, y los efectos de la rotura de asteroides se han cambiado nuevamente. Tenga en cuenta que la mayoría de estos cambios se realizaron para mejorar la versión estable del juego, y se realizaron muy pocos cambios significativos directamente en el bucle principal del juego.





La versión final y sus problemas



La versión final V1.0a MoonGun fue lanzada el 29 de noviembre. Implementó todas las funciones de trabajo, incluso más personalización y una experiencia más equilibrada para la misión principal. Se agregaron asteroides ligeros en los primeros minutos del juego y más letales para las etapas posteriores. Todos los efectos de sonido y la música ya estaban en su lugar para crear una atmósfera y una experiencia de juego completa.



El juego también implementó algunos controles de configuración, como controles deslizantes de audio y música, así como un control deslizante para controlar los efectos de brillo, como lo mencionó inteligentemente uno de los probadores. Y agregó una advertencia en la pantalla de carga que notifica a los jugadores sobre los fuertes efectos de iluminación en el juego.



imagen

MoonGun versión 1.0a





Comentarios y mejoras (futuras)



Aunque el juego recibió muy buenos comentarios, todavía no había tiempo para mejorar algunos problemas. Lo más significativo aquí es que el juego no tiene un final claro: no puedes jugarlo. Si caen muchos asteroides en la luna, las minas dejarán de funcionar hasta que repare el escudo gastando los asteroides recolectados, pero la base nunca colapsará.



Se suponía que el juego era fácil y no castigaba a los jugadores mientras aprenden a jugarlo. Y dado que se basa en el progreso continuo, parecía demasiado desmotivador dejar que el jugador perdiera todo por no defender la base. A juzgar por las revisiones, tal vez este aspecto debería haber sido revisado y pensado en otras soluciones.



Además, no hay una escena final en el juego. Después de completar la última misión principal, el Titán aparece y transmite el último mensaje, pero después de eso, los jugadores pueden continuar el juego todo el tiempo que quieran. Algunos probadores quedaron tan decepcionados que incluso escribieron sobre ello en la página del juego.



Además, resultó que muchos jugadores se saltan la introducción y comienzan a jugar sin comprender su contexto y motivación. Aquí, también, puede pensar en algo para que esto suceda lo menos posible.



imagen





Proceso en retrospectiva



MoonGun definitivamente no será el próximo éxito independiente, pero nunca fue planeado. Más bien, fue una experiencia de creación de juegos que ha sido muy positiva y tiene muchas lecciones que aprender. Además, el resultado es un producto terminado. A pesar de que el juego no tiene dificultad, fue muy bien recibido por la gente, especialmente fuera del círculo de amigos y familiares del autor. Y para un proyecto así, esto ya es un éxito.



El flujo de trabajo se basó en lo siguiente: alcanzar rápidamente una versión estable del juego y luego mejorarlo. Mirando hacia atrás en el desarrollo en estas 4-5 semanas, los pasos principales se pueden describir de la siguiente manera:



  1. Concepto y prototipo de las principales mecánicas;
  2. Mejorando la experiencia y creando un juego estable;
  3. Prueba e implementación exhaustivas de la retroalimentación;
  4. Desarrollo de mecánica, narración, economía y estética;
  5. Pulido.


Dado que el autor no podía (y no quería) dejar el trabajo actual para dedicarse de lleno a este negocio, el desarrollo tuvo que ser trabajado a altas horas de la noche y los fines de semana. Un método que ayudó mucho con esto fue almacenar el rastreador de problemas identificados en un repositorio donde se podía ingresar todo el trabajo que se necesitaba hacer. Ayudó a volver rápidamente a trabajar en el proyecto después de un tiempo y averiguar dónde lo dejó por última vez.



Además, el autor siempre se esforzó por seguir el camino del menor esfuerzo. Esto no significa escribir código perezoso o buscar malas soluciones (el código fuente está disponible aquí) - esto significó probar enfoques simples primero antes de pasar a implementaciones o refactorizaciones más grandes.



Además, no descuide las poderosas herramientas de Unity y las tiendas de activos para acelerar el proceso de desarrollo. En este caso, DOTween , LeanPool y Cinemachine fueron los más útiles .





Post-procesamiento (la magia que te mereces)



Agregar capas de efectos de posprocesamiento ayuda a crear la atmósfera adecuada en el juego y crea una apariencia única. La siguiente imagen muestra una comparación de la misma escena con y sin posprocesamiento: Juego sin posprocesamiento (en la PlayStation original) y con posprocesamiento (en PC) En particular, se utilizaron los siguientes efectos:



imagen









  1. Lift Gamma Gain : mejora de la iluminación;
  2. Distorsión de la lente : la imagen como si pasara por una cámara real;
  3. Aberración cromática : para crear una atmósfera de "distorsión cósmica";
  4. Grano de película : agregue ruido y dinámica a la escena;
  5. Profundidad de campo : difumina los objetos fuera de foco para agregar realismo a la imagen;
  6. Viñeta : oscurece los bordes para que el jugador se enfoque en el centro de la imagen;
  7. Bloom : ¡para que la luz luzca mágica!


Aquí puede ver cómo se superponen estos efectos:



imagen





En lugar de una conclusión



Todos los diseñadores y desarrolladores de juegos pueden dar fe de esto: hacer juegos es difícil, pero sigue siendo inspirador en sí mismo. Cada nuevo evaluador que regresa con críticas positivas le da energía y alimenta el impulso para llevar a cabo el proyecto.



Además, la experiencia con Unity 3D lo ayudará a pasar del prototipo a la producción más rápido en un tiempo relativamente corto. Durante el desarrollo de MoonGun, se utilizaron varias técnicas de creación rápida de prototipos para Unity 3D utilizando herramientas como Unity Events , Scriptable Objects y LINQ . La mayor parte del contenido se realizó utilizando Unity Shader Graph y Variantes prefabricadas .



Sin embargo, este juego difícilmente podría haberse hecho sin un plan y una estrategia claros. Por lo tanto, vale la pena repetir una vez más que es importante adherirse primero a mecánicas simples y luego desarrollar el juego en base a ellas.



All Articles