Hay algunos problemas que he encontrado en mi juego basado en el ruido Perlin. Echa un vistazo a la captura de pantalla adjunta a continuación.
Las áreas blancas que ves son paredes, y las áreas negras son transitables. El triángulo en el medio es el jugador.
Implementé la física en este juego dibujándola en una textura (píxeles blancos o negros) y luego obteniéndola de la CPU.
Sin embargo, ahora estoy con un problema diferente a la mano. Quiero que las unidades (o escalofríos, como los llames) se generen constantemente, en el borde de la pantalla. El punto aquí es que en el juego final, habrá una "niebla de guerra" que no permitirá que el jugador vea tan lejos de todos modos.
Pensé que podría escanear los píxeles en el borde de la pantalla y ver si su textura física es negra, y luego generar cosas al azar allí. Sin embargo, si echas un segundo vistazo a la captura de pantalla, hay (en la esquina superior izquierda) un ejemplo de dónde no quisiera que aparezcan los pelos de punta (ya que no podrían alcanzar al jugador desde allí) .
¿Es posible que la GPU determine de alguna manera estos puntos de generación para mí, o de alguna otra manera? Pensé en hacer vectores entre el punto propuesto en el borde de la pantalla y el reproductor, y luego seguirlo cada 10 vóxeles, y ver si una pared choca, antes de generar una unidad allí.
Sin embargo, la solución propuesta anteriormente puede ser demasiado intensiva de la CPU.
¿Alguna sugerencia sobre este asunto?
Nota 1 Para las unidades engendradas, no quiero utilizar ninguna forma de búsqueda de caminos para evitar colisiones en la pared mientras estas unidades corren hacia el jugador. Por lo tanto, las unidades deben aparecer en el borde de la pantalla, en un lugar donde caminar en línea recta hacia el jugador no chocaría con ninguna pared.