Attualmente sto lavorando su un platform 2D basato su piastrelle simile a Terraria in qualche modo, anche se ho difficoltà con la generazione del terreno. Ho fatto alcune nozioni di base, sebbene non risultino utili.
Ho provato alcune tecniche diverse come Perlin Noise e ho letto di altre come Midpoint Displacement, anche se non sono sicuro di quale sarebbe il migliore, o una combinazione di tecniche diverse per generare aree diverse. (Come Midpoint Displacement per la forma generale del terreno e Perlin Noise per le grotte.)
Ho trovato un'eccellente spiegazione di come potrei sovrapporlo con la libreria del rumore accidentale , sebbene sia in C ++, e non conosco abbastanza C ++ per compilarlo in una DLL che posso usare da C #. Ho provato a copiarlo in C #, anche se non so come unire due effetti insieme (il gradiente per la base generale e quindi il frattale per i dettagli).
Attualmente sto usando un frattale al plasma e i risultati sono estremamente vari. Ad esempio, può generare terreno in cui non vi è quasi alcuna superficie, oppure può generare terreno in cui non esiste alcuna superficie.
Un esempio di una mappa ok, sarebbe meglio con qualche miglioramento in più, però. (Il nero è solido, il bianco è aria):
E un esempio di una terribile mappa. (Il nero è solido, il bianco è aria):
Fondamentalmente, quello che sto chiedendo è, quale sarebbe un modo migliore per generare il terreno o forzarlo per assicurarsi che ci sia una ragionevole quantità di superficie, con il tempo di generazione il più veloce possibile. O, in alternativa, come sarei in grado di ottenere lo stesso risultato della Libreria del rumore accidentale, ma in C #.
Qualsiasi esempio sarebbe molto apprezzato.