carduri generație

Procesul de generare hartă la scară.

carte Generation - este procesul de creare a unei aleatoare obiecte geografice și geologice de pe hartă atunci când porniți prima dată jocul pe slotul gol pentru lumea jocului. Procesul de generare este afișată pe scara, care pot fi văzute la primele cărți generație. Dar această carte nu va fi generat până la sfârșitul anului. Aceasta va continua să fie generate pe măsură ce avansezi pe hartă. Acest lucru se face pentru a nu încărca jocul și generarea de calculator a primului termen.

Non-generat pe site-ul mai mult o parte vizibilă a hărții roca de bază.


Algoritmul de generare a schimbat de mai multe ori. Acum, peisajul este generat, stocate și încărcate de pe disc și descrie de bucăți de 16 × 16 × 16 blocuri. Fiecare piesă are o valoare de offset, care este stocat ca un întreg pe 32 de biți și poate fi în intervalul de la aproximativ două miliarde de minus la plus două miliarde de. Cu toate acestea, lumea este limitată și este generată doar în coordonatele bloc, la 30 de milioane în toate direcțiile. Anterior, această limită nu a fost și a fost posibil să se meargă dincolo de primul interval (care este de aproximativ un sfert din distanța de la Pământ la Soare), apoi noile piese încep să se suprapună un vechi (așa-numita „Distant Land“. Și, după depășirea saisprezecea a acestei distanțe , funcții care utilizează numere întregi pentru a lucra cu blocuri de numere, cum ar fi utilizarea de instrumente și căi de căutare se va comporta ciudat.

În primele versiuni ale jocului pentru a da lumii formează înălțimile hărții bidimensionale pe baza de zgomot Perlin a fost folosit. Sau, pentru a fi mai precis, o carduri de câteva înălțimi. Una pentru înălțimea totală, una pentru teren accidentat si unul pentru detalii fine. Pentru fiecare coloană de blocuri este egală cu înălțimea (înălțimea totală + (rugozitatea x părți)) × 64 + 64. Hărțile de înălțimea totală și rugozitatea au fost netede, zgomot puternic scalate, iar detaliile au fost mai mici. Această metodă a fost un mare avantaj în viteză, deoarece era necesar să-și petreacă un total de 16 × 16 × (kolichestvo_shumov) calcule pe o bucată de carte, dar a fost lipsa unui peisaj plictisitor. În special din cauza incapacității de a genera overhanging ledges la sol.

Acum, (cu aproximativ 1,3 Beta) a trebuit să se mute într-un sistem similar, folosind un zgomot Perlin tridimensional. „Înălțimea terenului“ acum nu mai este generat. Valoarea de zgomot a fost considerată ca fiind „densitate“ și toate blocurile care au o densitate mai mică de 0 sunt aer și blocuri cu o densitate mai mare sau egală cu 0 - sol. Pentru stratul de jos a fost greu, iar de sus - nu este prezent, rezultatul obținut se adaugă la înălțimea (decalat în raport cu nivelul mării).

Din păcate, imediat au existat probleme de performanță și capacitatea de joc. Primul - datorită numărului mare de calcule necesare, al doilea - din cauza lipsei de zone plane și dealuri netede. Soluția la ambele probleme este de a reduce permisiunea de calcul (8x scalarea coloane 4x cât și pe verticală) și peisaj dostraivaniya prin interpolare liniară. În plan și dealuri de joc, și de-a lungul mai dispărut plutind în blocurile de aer.

Formula finală, care este utilizat în prezent, un pic îmbunătățit. Ea a evoluat lent în timpul dezvoltării jocului și, de altfel, în continuare, folosind hărți bidimensionale și zgomot altitudine.