Ci sono alcuni problemi che ho riscontrato nel mio gioco basato sul rumore Perlin. Dai un'occhiata allo screenshot allegato qui sotto.
Le aree bianche che vedi sono pareti e le aree nere sono percorribili. Il triangolo nel mezzo è il giocatore.
Ho implementato la fisica in questo gioco disegnandolo su una trama (pixel bianchi o neri) e poi ottenendolo dalla CPU.
Tuttavia, ora ho un problema diverso a portata di mano. Voglio che le unità (o i brividi, qualunque cosa tu le chiami) si generino costantemente, ai margini dello schermo. Il punto qui è che nel gioco finale, ci sarà una "nebbia di guerra" che non consente al giocatore di vedere così lontano.
Ho pensato che potevo semplicemente scansionare i pixel sul bordo dello schermo e vedere se la loro trama fisica era nera, e quindi generare le cose in modo casuale lì. Tuttavia, se dai una seconda occhiata allo screenshot, c'è (nell'angolo in alto a sinistra) un esempio di dove non vorrei che i brividi si generassero (dal momento che non sarebbero in grado di raggiungere il giocatore da lì) .
È possibile in qualche modo fare in modo che la GPU determini questi punti di spawn per me o in qualche modo diverso? Ho pensato di creare dei vettori tra il punto proposto sul bordo dello schermo e il giocatore, e poi di seguirlo ogni 10 voxel, e vedere se un muro si scontra, prima di spawnare un'unità lì.
Tuttavia, la soluzione sopra proposta potrebbe richiedere un uso eccessivo della CPU.
Qualche suggerimento in merito?
Nota 1 Per le unità generate, non voglio usare alcuna forma di pathfinding per evitare collisioni con le pareti mentre queste unità corrono verso il giocatore. Pertanto, le unità devono spawnare sul bordo dello schermo, in un punto in cui camminare in linea retta verso il giocatore non si scontrerebbe con nessun muro.