csütörtök, augusztus 12, 2021

az játék előrehaladottáról

Újabb videó a játékról.

Erre most két hónapot kellett várni, talán a legnehezebb dolog volt megcsinálni amivel most készültem el. Arról van szó, hogy tavaly decemberben rájöttem, hogy szükség lesz láthatósági információkat is számolni, amikor a 40 kis monszter próbált elkapni a Quake-ből konvertált pályán és már kezdett lassú lenni a játék. Persze, nem gondoltam bele, hogy nem rilíz verziót futtatok, abban biztos nem lett volna gond, meg hát ez az egyik kedvenc problémám is a számítógépes grafikában, amikor középiskola végén próbálkoztam Quake pályanézegetővel, ez volt az a feladat amin a legtöbbet törtem a fejem és nem is igazán sikerült megérteni a Plücker koordinátákat meg a konvex poligonok egymásra vágását, egyszer még mindenképpen implementálnom kell majd ezt.

Szóval azóta elmúlt lassan nyolc hónap és mostmár talán végére értem a láthatóságnak. Illetve két hónappal ezelőtt már megoldottam a problémát, de mivel én nem akarom letárolni a pályákat előre, hanem a játék folyamán akarom generálni őket, de azért egy egész nagy pályát lassan számolt ki a rendszer, meg kellett oldani, hogy csak részben oldjuk meg a feladatot kezdetben és a játékos haladásával párhuzamosan oldjam meg a láthatósági feladatokat amelyekkel ő találkozik, ha lehet, még mielőtt odaér. Persze, ez párhuzamos programozást is jelent, ami nagy fun, de elég sok hibalehetőség is van C++-ban, mert mindenkinek mindenhez hozzáférése van és abból ugye galiba szokott lenni. Mondjuk van már némi párhuzamosítási tapasztalatom, szóval relatív hamar sikerült felosztani az adatokat a szálak között és eldönteni, hogy mit hova kell másolni, hogy ne kelljen szinkronizálják az elérést, mert az hamar kudarcba tud fulladni.

Az elején kicsit nehezen tudtam elszánni magam arra, hogy ki is találjam a tér felosztását értelmes részekre amelyeket érdemes egyszerre megoldani, de aztán rájöttem, hogy végülis ez maga a láthatóság, szóval recikláltam a megoldást.

A videóról annyit, hogy az elején egy kicsit kolbászolok, hogy látszódjon, hogy minden rendben megy, aztán meg lejátszom az egészet újra kívülről, hogy bemutassam, hogyan számítja ki a rendszer lépésenként a láthatóságot. Szerencsére hamarabb kiszámolja, mint hogy azt be tudjam mutatni, hogy próbálja a játékoshoz közeli ismeretlen területeket felfedezni. Ha szerencsém lesz, egyszer talán oda is eljutok, hogy nem számolom ki a teljes pályát, hanem tényleg csak azokat a részeket, amelyek most éppen potenciálisan érdekesek a játékosnak.

A most következő részek már reméljük könnyebbek lesznek, legalábbis egyelőre úgy tűnik.

Annyit még hozzátennék, hogy egy időre csak egy windózos laptopom volt és gondoltam, megpróbálom beindítani a játékot windóz alatt is, de elég nagy fail lett belőle, azt hiszem, elnapolom ezt akkorra amikor már kész a játék nagyjából és ki akarom próbálni valami gyengébb gépen is, nem azon az erőművön ami nekem van. Az a baj, hogy rossz belegondolni, fájdalmas a windóz fejlesztés linux után. Szerintem nagyon fogom utálni az életem akkor.

Na most ennyi.

Zene. Ez mindig felvidít, mostanában egyre nagyobb szükségem van rá. Ha befuccsol ez a játék, akkor kiszállok játékokból végleg, de 64-re még írok egyet, mert ott kezdődött minden. Jó lesz időnként számolgatni a biteket megint.

Nincsenek megjegyzések: