Automatice sus pruebas de juego: Crear jugadores virtuales para la simulación de juegos

DYLAN SCANDINARO Anonymous
Dec 11, 2020|6 minutos
Automatice sus pruebas de juego: Crear jugadores virtuales para la simulación de juegos
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

Es fácil automatizar las pruebas de juego creando un jugador virtual (un agente de juego) y utilizando Game Simulation para ejecutar pruebas de juego automatizadas a gran escala. Siga leyendo para descubrir tres estudios de casos que describen cómo iLLOGIKA, Furyion y Ritz Deli crearon Virtual Players, descargando casi 40.000 horas (~4,5 años) de pruebas de juego automatizadas a Game Simulation.

Los juegos son difíciles de probar por la misma razón por la que son divertidos: los jugadores tienen libertad para configurar su propia experiencia. Así, los juegos tienen una superficie enorme para que aparezcan bugs y fallos de diseño. Los desarrolladores deben realizar pruebas con frecuencia y con una amplia cobertura para resolver los problemas y cumplir los plazos de forma fiable.

En el pasado, los desarrolladores elegían entre pruebas de baja cobertura y alta frecuencia (pruebas unitarias en un canal de CI) y pruebas de alta cobertura y baja frecuencia (pruebas de reproducción antes de un lanzamiento importante).

Hemos creado Unity Game Simulation para ayudar a los desarrolladores a realizar pruebas con la cobertura de las pruebas de juego y la frecuencia de las pruebas unitarias. Unity Game Simulation permite a los desarrolladores realizar pruebas de juego automatizadas en la nube. Para utilizar Unity Game Simulation:

Crear un Jugador Virtual (un agente de juego).

Utilice el paquete Game Simulation para instrumentar su juego para la simulación.

Implemente parámetros configurables a distancia para simular distintas variaciones de su juego. Implantar métricas para registrar los datos necesarios para responder a las preguntas de diseño.

Utiliza el paquete de simulación de juego para crear y subir una compilación de tu juego a nuestros servidores.

Ejecute su juego miles de veces desde la interfaz de usuario (IU) de Simulación de Juego.

Esta entrada del blog se centra en el paso 1: la creación de un reproductor virtual para las pruebas automatizadas. Los pasos 2-4 son sencillos y están cubiertos en la documentación de Simulación de Juego. Puedes probar Game Simulation gratis ahora.

Crear un jugador virtual para la simulación de juegos Unity es fácil

Un jugador virtual emula la entrada de un jugador real para probar algún aspecto de tu juego. Para pruebas sencillas, como validar que el juego puede ejecutarse durante 60 minutos sin que se produzca una excepción, un reproductor virtual puede ser tan sencillo como un script en C# con unas pocas líneas de código que lance una escena y realice acciones aleatorias.

Para pruebas más complejas, como verificar que todas las armas tienen aproximadamente la misma fuerza o que se puede completar cada nivel, se puede crear un Jugador Virtual con los mismos métodos que se utilizan habitualmente para crear personajes no jugadores (PNJ). Entre ellas figuran:

  • Guiones heurísticos: Un script con una regla o algoritmo muy simple
  • Árboles de comportamiento: - Representación visual de un plan compuesto por condiciones y tareas.
  • Máquinas de estados finitos: Una secuencia de comandos con algunos estados que el reproductor virtual alterna, por ejemplo, búsqueda y ataque.
  • Planificador de IA de Unity: Un marco de planificación visual con una interfaz de usuario intuitiva para el editor de Unity.
  • Aprendizaje por refuerzo y aprendizaje por imitación utilizando el Unity ML-Agents Toolkit: Vea cómo creamos un reproductor virtual para Snoopy Pop de Jam City utilizando ML-Agents.

A continuación destacamos cómo tres estudios crearon jugadores virtuales, descargando colectivamente casi 40.000 horas de pruebas de juego a Unity Game Simulation. Lo que es especialmente digno de mención es que los tres estudios fueron capaces de obtener un inmenso valor con la simulación de juego a la vez que se basaban en enfoques relativamente sencillos para crear su reproductor virtual.

Ritz Deli: Heurística (algoritmo codicioso)

El estudio indie Ritz Deli ha desarrollado Eraser Blast, un juego de puzles estilo linker con más de 50 personajes, cada uno con características de juego únicas. Ritz Deli utilizó Unity Game Simulation para ejecutar cientos de simulaciones con el fin de garantizar que cada personaje genera puntuaciones y recuentos de monedas crecientes a medida que aumenta su nivel de XP.

Eric Jordan, director técnico y responsable de tecnología de Ritz Deli, necesitaba crear un reproductor virtual capaz de resolver rompecabezas del tipo linker. Implementó un reproductor virtual con un script en C# basado en un sencillo algoritmo heurístico de codicia. Para Eraser Blast, el algoritmo hace coincidir la cadena más larga posible de burbujas del mismo tipo:

Crea el conjunto de todas las posibles selecciones de burbuja única.

Tipo de bloque desconocido "__block", especifique un serializador para él en la propiedad `serializers.types`. Tipo de bloque desconocido "__block", especifique un serializador para él en la propiedad `serializers.types`.

Selecciona la burbuja del conjunto de burbujas válidas que tenga el mayor número de coincidencias disponibles.

Repita los pasos 1 y 2 hasta que ninguna de las burbujas disponibles sea una coincidencia válida.

Actualiza las métricas para la puntuación total y las monedas recompensadas.

iLLOGIKA: Árbol de comportamiento guionizado

iLLOGIKA es el estudio detrás de Rogue Racers, un corredor jugador contra jugador (PvP). Los jugadores crean barajas de cartas que contienen potenciadores que el jugador utiliza durante una carrera. iLLOGIKA utilizó la Simulación de Juego para probar todas las combinaciones de cartas y asegurarse de que ninguna carta o baraja es demasiado poderosa.

Los desarrolladores de iLLOGIKA han creado un reproductor virtual mediante un script en C#:

Permite al Jugador Virtual llegar con éxito al final de la carrera realizando raycasts para encontrar los obstáculos que se avecinan y luego evitarlos cambiando de carril, agachándose o saltando.

Añade una serie de reglas que describan cuándo utilizar las cartas en función del estado de la partida, incluida la salud actual del jugador, las posiciones relativas de los demás jugadores, sus habilidades con las cartas, etc.

Tipo de bloque desconocido "__block", especifique un serializador para él en la propiedad `serializers.types`.

Para cada acción descrita en los pasos 1 y 2, elige una acción incorrecta pero posible para tener en cuenta la imprevisibilidad de un jugador real.

Furyion: Árbol de comportamiento Behavior Designer

Furyion es el desarrollador de Death Carnival, un shooter descendente con un sistema único de encaje de armas que permite al jugador elegir entre más de cien mil combinaciones posibles de arma, munición y módulo de arma, cada una de las cuales define una experiencia de juego única.

Herbert Yung, fundador y director de Furyion, utilizó una herramienta de creación de árboles de comportamiento llamada Behavior Designer para crear un Jugador Virtual y estimar el tiempo medio de finalización del nivel para cada combinación de arma, munición y módulo de arma. A continuación, Herbert realizó miles de simulaciones con Unity Game Simulation para probar cada combinación de casquillos de armas, lo que supuso un ahorro de más de 600 horas de juego.

Herbert aprovechó la intuitiva interfaz de usuario de Behavior Designer y muchas tareas estándar de Behavior Designer para crear un reproductor virtual:

Si un enemigo está al alcance, ataca a ese enemigo.

Si no hay ningún enemigo a tiro, muévete hacia la salida hasta que aparezca un enemigo a tiro.

Repite los pasos 1 y 2 hasta que no queden enemigos.

Navega hasta la puerta al final del nivel y una vez que el nivel termine oficialmente, llama a Application.quit().

Para obtener más información sobre cómo crear un bot con Behavior Designer, consulta la documentación de la página Tienda de activos de Behavior Designer.

Acceso anticipado: Simulación de juegos Unity para pruebas de control de calidad

El equipo de simulación de juegos de Unity se compromete a ayudarle a crear jugadores virtuales para pruebas automatizadas, empezando por jugadores virtuales para pruebas de control de calidad. Póngase en contacto con nosotros si desea ser uno de los primeros en probar nuestras nuevas herramientas y funciones para crear jugadores virtuales para pruebas de control de calidad.

Comenzar

Obtenga más información sobre cómo empezar a utilizar Unity Game Simulation; incluso puede probarlo gratis. Si tiene alguna pregunta, póngase en contacto con el equipo de Simulación de Juegos.