Diseño de niveles y flujos de trabajo de terreno en Survival Kids

Survival Kids es el primer proyecto de desarrollo de extremo a extremo de Unity, creado en colaboración con KONAMI. El pequeño equipo que lo construyó aprovechó décadas de experiencia en el desarrollo de videojuegos, y esta serie de blogs profundiza en cómo abordaron este ambicioso proyecto. La primera entrega exploró el trabajo de marco y renderizado del equipo, mientras que esta edición se centra en el diseño de niveles y entornos.
Aunque principalmente hemos hablado sobre cómo logramos los aspectos que ves en pantalla, queríamos profundizar en lo que hicimos para mejorar nuestros flujos de trabajo, haciéndolos más rápidos para poder entregar el proyecto a tiempo.
Debido al tamaño del equipo y al alcance del proyecto, pusimos mucha consideración en el diseño de niveles y los flujos de trabajo del terreno. Necesitábamos algo que fuera fácil para un diseñador de niveles para iterar ideas, pero nuestro enfoque también tenía que requerir una mínima o ninguna reestructuración una vez que los niveles se entregaron al equipo de arte. Optamos por un enfoque que tiene un flujo de trabajo muy similar a una caja blanca para los diseñadores de niveles mientras ya estábamos trabajando con los activos finales del juego.
Survival Kids utiliza un conjunto de bloques de construcción reutilizables para crear el diseño principal de los niveles. Es un conjunto de prefabricados con lados de roca de acantilado y un parche de terreno de malla en la parte superior, configurados en diferentes tamaños y formas.

Los lados de acantilado son ocho mallas separadas, lados y esquinas, cada una con un colisionador de malla simplificado. Todos comparten el mismo material, lo que acelera su renderizado.

Esta configuración permite al diseñador de niveles usar estos bloques de construcción para crear la mayoría de los niveles utilizando los activos finales del juego, pero con un flujo de trabajo rápido que está muy cerca de la caja blanca, para permitir una rápida iteración de ideas.
Este enfoque de "bloque de construcción" del módulo de terreno resultó en muchos módulos superpuestos debido a las formas orgánicas de los niveles. También llevó a que la mayoría de los lados de acantilado estuvieran dentro o detrás de otros módulos y nunca fueran vistos por la cámara del juego. Para resolver esto, creamos una herramienta de Editor que revisó cada módulo uno por uno, verificando si alguna parte de ellos podría ser vista desde el ángulo de la cámara del juego y eliminando todos los que no eran visibles.

Utilizamos una herramienta de Houdini Engine para crear mallas de terreno continuas basadas en las diferentes secciones de los módulos de terreno.

Se utilizó una versión modificada del paquete de Polybrush de Unity para pintar los diferentes materiales en las mallas de terreno. La modificación fue que Polybrush pintaría una textura de control, similar a como lo hace el sistema de terreno de Unity, en lugar de pintar valores en los vértices de la malla.

La oclusión ambiental se hornea luego en el color de vértice de las mallas de terreno para anclar visualmente mejor los objetos colocados sobre él.

Luego se utilizó una herramienta personalizada para distribuir pequeños objetos como hierba, flores y piedras pequeñas en las mallas de terreno. La distribución de los objetos se controla individualmente utilizando parámetros como densidad, material subyacente, curvatura del terreno o proximidad a objetos más grandes. A lo largo del proyecto, nos mantuvimos con una densidad muy baja para minimizar el impacto en el rendimiento de la pequeña vegetación.

Luego utilizamos otra herramienta personalizada para dividir los colisionadores de malla de los diferentes terrenos. Hicimos esto de dos maneras:
- Como una cuadrícula, para reducir el conteo de triángulos y el volumen de cada colisionador de malla y mejorar el rendimiento físico del juego
- Por material, para que el juego pueda generar diferentes sonidos y efectos visuales de pasos según el material sobre el que caminan los personajes (hierba, arena, nieve, hielo, etc.)

Esta publicación ofrece solo un vistazo a cómo configuramos gráficos y renderizado estilizados y eficientes para alcanzar nuestra tasa objetivo para Survival Kids. Consulta la primera publicación de la serie, "Consejos de gráficos y renderizado de Survival Kids," y mantente atento al blog de Unity para más publicaciones sobre el juego, incluyendo un análisis en dos partes sobre redes multijugador. También puedes encontrar más historias técnicas de desarrolladores en nuestra Página de Recursos.



