Trucazo de optimización en Unity

preview_player
Показать описание


Clips de Alva Majo, desarrollador de videojuegos indie, normalmente cogidos de su canal de Twitch.
Рекомендации по теме
Комментарии
Автор

De primeras te ahorras el calculo de la transformada del padre hacia los nodos hijo

Camtrack
Автор

yo lo explico...
el tema es que introducir objetos dentro de otros genera que los scripts que has puesto adelante por jerarquía afecte a los introducidos dentro generando más cálculos adicionales inútiles, y además que existen ciertos valores adicionales como la posición, rotación, etc. que ya no son autónomos, sino que dependen de los objetos principales, tiene un sentido lógico que los objetos se mantengan individuales existaa una pequeña ganancia adicional de fps.
sin embargo su principal problema de fps, entre otras cosas, se da por 4 problemas fundamentales:

1ro.- es utilizar muchos personajes no jugales completamente animados de forma individual, existen formas de agrupar éstos ya que se suponen deben estar coreografiados, no existe la necesidad de tenerlos individuales, esto penaliza el rendimiento de forma considerable.
2do.- los elementos del terreno están con la densidad poligonal normal a cualquier distancia, y que no aplica reducir polígonos cuando estos elementos se encuentran lejos (que no utiliza LODs) renderizando millones de polígonos (calculo que entre 2 a 4 millones) cuando lo normal sería tratar de tener entre 200 mil y 400 mil.
3ro.- (y que se relaciona con el segundo) sus objetos de terreno tienen estética Low Poly, pero los observé bien, no son Low Poly, calculo que cada elemento individual tiene por lo menos 5 veces más de densidad poligonal mayor a lo que debería.
4ro.- (y creo yo lo más importante) trata a cada árbol o roca como un elemento individual, con sus propias propiedades individuales y materiales, esto es una práctica tonta que se hace en unity, lo normal sería intentar tener todos los elementos del terreno agrupados en bloques ya que se hacen menos cálculos a pesar de tener los mismos polígonos. Lo normal es que se construya el mundo fuera de unity, (blender, maya, etc.) y luego introducirlos a unity como modelos completos y no individuales.

alva jamás hizo practicas de optimización adecuadas en sus juegos, no digo que sea mal desarrollador, pero es uno muy incompleto.

hinatsu
Автор

Trucazo de optimización de Unity en 3 pasos:

1 - Abrir proyecto
2 - Eliminar proyecto
3 - Llorar

Con esto ganas un ♾️ de fps, además el juego no ocupa espacio y no requiere de recursos del ordenador.

SoyXPro
Автор

Alva majo enseñando padawans para que sigan su legado cuando el sea uno con la fuerza

holakease
Автор

Siempre me ha parecido increíblemente cutre que en Unity tengamos que meter las cosas dentro de objetos, y no tenga la posibilidad de crear una simple carpeta que no afecte a nada jugable

Antimundo
Автор

Yo me hice un componente hace tiempo que pongo en los empty objects que uso para agrupar otros objetos y que hace que en tiempo de ejecución te suba todos los objetos anidados a la ráiz de la jerarquía. El problema es que cuando anidas objetos sus transforms se calculan teniendo en cuenta el transform del objeto padre, por lo que a más niveles de jerarquía y mayor número de objetos anidados, más tiempo para calcular los transforms.

trueh
Автор

Porque tienes que poner los objetos staticos para reducir el batch

_AOMIX
Автор

No conozco Unity pero puedo decir y asegurar que toda la vida y en cualquier lenguaje de programación el uso de llamadas recursivas ha sido más lento que el uso de bucles y es posible (es solo una suposición) que el motor de Unity acceda a los subdirectorios de recursos usando llamadas recursivas no optimizadas.

Puede que tengas alguna opción en la configuración que permita la optimización de dichas llamadas recursivas, normalmente suele activar el uso de una pila de alto rendimiento que Unity no tiene activa por defecto para no consumir recursos.

Buen video, saludos.

aniballecter
Автор

eso pasa porque unity los trata como un solo objeto por lo tanto aunque solo se vea 1 de ellos se tienen que cargar todos a la vez ya que el objeto en sí es toda la isla.

Rafaelcraftero
Автор

Seguramente pasa por que estas usando algún proceso o búsqueda recursiva, por lo que al encontrar un GameObject que contenga otros dentro empieza un nuevo loop. Usar por ejemplo búsquedas por Tags aumenta muchísimo el consumo de memoria

Franfairline
Автор

Alva eso es por qué la relación de parentesco entre entidades en Unity tienen funcionalidades que tienen que calcularse.

jt
Автор

Lo dice en el libro de optimizacion de unity, despues de 50 assets o algo asi comienza a afectar la optimizacion

brayansantiagobetancourt
Автор

Trucazo de optimización :
-volver todo 2d

Ya

-Atte:JasperDev

MalmidTRASH
Автор

El principal problema de saltar de 2d a 3d T_T

leosalazar
Автор

Pregunta para el que sabe, en ese caso no conviene tener todos esos objetos afuera y renombrar cada uno a algo como "Island_Assets_*" o similar?

milanesap
Автор

Quizás sea algo del culling, a mi me paso algo parecido

sebalazarte
Автор

Tendra algo q ver si mezclas objetos estaticos y dinamicos bajo un mismo objeto padre???

davidramosdemalagatodojunto
Автор

el juego se podra correr en mis tostadora del 1998 ? 🥺

gabrielgt
Автор

Llevo unos años ya programando en unity y estoy de acuerdo con guius me cuesta creer que hacer eso dee tantos fps, lo que si me sucede bastante es que si estoy en el editor y tengo un padre abierto, se dibuja la malla de todos sus hijos en pantalla "mas que todo la de collisiones" y en esos casos si bajan los fps en mi caso de 170 a 140 en ocaciones pero, si ejecutas el juego ya al final sin el editor nada de esto tiene efecto al fin y al cabo, siempre desde el editor se tienen menos fps.

diego_
Автор

ninguna abstracción de interfaz es gratuita. No sé de unity, pero supongo que organizar objetos dentro de otros objetos implica polymorfismo y eso es una abstracción.

marcusmors