Pirmiausia noriu pasidžiaugti, kad vėl turiu daugiau laiko ir noro čia ką nors parašyti. Nuo paskutinio įrašo, kaip ir reikėtų tikėtis, mano kuriamas žaidimas nemažai pasikeitė. Turbūt apie visus pakitimus viename įraše tikrai nesugebėsiu parašyti, tai parašysiu kelis. Reikėtų sugrupuoti informaciją, o kur geriau tai daryti kaip ne ant elektroninio popieriaus.
Taigi didžiausia naujiena - žaidimas perėjo nuo Allegro prie HGE žaidimų varikliuko. Seniai seniai minėjau, kad programuoju savo GUI elementus. Tai va, gan smagiai ten viskas išėjo ir šiuo metu naudoju savo GUI klases gan patogiai. O apskritai žaidimo filosofiją šiek tiek (o gal ir labai pakeičiau), pabandysiu išryškinti pagrindines išvadas, kurios prašite prisiprašė per šiuos kelis mėnesius:
1) Labirintai tokie, kokius juos įsivaizdavau, nėra įdomūs.
2) Spaudalioti daug GUI mygtukų nėra įdomu.
3) Laikyti galvoje daug kintamųjų nėra įdomu (su išimtimis, aišku).
4) Būti apdovanotam kažkuo, kas neaišku, ką daro, visai neįdomu.
5) Būti spaudžiamam laiko apribojimų kiekviename žingsnyje neįdomu, tai net varo stresą.
Dabar apie kiekvieną:
1) Kažkada įsidrąsinau tiek, kad parodžiau savo žaidimo demo kitiems. Tikriausiai niekas nesigilino, bet labirinto "arena" buvo kvadrato formos, tai buvo idealus (ta prasme, kad iš bet kurio taško į bet kurį kitą buvo vienas kelias) labirintas, kurio vidury buvo "išmušama" skylė ir patalpinami minotaurai. Šis būdas generuoti žemėlapį man labai greitai pasirodė netinkamas dėl to, kad žaidėjas nuo pat pradžių buvo įmetamas į žaidimą kaip kačiukas į tvenkinį. Plius tokiu principu žaidžiamas žaidimas (t.y. vien arenos kovos) atima man labai brangų atradimų žaidime elementą. Sugalvojau, kad labirintą reikia paskirstyti netolygiai ir kad turi būti ne tik kovos arenoje, bet ir lobių bei svarbių NPC paieška labirintuose. Čia pirmieji bandymai:
Kad būtų kažkoks tikslas, sugalvojau, kad minotaurai gali grobti labirinto dalis ir kuo daugiau tų labirinto atkarpų turi, tuo daugiau gauni resursų (plačiąja prasme) tarp turnyro varžybų. Antrame paveiksliuke net yra rodyklė, rodantį, kur ieškoti taikinio - priešininko (arba kriterių) vėliavos. Dešinėje viršuje matomas žemėlapis. Šie du dalykėliai buvo paskutinės dvi vinys į labirinto generavimo karstą. Jei jau reikia tokių dalykų, reiškia kuri, žmogau, kažką labai painaus. Supratau bendrą tiesą apie žaidimų susijusių su labirintais programavimą - programuoti juos įdomiau nei žaisti.:) O programavau aš tai tikrai laaabai ilgai. Kol kas čia sustabdysiu aprašymą, o vėliau grįšiu prie žemėlapių apskritai.
2) Vienu metu reikėjo paspausti nemažai mygtukų ir kitų "šudukų", kad vien tik atsirastum labirinte. Dar "kovoju" su šia problema. Žaidėjas juk nori žaisti, o ne naršyti po finansines labirinto ataskaitas:
Beje, taip atrodė "visas" labirintas. Kiekvienas kvadračiukas turėjo savo statistiką, vieni buvo geresni, bet sunkiau užgrobiami, kiti - atvirkščiai. Bet ne apie tai kalba. Šitą vaizdą mačiau per dažnai - nori į labirintą? še tau šį pasirinkimo meniu, nori pastatyti statulą "savo" labirinto daly? še tau šitą vaizdą, nori užpulti kito minotauro labirintą? še tau tas pats. Neįdomu.
3) Esu parašęs ganėtinai sklandų navigacijos labirinte algoritmą - minotaurai gražiai ir tolygiai pasuka, kai pribėga prie kampo, o ne staigiai kaip robotai po sėkundės šimtųjų jau žiūri priešinga kryptimi. Ir į šį jau ir taip sudėtingą kodo makaroną man būtinai reikėjo dar visko pridėti. Kai pagalvoju apie priežastį, juokinga iš savęs pasidaro - man reikėjo, kad minotaurų stats'ai būtų daugiau kur panaudojami. Atsirado tokie akivaizdžiai "prasmingi" skaičiukai kaip acceleration rate, decceleration rate, turn rate ir pan. Virš dešimties kažkių keistų (na, gal šiek tiek inovatoriškų tokiam žanrui) charakteristikų. Mano galvai - per daug. Švelniai pereinam prie...
4) Kas geriau: greičiau įsibegėti ar greičiau sustoti?:) Arba ką reiškia užrašas ant sandalų +0,004 turn rate? Daug nereikalingos ir neaiškios informacijos. Išmesti.
5) Pirmojo punkto antrajame paveiksliuke matyti dar kaikas - laikas likęs minotaurui būti labirinte. Na, "savo" dalyje galėjai būti kiek širdis geidžia, bet pas priešininkus galėjai būti tam tikrą laiką. Neįdomu visu greičiu lėkti ten kur rodo raudonas kursorius ir dar aptikti, kad tai visai ne iš tos sienos pusės. Laikas turėtų būti kaip kažkas "optimalaus" - pasimatuoti, kieno jis trumpesnis ar ką.
Keli vaizdai iš to, kas buvo:
Jei ką, žaidimo toli gražu nemečiau:
Stilius greičiausiai pasikeis, bet turėtų jaustis tokių žaidimų kaip Diablo (jo net nežaidžiau) ir Titan quest prieskonis.
Dabar trumpam grįšiu prie šiuo metu man aktualiausios temos - žemėlapio generavimas. Apskritai žaidimas grįžo į kokią v0.3 stadiją, nes nei minotaurų, nei labirintų kol kas nevaizduoju, bet jau daug padariau, kad kai vaizduosiu, tai bus pačiam malonu pažiūrėti, kas ten ir kaip. Prie žemėlapių nusprenžiau prieiti iš kito galo - apibrėžti susidomėjimo objektus (points of interest) ir žemėlapį sudarity apie juos. Kas galėtų būtie tie susidomėjimo objektai:
a) kažkokios žaidimo brangenybės (skaitykit - auksas);
b) daiktai, padedantys lengviau žaisti (ekipiruotė);
c) gal kokie raktai ar pan;
d) užduočių tikslai;
e) prekeiviai;
f) treneriai;
g) kriteriai (pavojaus, bet ir turto šaltiniai);
h) spąstai;
Kol kas žemėlapio topologiją nustatau pats (tiesą sakant, kadangi man kol kas nesvarbu, ji nuolat ta pati), bet, manau, visai įmanoma, kad įdomias topologijas generuotų kompiuteris. Ką aš turiu šiuo metu:
1) Apibrėžiam kelis susidomėjimo objektus (taikinius) ir bandysim juos sujungti prasmingais būdais. Tam paskaičiuosim, kurie labirinto elementai arčiau kurių taikinių:
Išėjo kaip ir Voronoi diagrama:) Toliau sugalvojau, kad reikia rasti vietas, kur tos zonos kertasi ir nuo ten pradėti "gręžti" iki taikinių, tam, aišku, rikia pirmiausia surasti zonų pakraščius:
Tada iš atsitiktinai parinktų pakraščių dalių tiesiamas labirintas tol, kol visi taikiniai pasiekti:
Baisu! Supratau, kad grįžau prie rodyklės ir žemėlapio.;) Tad ėmiausi patobulinimų: taikiniai "traukia" besikuriantį labirintą, jei jis pakankamai arti. Yra keli parametrai, kurie valdo, kiek traukia ir nuo kurio atstumo. Pvz., traukia labai:
Traukia mažiau:
Jau visai nieko, sakyčiau. Arti mano tikslo. O kam čia visa tai? Manau, iš kito paveiksliuko daug kas paaiškės:
Dar pridėkime pakeliui kriterių ir smulkių apdovanojimų ir turime visai nieko pagrindą žemėlapiui.:)
Žemėlapiai tikriausiai bus mažesni ir topologiškai įvairesni (čia kol kas taikiniai visą laiką buvo tose pačiose vietose). Daug prirašiau, bet čia nedidelė dalis to, kas prisikaupė.