> Spiega un po' qui l'algoritmo che hai usato per creare i mondi e i dettagli dei mondi su Noctis partendo da un seme.
Be', come premessa avevo scritto il mio PRNG personale, reinventando il Park-Miller, che poi affiancavo alla versione rand () della stdlib del C++ della Borland. Il mio era veloce (moltiplicazione e modulo) pero` soffriva degli ovvi difetti di occasionale azzeramento dell'accumulatore, che introdussero strane sequenze di stelle allineate. Pazienza. Dovessi rifarlo oggi, su computer piu` veloci, userei il Mersenne Twister.
Poi procedevo con una specie di approccio frattale: a partire da un "seme galattico", da coordinate estratte pseudo-casualmente di una stella X, producevo un seme che riguardava quel sistema stellare e estraevo i parametri per le orbite dei pianeti e delle lune. Per ogni pianeta, a partire dai suoi parametri orbitali, di massa e diametro, producevo un altro seme che ne determinava la superficie (il che vuol dire che se un pianeta avesse avuto gli stessi, identici parametri di un altro, sarebbe stato identico all'altro). Arrivando alla superficie, mischiavo i dati della superficie alle coordinate del quadrante in cui atterrare, ed estraevo da quel seme l'orografia (heightmap) del territorio. Poi dividevo i quadranti in una griglia di 200x200 quadratini, e usavo le coordinate in griglia per estrarre posizione, forme e dimensioni dei dettagli come rocce, piante, eccetera per il quadrato centrato su quelle coordinate.
Insomma un gioco di scatole cinesi.
Le superfici erano generate da diversi algoritmi, il piu` usato era un generatore di rumore uniforme (come quando su Photoshop si sceglie il filtro "add noise" e poi si specifica "uniform"). Il rumore gaussiano avrebbe preso troppo tempo per i ripetuti passaggi su tutti i punti della heightmap. Al rumore uniforme applicavo un filtro media (con shifting per dividere), ripetuto un numero casuale ma piccolo di volte, cosi` da ottenere una superficie con grossi dettagli. A quella aggiungevo un altro po' di rumore e ripassavo con una media di magnitudine piu` piccola, e cosi` via. In altri casi aggiungevo colline e canyons proceduralmente.
In questi procedimenti in particolare, ma anche in generale, Noctis fu definito "a gargantuan mess of hacks". Definizione con cui concordo fieramente.