Egyszerű és gyors generáló algoritmus terep

Egyszerű és gyors generáló algoritmus terepen 13

  • 10.01.17 11:22 •
  • Deathberry •
  • • # 319226
  • • Habrahabr
  • • a homokozóban
  • 38 •
  • 9200

- mint a Forbes, csak jobb.

Milyen helyzetben alkalmas algoritmus

Az algoritmus és az eredmény

Mielőtt ismertetnénk az algoritmus maga fogja megosztani az eredményeket:

Egyszerű és gyors generáló algoritmus terep


Az algoritmus, hogy a program kitölti a véletlenszerű térkép koordinátái véletlenszerű méretű doboz. Térkép formájában van egy kétdimenziós tömb képviselő a térképen a terep magasságát.

Az egyszerűség kedvéért, egy téglalapot hoz létre a szerkezet:


Az x1 és y1 - koordinálja a bal alsó téglalap, x2 és y2 - jobb felső sarokban.

- A mi térkép tömbje ábrázol HM [mapsizex] [mapsizey];
- mapsizey és mapsizex - a változók, amelyek meghatározzák, hogy mekkora a kártya;
- genStep - változó számát jelenti a téglalap;
- zscale - a kártya nyúlása magas. Akkor cserélje egy számot.
- recSizex és recSizey - korlátozza a méret a téglalap.

Most kell, hogy töltse ki a térképet a téglalap:


Relief a képen volt kapott értékek:

genStep = 1024
zscale = 512
mapsizex és mapsizey = 128
recSize = 10
Következő rajzol egy térképet a képernyőn bármilyen módon is. Az én esetemben - az OpenGL + glfw.

Előnyök és hátrányok az algoritmus

  • Az egyszerűség és a gyorsaság az írás az algoritmus
  • Az arány az algoritmus végrehajtásával

hátrányai:
  • kezdetlegesség
  • Amikor a kis lépés a töltés a kártya táj lesz a „tér”
  • Nincs lehetőség, hogy szakítani a táj a biomes során generáló szinttérképek

Ez a módszer, mint már említettük, különösen alkalmas a kezdők és az emberek, akik erősen korlátozott ideig.

Fűrész-képernyővédő DOS, aki bemutatja pontosan ugyanazt az algoritmust színes „plazma”. Az algoritmus lényege kitöltésével téglalapok mez®kre volt észrevehető lassulás közben a program, például a DOSBox jelenti. Ahelyett, hogy a magassága az algoritmus által generált sorszám a színátmenet palettán.

Ha lusta bajlódni Perlin zaj, a jó öreg Value zaj dolog, lényegében csak add interpoláció sima. És kapok valamit csak zaj valóban.

Miért ne hagyjuk, majd a gépet, ugyanazt a véletlen esélye, de lehetséges, hogy elsimítására bizonyos időközönként az értékek, ha szükséges, vagy korlátozni a tartomány maga kezdetben. Itt kis lapos terek között az abszolút zaj, hiszen ténylegesen alkalmazni? Több, mint egy vulkáni térképet a világ egy nagyon nagy magasságban.

Ez a lényeg, hogy én nem értem, hogyan kell használni a stratégia? Ha a generációs „passzív” a környezeti elemek, akkor rendben van, de ha az igazi szerencsejáték táj, hogyan? Anélkül, hogy legalább egy simító át az alap alatt lehetséges, vagy a játék mechanika, mint a kerülete, mint ez a játék?

Ha szükség van, hogy nem kell építeni - összehangolják a darab táj, tegyük fel, egy 4x4-es játék oldalon, és rajta mindent megtesznek épületben.

Láttam egy hasonló algoritmus
bolygók
értelmében ugyanaz, csak önkényesen darabok.

Általában minden érdekel itt az élet. Témája gazdag és nemes, de nem könnyű.

Úgy vélem, hogy a kis mennyiségű lépéseket az algoritmus, a kártya lesz nagyon négyzet, hogy valójában ismertetett, a minuses. És amikor nagy mennyiségű lépések - az első: majd elvesztette annak szükségességét, hogy az algoritmus, ha a fő érv - a sebességet; a második - ha jól értem, a magasságot fog felhalmozódni a jobb alsó sarokban a térképet (a maximum értékek az x és y). Ie Card elhelyezkedő sejtek ebben a sarkában kell kezelni gyakrabban, mint mások.

Abszolút. Ha például a cél az, hogy 4000h4000 terep sokszögek - az algoritmus szigorítani fogják, sem, amelyek valós idejű az egész területet, és már nem tud beszélni. Azonban az algoritmus jól használható rács méretek 32x32 és 512x512.
Ami a második probléma - a gyakorlatban ez a probléma a mérete több mint 32x32 nem merül fel. Ha szükség van, hogy elhagyja a ferde él a térképet, akkor korlátozzák a terület, ahol a négyzetek jönnek létre.

Lehet, hogy tévedek, de az egész ötlet a terep generáció nem kap valami véletlen, hanem inkább, hogy a mentesség, amely megfelel az előre meghatározott követelményeknek. Ala „itt - járhatatlan hegyek, és itt - szinte sík terepen”

Ezt le kell írni az algoritmus, nem? Van egy szakaszt a két hegy, az azt jelenti, elég. És a tó mélységét legfeljebb 25 egység. És ezen a területen voltak hárman - kis, közepes és nagyon átlagos. De ez a hely már véletlenszerűen, különben csak tudatosan teszi egy adott táj. Generation nem véletlen értékek általában történik?

Kapcsolódó cikkek