Optimizar tu juego es el proceso de configurar tus activos y la configuración de Studio para mantener alta la tasa de fotogramas y los niveles de rendimiento en dispositivos con limitaciones de memoria y unidad de procesamiento gráfico (GPU). Este proceso asegura que casi todos los usuarios tengan la misma experiencia de juego y visual mientras ven tu entorno.
Usando el archivo Arte Ambiental - Optimización .rbxl como referencia, esta sección del currículo de arte ambiental te muestra cómo revisar y configurar tu archivo de lugar para gráficos óptimos, incluyendo orientación sobre:
- Revisar los parámetros de física y renderizado de cada activo para confirmar que preservan la memoria y el rendimiento del motor.
- Eliminar texturas, geometría o transparencias excesivas que aumentan innecesariamente la cantidad de cálculos que el Motor de Roblox debe realizar para renderizar tus activos.
Mientras que el Motor de Roblox maneja la mayor parte del trabajo de optimización por ti, puedes ayudar en estos esfuerzos de optimización utilizando el Microprofiler para ver dónde se tarda más en renderizar fotogramas específicos. Usando esta información, puedes tomar decisiones informadas sobre qué activos necesitan tu atención en cuanto a sus parámetros o contenido excesivo. Análisis de Escena es otra herramienta poderosa para verificar el uso de recursos.

Revisar parámetros de física y renderizado
En Ensamblar una biblioteca de activos, aprendiste lo importante que es establecer parámetros de física y renderizado que permitan a tus activos mantener su alta calidad visual en dispositivos con limitaciones de memoria y GPU. Sin embargo, es común que, a medida que construyes tu entorno, ajustes estos parámetros de acuerdo con la posición contextual y el propósito de un activo dentro de tu juego. Por ejemplo, gran parte de la vegetación en el entorno final de muestra de láser tag proyecta sombras a pesar de un costo de rendimiento porque añade realismo al entorno.
Cuando modificas los parámetros de física y renderizado, es útil cerca del final del proceso de desarrollo revisar todos los parámetros para ver dónde puedes optimizar un parámetro mientras mantienes los objetivos estéticos y los requisitos de juego. Para ilustrar, puedes desactivar la propiedad BasePart.CastShadow para la vegetación cerca de los bordes del área de juego para ahorrar en rendimiento sin interferir con la experiencia de juego o visual de un usuario.


Eliminar contenido no esencial
Después de revisar tus parámetros de física y renderizado, puedes revisar los activos mismos para ver dónde puedes eliminar cualquier contenido no esencial del juego que no afecte tu jugabilidad, como texturas idénticas con diferentes IDs de activos, geometría compleja con muchos vértices, o transparencias que se superponen dependiendo de la vista de la cámara. Las siguientes secciones detallan lo que puedes hacer para revisar este contenido y por qué ayuda a los esfuerzos de optimización.
Eliminar texturas duplicadas
A medida que transicionas entre el desarrollo de tus activos y la construcción de tu entorno, es común iterar sobre mallas o texturas a medida que encuentras lo que es necesario para tus objetivos estéticos o requisitos de juego. Si no conviertes tus activos en paquetes, cuando importas estas iteraciones en Studio, estás creando IDs de activos únicos que el Motor de Roblox necesita referenciar mientras renderiza tus activos dentro del entorno.
Por ejemplo, si importaras las siguientes dos mallas de hidrantes de incendios en Studio por separado, incluso si son exactamente iguales en apariencia, el Motor de Roblox las trata como dos objetos con IDs de activos únicos. Cuantas más llamadas únicas necesite hacer el motor, mayor será el impacto en la memoria y el rendimiento. Por esta razón, es importante confirmar que cuando reutilizas un activo múltiples veces, cada instancia de ese activo utiliza el mismo ID de activo para que el motor solo necesite hacer una única llamada para renderizarlo repetidamente.

Optimizar geometría
Si encuentras que necesitas hacer más ajustes para aumentar la tasa de fotogramas en todos los dispositivos, es útil ver dónde puedes optimizar tu geometría al:
- Combinar grupos de mallas en un solo activo.
- Disminuir el recuento de polígonos de activos con complejidad geométrica.
Ampliando esta primera técnica, cada activo único en tu juego representa una llamada de dibujo en la GPU en la que envía una señal a la GPU para llamar información con el fin de que el Motor de Roblox renderice el activo correctamente. Cuantos más activos únicos tengas, más llamadas de dibujo necesita hacer el sistema. Por esta razón, si tienes un grupo de mallas que constituyen un componente más grande en tu juego, puedes agruparlas en herramientas de modelado de terceros para reducir la necesidad de múltiples llamadas de dibujo.
Para ilustrar este punto, el entorno final de muestra de láser tag agrupa múltiples partes y mallas para crear las grandes torres fuera del edificio. Si combinaras todos estos componentes individuales, podrías convertirlo en un solo activo con solo un ID de activo, y reducir el número de llamadas de dibujo de 8 a 1. Sin embargo, es importante notar que esta técnica elimina tu capacidad de cambiar libremente las características visuales y físicas de cada componente, como su posición o material.
Por ejemplo, en la siguiente imagen, la torre izquierda sigue siendo múltiples activos bajo un objeto Model, y la torre derecha es un solo activo. Puedes modificar cada componente de la torre izquierda individualmente, pero cuando modificas la torre derecha, como cambiar su color a negro, afecta a la totalidad del objeto. Por eso es importante considerar esta técnica solo cerca del final del desarrollo de tu entorno cuando sepas dónde puedes mejorar el rendimiento sin afectar tus objetivos estéticos.

Ampliando la segunda técnica, los activos con complejidad geométrica tienen más polígonos, lo que significa que tienen más vértices que el motor necesita calcular mientras renderiza su apariencia visual. Esto significa que los activos con menos complejidad y fidelidad son menos costosos de renderizar, lo que lleva a una mejora tanto en rendimiento como en memoria.
Eliminar transparencias en capas
Para proporcionar un sentido de realismo al entorno, el entorno final de muestra de láser tag incluye muchas mallas con diferentes niveles de transparencia, como la vegetación en el espacio exterior, el vidrio en la señalización futurista o la barandilla de los maceteros. Cuando la cámara ve múltiples objetos semitransparentes que están delante o detrás de otros, el Motor de Roblox debe renderizar los píxeles superpuestos múltiples veces para tener en cuenta las áreas transparentes. Este proceso se llama sobrecarga de alta transparencia, y tiene un impacto significativo en el rendimiento.
Por ejemplo, considera la siguiente vista de un macetero en el entorno de muestra. El motor debe renderizar las áreas transparentes de las hojas entre la planta más cercana a la cámara y la planta más cercana al área exterior en capas, lo que equivale a cientos de miles de píxeles sobrecargados. Para aliviar parte de este impacto, es importante revisar la disposición de todos los objetos semitransparentes en tu entorno y asegurarte de que no haya demasiados lugares donde haya muchas capas de superposición, especialmente en grandes áreas de la pantalla.


Cuando termines de revisar todo tu contenido para asegurarte de que sea óptimo en todos los dispositivos, ¡tu juego estará listo para su publicación!