Las animaciones de Rhell en el controlador de animador (arriba) y en el juego (abajo)
Cómo el desarrollador en solitario SlugGlove creó 102 millones de combinaciones de hechizos en Unity para Rhell: Mundos distorsionados y tiempos problemáticos

¿Cómo crea un desarrollador en solitario un videojuego con 102 millones de combinaciones de hechizos potenciales? Rhell: Mundos distorsionados y tiempos problemáticos es un RPG de mundo semiabierto en el que los jugadores encadenan runas mágicas para lanzar hechizos sobre objetos y manipular sus cualidades para resolver acertijos.
Crear este sistema complejo representaría un desafío significativo incluso para un gran equipo de desarrollo; el desarrollador en solitario SlugGlove lo consideró como otro rompecabezas que resolver. Nos sentamos con SlugGlove para hablar sobre su trayectoria desde la animación hasta la programación, su enfoque para la arquitectura y las pruebas Rhellsistema de magia en Unity, y sus mejores consejos para gestionar el alcance y evitar la sobrecarga.
Desde la animación hasta la programación en C#
SlugGlove no se propuso ser programador; su experiencia está en la animación 3D y el trabajo con sprites. Mientras trabajaba en el proyecto de animación final para su título, se dio cuenta de que no quería crear un cortometraje animado, sino que quería dar vida a su trabajo en un videojuego.
SlugGlove eligió Unity y comenzó a experimentar mientras aprendía C#. Para los artistas que podrían sentirse intimidados por la Idea de dar el salto a un motor de juego, destacan la facilidad de uso de Unity suite de animación integrada.
“En ese momento estaba usando Blender, que personalmente me parece muy fácil de usar”, dice SlugGlove. “Al pasar de esto a Unity, básicamente estaba haciendo clips y organizándolos con el controlador de animadores. Era mucho más fácil que la animación tradicional. Si otros animadores buscan una solución para probar sus animaciones, Unity es muy fácil de aprender y entender”.
Lo que comenzó como un proyecto de portafolio llevó a un par de juegos experimentales antes de que comenzara el desarrollo de Rhell: Mundos distorsionados y tiempos problemáticos.
Construir un sistema de hechizos basado en combinaciones
RhellEl núcleo de 's core hook es su sistema de magia modular. Los jugadores pueden combinar hasta cinco runas a la vez en el libro de hechizos de Rhell, lo que da como resultado millones de interacciones potenciales. En lugar de crear únicos ScriptableObjects o prefabs Para cada posible combinación, SlugGlove encontró una solución elegante en enteros y variantes prefabricadas.
El enfoque de los enteros
En lugar de hacer que cada runa sea un activo complejo, el juego simplemente lee las runas como números. “Las runas en sí no son en realidad un activo separado en el proyecto”, explica SlugGlove. “Es más como, presionas el botón uno, y eso se guarda como un entero. Va de cero a 40. Lanzar un hechizo lee una lista de hasta cinco enteros.”
En lugar de codificar interacciones específicas para una combinación como “Fuego + Hielo”, el sistema lee los enteros (por ejemplo, 11, 12), los elimina y modifica dinámicamente un objeto de clase localizado para aplicar las propiedades de “Agua” (por ejemplo, el entero 32). El hechizo final agrega y modifica valores basándose en esos enteros hasta que produce una clase de resultado final. Este enfoque modular y matemático mantiene la lógica del juego ligera y evita que SlugGlove tenga que crear miles de activos individuales.
Rhell combina las runas de fuego e hielo en agua
El sistema de objetos universal
Para que los hechizos funcionen de manera consistente, SlugGlove utilizó variantes de prefabricados. “Cada objeto en Rhell es una variante de un pequeño cubo gris”, explican. “Pensé que si cualquier hechizo puede funcionar en este cubo, podría funcionar en cualquier otro objeto del juego. Básicamente creé el cubo más complejo que pude”.
Debido a que un barril, un bloque de piedra y un océano de lava son, técnicamente, variantes del mismo prefab base, SlugGlove solo tuvo que implementar la interacción de cada hechizo una vez. Modificar el prefab base actualiza cientos de objetos en todo el juego, lo que ahorra un tiempo de desarrollo significativo.
El personaje del jugador, Rhell, es la única excepción a esta regla. Porque requiere un movimiento personalizado controladores y único estados de animación (como rebotar mientras está en llamas), SlugGlove tuvo que reflejar meticulosamente el código de objeto universal en el controlador del jugador.
Algunos de los varios estados de animación personalizados para el personaje del jugador en Rhell: Mundos distorsionados y tiempos problemáticos
Ahorrar tiempo con pruebas aleatorias
A primera vista, tener en cuenta 102 millones de combinaciones de hechizos parece una pesadilla de pruebas. SlugGlove no se dejó desanimar y, de nuevo, encontró una solución simple y creativa: la aleatorización por fuerza bruta.
Comenzaron agregando una runa "Aleatoria" al juego, que elige aleatoriamente entre los enteros que componen el sistema de runas. Para probar posibles interacciones, SlugGlove se cargaría en una habitación y enviaría repetidamente el hechizo Aleatorio a los objetos hasta que se encontrara con un mensaje de error.
"Me sentaba en una habitación, lanzaba Aleatorio una y otra vez, hasta que veía ese pequeño símbolo rojo en Unity que todos conocemos tan bien", ríen. "Hubo una situación en la que, si hacías que un objeto retrocediera en el tiempo, lo duplicabas y lo hacías pegajoso, y luego intentabas destruir el efecto pegajoso, se producía un error de referencia nula. Gracias a Aleatorio, supe que necesitaba solucionarlo".
La rúnea aleatoria en acción
El problema con los portales
En el juego, Rhell puede enviar objetos de un lugar a otro a través de una rúnea Portal. Esto introdujo otro desafío único que resolver. SlugGlove se dio cuenta de que, cuando un objeto bajo el efecto de la runa de Crecimiento (que agranda los objetos) se enviaba a través de un portal, se superponía con la geometría circundante, lo que creaba un problema de recorte.
Un objeto bajo el efecto de la runa Grow que crea un problema de recorte al ser enviado a través de un portal
El primer enfoque de SlugGlove provocó que la teleportación fallara si el Box Collider de un objeto agrandado detectaba un recorte al salir de un portal. Sin embargo, esto no era ideal, ya que contradecía su visión de la naturaleza permisiva y de caja de arena de Rhellsistema de magia.
"Desde la perspectiva del diseño de juegos, se sentía terrible", dice SlugGlove. "Quería evitar introducir situaciones que limitaran al jugador y lo que podría hacer. Fue realmente insatisfactorio simplemente decir: “No”.
Al optar por dar prioridad al disfrute del jugador en lugar de una interacción de física un poco más realista, SlugGlove escribió un script de resolución de colisiones personalizado. Si un objeto intenta salir de un portal y detecta una colisión, el script empuja el portal a una corta distancia del punto de colisión para permitir que el objeto se genere sin impedimentos.
Un objeto bajo el efecto de la runa Crecer que emerge de un portal, post-fix
Centrándose en el proceso, no en el resultado
Además de perfeccionar sus habilidades en Unity durante el desarrollo de Rhell: Mundos distorsionados y tiempos problemáticos, SlugGlove también aprendió a usar FL Studio para componer la banda sonora del juego. Les preguntamos cómo evitan el agotamiento mientras manejan tantas tareas, todo mientras trabajan en un proyecto de un alcance tan vertiginoso.
“Simplemente lo trato como un nuevo juguete”, dicen. “Si te enfocas en el '¿Qué pasa si fracaso?' o '¿Qué pasa si lo que hago no es bueno?', simplemente te estresarás. Intento enfocarme en lo positivo y divertirme con ello. En el peor de los casos, si no pudiera aprender este programa de música, podría encargarle a un amigo. Siempre hay una copia de seguridad”.
Esta positividad se refleja en las palabras de ánimo de SlugGlove para los desarrolladores de juegos aspirantes que podrían sentirse desanimados por desafíos como el aumento del alcance y la comercialización antes incluso de abrir un motor de juego:
“Como mínimo, haz algo de lo que estés orgulloso, por ti mismo. Concéntrate en, ‘¿Me estoy divirtiendo haciéndolo?’ Porque mientras te estés divirtiendo, está bien. Crear videojuegos es realmente tonto y divertido. No siempre tiene que ser algo estresante”.
Rhell: Mundos distorsionados y tiempos problemáticos ya está disponible en Steam. Explora más juegos hechos con Unity en nuestro hub Página del curador de Steam, y echa un vistazo a más historias de desarrolladores de Unity en el Blog de Unity y Hub de recursos.
