Comandos de consola en Unreal engine útiles para monitorear el rendimiento de un nivel
Unreal Engine 5 ofrece varios comandos de consola que son muy útiles para monitorear el rendimiento de un nivel.
Estos comandos te permiten visualizar métricas clave como el consumo de memoria, el rendimiento de la GPU y la CPU, el frame rate (FPS), y otros datos importantes para optimizar la experiencia del jugador.
A continuación, te comparto algunos de los comandos más comunes para evaluar el rendimiento:
1. stat fps
- Muestra los FPS actuales y el tiempo de frame. Es una manera rápida de ver si el nivel está alcanzando la tasa de fotogramas deseada.
- Comando:
stat fps
2. stat unit
- Muestra información sobre el tiempo que toma la CPU, GPU y otras subunidades en renderizar cada frame. Es útil para identificar cuellos de botella en la CPU o GPU.
- Comando:
stat unit
3. stat unitgraph
- Similar a
stat unit
, pero con un gráfico en tiempo real que muestra los tiempos de CPU y GPU por frame. Te ayuda a visualizar de forma gráfica los picos y caídas de rendimiento. - Comando:
stat unitgraph
4. stat scenerendering
- Ofrece una visión detallada de los recursos que utiliza el renderizado de la escena, incluyendo el número de draw calls, triángulos y vértices renderizados.
- Comando:
stat scenerendering
5. stat rhi
- Proporciona métricas específicas de la interfaz de hardware de renderizado (RHI), como el uso de memoria de la GPU. Es útil para ver cuánto de la memoria gráfica está en uso.
- Comando:
stat rhi
6. stat memory
- Da información sobre el uso de memoria del proyecto, tanto de la RAM como de la memoria de video, lo cual es esencial para optimizar el uso de recursos.
- Comando:
stat memory
7. stat game
- Muestra el tiempo de procesamiento de los subprocesos relacionados con el motor del juego, como el tiempo de actualización de física, animación, etc.
- Comando:
stat game
8. stat gpu
- Muestra una desglose del tiempo de procesamiento en la GPU para cada uno de los pases de renderizado, como sombras, iluminación, etc.
- Comando:
stat gpu
9. stat d3d12memory (solo DirectX 12)
- Específico para DirectX 12, proporciona detalles avanzados sobre el uso de memoria de la GPU. Ideal si trabajas en plataformas que usan este API.
- Comando:
stat d3d12memory
10. profilegpu
- Abre una ventana de análisis que desglosa el tiempo de GPU en cada paso del renderizado. Es una herramienta interactiva para ver cómo cada parte de la escena afecta la GPU.
- Comando:
profilegpu
11. profile
- Muestra una gráfica de perfiles de CPU y GPU, brindando una vista más amplia del rendimiento general en tiempo real.
- Comando:
profile
Consejos para monitorizar el rendimiento en Unreal Engine 5
Para obtener una visión integral del rendimiento, utiliza varios de estos comandos en combinación. Por ejemplo, puedes activar stat fps
, stat unitgraph
, y stat gpu
al mismo tiempo para observar cómo interactúan las métricas de CPU y GPU con los FPS.
Análisis del rendimiento en Unreal Engine 5
El análisis del rendimiento en Unreal Engine 5 es fundamental en varias fases del desarrollo.
A continuación, te explico momentos clave para realizar estas pruebas, los valores aceptables y no aceptables, y los pros y contras a observar en cada situación.
1. Inicio del Desarrollo del Nivel (Prototipado)
Cuándo: En la fase inicial, cuando tienes una estructura base del nivel y algunos elementos funcionales.
Comandos Útiles: stat fps
, stat unit
, stat scenerendering
, stat memory
.
Qué Observar:
- FPS: Asegúrate de que el FPS no cae drásticamente (idealmente alrededor de 30-60 FPS para un prototipo).
- Tiempo de CPU/GPU: Si ves picos altos, identifica si se deben a lógica de juego o a gráficos.
- Memoria: Verifica el uso de memoria para tener una base y evitar el sobreuso de recursos desde el principio.
Valores Aceptables:
- FPS: 30-60 (puede estar en el rango bajo ya que es un prototipo).
- CPU/GPU: Menos de 20 ms por cada uno es ideal.
Pros y Contras a Observar:
- Pro: Puedes detectar problemas de rendimiento grandes antes de añadir más detalles al nivel.
- Contra: No es un análisis definitivo; los resultados pueden cambiar drásticamente al añadir detalles.
2. Fase de Construcción de Arte y Diseño (Mid-Development)
Cuándo: Cuando tienes el entorno y el arte en un estado más avanzado.
Comandos Útiles: stat unitgraph
, stat scenerendering
, stat gpu
, profilegpu
.
Qué Observar:
- Draw Calls: El conteo alto de draw calls afecta el rendimiento (idealmente mantenerlos en menos de 2000 por frame en hardware moderado).
- Polígonos y Vértices: Asegúrate de que no estás usando demasiados triángulos. Idealmente, alrededor de 500k a 1M es manejable para hardware moderno, pero depende de la plataforma.
- Tiempo de GPU por Paso de Renderizado: Usa
profilegpu
para desglosar el tiempo que cada paso consume (p.ej., sombras, iluminación).
Valores Aceptables:
- Draw Calls: Menos de 2000 en promedio.
- Polígonos: Menos de 1M por frame en total.
- Tiempo de GPU por Paso de Renderizado: Cada paso individual debería idealmente tomar menos de 10 ms.
Pros y Contras a Observar:
- Pro: Identificación de áreas de mejora en el diseño visual y la optimización de geometría.
- Contra: Puede ser difícil distinguir entre problemas temporales (por recursos en progreso) y problemas persistentes.
3. Etapa de Optimización (Near-Final Build)
Cuándo: Antes de la fase final del proyecto, cuando el nivel está casi completo y listo para ajustes finales.
Comandos Útiles: stat gpu
, stat memory
, stat rhi
, profile
, stat d3d12memory
(si usas DirectX 12).
Qué Observar:
- Memoria de GPU: Verifica el uso de memoria para evitar sobrecarga, especialmente si planeas soportar hardware limitado (idealmente mantenerlo por debajo de 6GB en hardware promedio).
- Tiempo de CPU y GPU: Cada uno debería estar por debajo de 16 ms para asegurar 60 FPS.
- Uso de Texturas y Materiales: Asegúrate de que las texturas no sean demasiado grandes y que los materiales sean eficientes.
Valores Aceptables:
- Memoria de GPU: Menos de 6GB en hardware de gama media; menos de 8GB para alta gama.
- Tiempo de CPU y GPU: Menos de 16 ms cada uno para 60 FPS; menos de 33 ms cada uno para 30 FPS.
- Tamaño de Texturas: Idealmente no mayor de 2048x2048 para assets de entorno, y 4096x4096 solo para objetos clave.
Pros y Contras a Observar:
- Pro: Logras un nivel optimizado y listo para producción.
- Contra: Las optimizaciones pueden ser laboriosas y costar tiempo, pero son necesarias para la experiencia final.
4. Pruebas en Dispositivos Objetivo (Testing & QA)
Cuándo: Cuando el juego esté en una versión jugable, probada en los dispositivos finales o similares al hardware del usuario objetivo.
Comandos Útiles: stat fps
, stat gpu
, stat memory
, stat game
.
Qué Observar:
- FPS Constantes: Asegúrate de que el FPS es estable en diferentes áreas del nivel.
- Consumo de Memoria: Controla que el juego no supere la memoria RAM y GPU disponibles en el dispositivo objetivo.
- Tiempo de Procesamiento de CPU/GPU: Monitorea estos tiempos en áreas densas y áreas tranquilas para asegurar un rendimiento consistente.
Valores Aceptables:
- FPS: Mínimo de 30 FPS en hardware bajo y 60 FPS en hardware medio-alto.
- Consumo de Memoria Total: Asegúrate de no superar el límite disponible en la plataforma destino (p.ej., 8 GB de RAM y 4-6 GB de GPU).
Pros y Contras a Observar:
- Pro: Garantiza que el juego corra de forma óptima en hardware realista.
- Contra: A veces es necesario hacer sacrificios visuales o reducir detalles para alcanzar rendimiento adecuado.
Resumen de Valores Clave de Rendimiento
- FPS: Mínimo 30 FPS (60 FPS ideal).
- Draw Calls: Menos de 2000.
- Tiempo de CPU y GPU: Menos de 16 ms para alcanzar 60 FPS.
- Memoria de GPU: Menos de 6GB en hardware medio.
- Tamaño de Texturas: Mantener tamaños de 2048x2048 o menos en lo posible.
Utilizar estos comandos en cada fase te ayudará a asegurar que tu nivel esté optimizado y funcione bien en el hardware objetivo. ¡Buena suerte con tus pruebas de rendimiento en Unreal Engine 5!