Igen, teljes játékdemó (van bekezdés, tárgyalás, befejezés:) )!
A legutóbbi bejegyzés óta gyakorlatilag minden fejlesztés ennek az elkészítéséért történt. Többek között:
Már nem csak a script hivatkozhat párbeszédre, hanem a párbeszéd is hivatkozhat scriptre így biztosítva a feltételes elágazást egy párbeszéd során.
A játék állását (szinte minden esetben maradéktalanul) el lehet menteni. Ez főként a script belső állapotának kezelésének köszönhető.
Egyszerű, de nagyszerű funkció: screenshot mentése.
A keretrendszer kapott egy indító menüt. Itt ki lehet választani milyen felbontásban / módban induljon a játék ill. hogy melyik mentést töltse be - idővel egy elmentett screenshot fogja könnyebben azonosíthatóvá tenni a mentést.
Végül pár zavaró hiba javítása: nem nyeli el a rendszerbillentyű eseményeket az alkalmazás ill. az egér az ablakhoz képest relatívan rögzül.
A link:
https://www.dropbox.com/s/cqzihwvpiabltle/sakura_r1760_win32_bin.zip
https://www.dropbox.com/s/m0gwpwhksbm6akw/sakura_demo_2014_02_02_grypaniav2.zip
és ha valakinek gondja OpenAL32.dll támad, akkor még ezt az apró csomagot is le kell töltenie:
https://www.dropbox.com/s/etuk90d11povamo/OpenAL32.zip
Amit érdemes megjegyezni a demó kapcsán, mert zavaró lehet
- eltűnik az egér kurzor - de elő lehet hozni
- az introt egyszer végig kell nézni, mert van egy minimális történet
- ahhoz, hogy egy kulccsal nyitható ajtó kinyíljon közel kell a zárhoz állni (aminek sikerességéről az ajtó "tájékoztat" is
- az életerő a szereplő neve után van feltüntetve pirossal
- a fegyver típusa a fegyver neve után van feltüntetve (1, 2 vagy 3) utána pedig a töltényszám
- sajnos az inverz kinematika elég sűrű bugzik - néha eltűnik a felsőtest
- nincsen automata mentés "fontos" pontoknál - célszerű akciómentes részeknél menteni
- játék betöltés csak az indító menüben van - játék (vissza)töltéséhez ki kell lépni
- nem jelzi a játék ha a mentés megtörtént és maga a mentés megakasztja a játékot pár tizedmásodpercre
- H gombra előjön help szöveg, ami leírja melyik gomb mit csinál
- párbeszéd alatt a választási lehetőségek között le-fellel lehet váltani és lövés gombbal választani
Végül pedig következzen pár dolog, ami nem kapcsolódott ide:
többféle égbolt kezelése, mint pl. skybox, skydome, skysphere. Ez utóbbi nagyon érdekes eset, mert kvázi térképészeti problémákkal találkozunk - nevezetesen gömb kiterítése síkra.
Cubemap mipmap kezelése. Ehhez igénybe vettem az AMD CubemapGen-jét ill. ehelyett ahol lehetséges seamless cubemapet használok.
HDR fileformátumban való mentés. Jelenleg ez a legegyszerűbb és leginkább támogatott fileformátum a HDR képek mentésénél. Főleg envprobe-oknál hasznos.
Saját scriptnyelv kialakítása. Ebben a témában még csak néhány lépést tettem. Az indíttatást a játékmentés adta az által, hogy le kell menteni a scriptben használt változókat is. A szereplők által használt változókkal ez automatikusan megtörtént eddig is. Viszont ha a script változói egyben a szereplő változói is lennének, akkor nem kellene ilyenre figyelni ill. nem kell ugyanazt a változót kétszer elmenteni valamint sokkal gyorsabb lehetne a C-script közötti "változókezelés". Luában ez egy wrappelt get ill. set függvényen keresztül zajlik, aminél létezne potenciálisan gyorsabb megoldás is. Persze ilyen esetben már nem egy általános scriptnyelvről, hanem egy (játék)specifikus scriptről lenne szó.
"Egyetlen gond" a saját nyelvvel, hogy rengeteg hibalehetőséget hordoz emiatt rengeteg fejlesztési időbe kerül.