Descubre tu cuello de botella
Unos cientos de objetos en movimiento no deberían ser un problema. Sin embargo, algunos cientos de objetos colisionantes podrían ser. Tomará algunas pruebas, pero creo que el cuello de botella que tienes es la colisión.
Por cierto, ¿de cuántos objetos estamos hablando? ¿Qué es la plataforma? Cien objetos para un juego móvil no es lo mismo que cien para un juego web o cien objetos para un juego de escritorio.
Pruebe el mismo juego pero con colisiones entre los objetos cortados deshabilitados, y vea si logra retrasar cantidades similares de objetos. Si ese es el caso, significa que la gran cantidad de objetos es la causa del problema; de lo contrario, las colisiones son el problema.
Esto informará su decisión sobre lo que hará para mejorar el rendimiento. No todas las ideas a continuación se aplicarán, y de todos modos necesitará pruebas.
No hablaré sobre la optimización para una gran cantidad de objetos lejos del jugador, ya que el problema parece surgir al interactuar con los objetos.
hay un problema cuando haces que se muevan.
Si el problema ocurre al interactuar con los objetos, no está claro cómo eliminarlo no lo resolverá ... sin embargo, supongo que podría ayudar.
Solo diré que si los objetos alejados del jugador son un problema, puedes comenzar por tener niveles más pequeños, o buscar dividir el juego en trozos que puedas cargar y descargar dependiendo de dónde vaya el jugador.
Fuera de los límites
Creo que cuando se trata de limpiar los escombros, lo primero que debe tener es eliminar los objetos que están fuera de los límites. Por ejemplo, la pieza que cayó a un pozo. Si no hay forma de que el jugador pueda llegar allí para verlo, no hay razón para mantenerlo cerca.
Volveré a esto.
Hazlo más realista (parte 1)
Cuando corte madera con una sierra, hacha o herramienta similar, habrá material perdido (aserrín, virutas, etc.). Incluso si cortas con un láser, el láser quemará un poco de madera. Además, para cosas que no son de madera, generalmente habrá deformación alrededor del corte, desmoronamiento, etc.
Lo que digo es que el corte no es perfecto y se perderá algo de material. Puedes modelar eso en tu juego. Esa cosa roja mágica que corta tiene grosor. Elimina ese grosor de los objetos (agrega efectos de partículas si te sientes demasiado culpable).
Esto significa que no podrás cortar nada que sea más pequeño que ese grosor; de hecho, intentar hacerlo lo eliminará del juego. ¡Eso es bueno! Significa que hay un límite superior de la cantidad de escombros que habrá, y hay una forma mecánica de limpiarlo en el juego.
Cambiar engranajes para objetos pequeños
Esto funcionará mejor si las colisiones son el problema.
Una vez que un objeto es demasiado pequeño, los detalles de los diferentes ángulos que tiene son menos relevantes. Podría cambiar a una mecánica de colisión menos precisa. Por ejemplo, podría usar colisionadores circulares.
Puede tratar incluso objetos más pequeños sin colisión entre ellos; solo considere la colisión entre ellos y los objetos del agente (como el avatar del jugador o los personajes controlados por la IA).
Finalmente, los objetos muy pequeños podrían convertirse en polvo (efectos de partículas).
Hazlo más realista (parte 2)
Esto funcionará mejor si las colisiones son el problema.
El material se deforma y se rompe bajo presión. Si termina con objetos largos con muy poco grosor, divídalos en objetos más pequeños para que puedan aprovechar la solución anterior.
Podemos fingir que tenía un grosor demasiado pequeño que se desmorona y se rompe cuando lo golpeas.
Fusionar objetos
Esto funcionará mejor si el número de objetos es el problema.
Un truco común que muchos juegos usan para lidiar con grandes cantidades de caída que podrían dañar el rendimiento es agrupar las gotas juntas.
Podrías probar algo similar para objetos pequeños que están cerca uno del otro. Que se conviertan en un solo objeto. Sin embargo, no me refiero a unir las piezas. Me refiero a crear un solo objeto para manejar su física; aún puede representar las piezas individuales que formaron el objeto, tal vez utilizando técnicas similares a los efectos de partículas.
Hazlo más realista (parte 3)
¿Has oído hablar del viento? Hay viento en el mundo real.
Usa el viento para alejar los objetos pequeños.
Sé que puede sonar contra intuitivo, porque significa que los objetos pequeños no descansan, al menos no de inmediato. Lea a continuación antes de hacer su juicio.
Puede usar el viento para empujar objetos pequeños antes, o tan pronto como comiencen a acumularse. Lo que funcionará mejor si está utilizando optimizaciones para objetos pequeños (como combinarlos o eliminar colisiones entre ellos).
Además, si puede usar el viento para empujar elementos a los hoyos o fuera de los límites, puede usarlo como una excusa para eliminar los elementos. Te dije que volvería a eso. Incluso si no lo hace, puede servir como una excusa para eliminar objetos pequeños que están demasiado lejos del jugador, solo finja que el viento los eliminó mientras el jugador no estaba mirando.
Puedes quitar algunos objetos mientras el jugador no está mirando, tienes mi bendición.
Además de eso, ahora tienes una excusa para agregar viento, que puedes agregar como parte de otras mecánicas u obstáculos del juego. Incluso podría agregar a la narrativa el espíritu del viento que trata de mantener las cosas limpias, si así lo desea.
Nota : No necesariamente tiene que desencadenar el viento cuando hay escombros para limpiar (aunque eso funcionaría), es probable que el viento ocurra a intervalos aleatorios.
Castores!
¡Un castor molesto viene y roba tu madera!
¡Ahora tienes un tipo enemigo!
Además, por supuesto, eliminan la madera mientras no estabas mirando. Incluso puede diseñarlo para que vuelva a ver a un castor huyendo con un pedazo de madera donde solía ser una pila. Eso sería un momento memorable, explicará por qué desapareció la madera y resolverá algunos de los problemas de rendimiento que enfrenta, todo a la vez.
Todo es compensaciones
Existen limitaciones de la plataforma o las herramientas que ha elegido, incluso el tiempo y el presupuesto que tiene para desarrollar el juego es una limitación. Aún no puedes hacer una simulación perfecta de la realidad . Nadie puede .
Todos los desarrolladores trabajan dentro de las limitaciones que su plataforma objetivo y las herramientas que tenían en ese momento les impusieron, y los mejores juegos tenían que hacer concesiones para que el juego fuera divertido y atractivo ... incluso si eso significa menos realismo, de hecho, muchas veces son divertidas y atractivas porque no son realistas.
Deje que la creatividad provenga de esas limitaciones.
Sin embargo, también puedes hacer que tu juego sea más realista , eligiendo las partes de la realidad que sean convenientes para tu desarrollo. Tenga en cuenta que a veces quitar objetos que están lejos del jugador es parte del costo de hacer un juego divertido.