Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Optimización del rendimiento

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Percepción
Percepción
Wird geladen in …3
×

Hier ansehen

1 von 25 Anzeige

Optimización del rendimiento

Herunterladen, um offline zu lesen

Curso teórico-práctico sobre Desarrollo de Videojuegos (DEV) orientado hacia la creación de contenido y desarrollo de jugabilidad mediante un lenguaje de programación visual como Blueprints en Unreal Engine. Impartido en el Máster en Ingeniería Informática de la Universidad Complutense de Madrid.

Curso teórico-práctico sobre Desarrollo de Videojuegos (DEV) orientado hacia la creación de contenido y desarrollo de jugabilidad mediante un lenguaje de programación visual como Blueprints en Unreal Engine. Impartido en el Máster en Ingeniería Informática de la Universidad Complutense de Madrid.

Anzeige
Anzeige

Weitere Verwandte Inhalte

Aktuellste (20)

Anzeige

Optimización del rendimiento

  1. 1. Desarrollo de Videojuegos Cuestiones avanzadas Optimización del rendimiento
  2. 2. ● Los videojuegos deben divertir… y a nadie le divierte esperar Optimización del rendimiento 2 Motivación
  3. 3. ● ¿Qué es “mejor”, programar en Blueprints o programar en C++? ○ Cada lenguaje tiene sus pros y contras, pero juegos profesionales tienen un 20% de código Blueprints ● ¿Cómo asegurarnos de que el juego no presenta errores que lo hagan injugable? ○ Debemos usar bien las herramientas de depuración ● ¿Qué maneras hay de optimizar el rendimiento en Unreal Engine? ○ Muchas veces la clave está en entender el problema, lo que hace el motor por debajo y lo que le “cuesta” hacerlo Optimización del rendimiento 3 Cuestiones habituales
  4. 4. ● Hay que evitar malas prácticas que causen estragos en el rendimiento, iterando mucho en Event Tick, usando Get All... varias veces, crear y destruir mucho, y cosas así Optimización del rendimiento 4 Malas prácticas
  5. 5. ● Son eventos especiales que al llamarlos, llaman directamente a todos los eventos (de cualquier otro actor) que estén en la lista de eventos vinculados al despachador Optimización del rendimiento 5 Despachadores de eventos https://docs.unrealengine.com/en-US/ProgrammingAndScripting/Blueprints/UserGuide/EventDispatcher/index.html
  6. 6. ● Las clases Blueprint están pensadas para usar clases de C++ (herencia) y no al revés ○ Para llamar a código Blueprint desde C++ habría que usar eventos o delegados Optimización del rendimiento 6 Programación visual vs. textual
  7. 7. Optimización del rendimiento 7 Programación en C++ https://docs.unrealengine.com/en-US/Programming/Introduction/index.html
  8. 8. Optimización del rendimiento 8 Programación en C++
  9. 9. ● Una jerarquía de más de 4000 clases… ● UObjectBase, interna (no debe usarse) ○ UObjectBaseUtility, interna (no debe usarse) ■ UObject, la clase base de todo objeto de UE4 ● AActor, objeto que se puede poner en la escena ● UActorComponent, los componentes son subobjetos que se registran como partes de los actores (sin transformada ni geometría) ○ USceneComponent, se añade la transformada (uno de ellos actúa como componente raíz de los demás del mismo tipo en el actor) ■ UPrimitiveComponent, se añade la geometría/render ● UWorld, mundo virtual posiblemente compuesto de varios niveles ● UWorldComposition ● ULevel, nivel con el que trabajamos con el editor ● UField ○ UStruct ■ UClass ● ... Optimización del rendimiento 9 Programación en C++
  10. 10. ● Ventajas y desventajas ○ En Blueprints todos los perfiles de desarrollador pueden colaborar de forma segura y controlada, se ve más claro el flujo del juego, y es más rápido hacer cambios y probar cosas nuevas (prototipos) ○ En C++ tenemos más control sobre la API, los datos, el multijugador; ejecuta más rápido y es más cómodo para, por ejemplo, cálculos matemáticos o trabajar colaborativamente en un repositorio Optimización del rendimiento 10 Blueprints vs C++ https://docs.unrealengine.com/en-US/Resources/SampleGames/ARPG/BalancingBlueprintAndCPP/index.html
  11. 11. ● A la hora de “empaquetar” el producto final, es posible pedirle a Unreal que convierta el código Blueprints a C++ (código nativo), mejorando su rendimiento Optimización del rendimiento 11 Nativización de Blueprints
  12. 12. ● Conviene recordar lo cómodo que es depurar visualmente con Blueprints ○ Vemos la ejecución y por supuesto se pueden poner puntos de ruptura, inspeccionar variables, avanzar fotograma a fotograma, se pueden ver las mallas de colisión, info. de la IA... Optimización del rendimiento 12 Errores y depuración
  13. 13. ● Existe una herramienta muy útil para encontrar fallos del estado del juego, con información visual que puede revisarse a posteriori Optimización del rendimiento 13 Registrador visual https://docs.unrealengine.com/4.27/en-US/TestingAndOptimization/VisualLogger/
  14. 14. ● También hay herramientas de pruebas automáticas (específicas para jugabilidad) Optimización del rendimiento 14 Pruebas automáticas https://docs.unrealengine.com/en-US/Programming/Automation/index.html
  15. 15. Optimización del rendimiento 15 Optimización del rendimiento
  16. 16. ● Conteo de vértices ● Niveles de detalle (LOD) Optimización del rendimiento 16 Optimización
  17. 17. ● Conteo de materiales ● Resolución de mapa de luces Optimización del rendimiento 17 Optimización
  18. 18. ● Empaquetado de texturas ● Reutilizando recursos Optimización del rendimiento 18 Optimización
  19. 19. ● Tras colocar mallas definitivas, agruparlas (menos DrawCalls) y comprobar ○ Que no haya fallos de colisiones en ninguna parte, para que los personajes puedan moverse bien ○ Que el juego funcione en máquinas de requisitos mínimos, haciendo perfiles de rendimiento Optimización del rendimiento 19 Perfiles de rendimiento
  20. 20. ● Consiste en estudiar a qué se destinan los recursos (básicamente CPU y GPU) Optimización del rendimiento 20 Profiling
  21. 21. ● Consola de comandos ○ Stat FPS ○ Stat Unit ○ Stat SceneRendering ○ Stat RHI Optimización del rendimiento 21 Profiling
  22. 22. https://docs.unrealengine.com/en-US/TestingAndOptimization/PerformanceTools/index.html Optimización del rendimiento 22 Herramientas de optimización
  23. 23. ● Unreal Insights es un conjunto de herramientas muy potentes para estudiar el rendimiento más a fondo Optimización del rendimiento 23 Herramientas de optimización https://docs.unrealengine.com/en-US/TestingAndOptimization/PerformanceAndProfiling/UnrealInsights/index.html
  24. 24. ● ¿Qué “malas prácticas” hay que evitar para mantener buen rendimiento en el juego? A. Programar todo en Blueprints B. Repetir el uso de GetAll, usar mucho el Tick… C. Usar el spawn actor D. Usar mucho el Tick y no depurar visualmente Optimización del rendimiento 24 Participación
  25. 25. Federico Peinado (2019-2022) www.federicopeinado.es Críticas, dudas, sugerencias... * Licencia sólo aplicable al texto original de estas diapositivas

×