2012 m. rugpjūčio 20 d., pirmadienis

Gyvatėlė

Sveiki,
Žaidimo pagrindinis meniu

šiame įraše aprašysiu savo programuota žaidimą "Gyvatėlė".
Klausiat kodėl "Gyvatėlė"? Priežastis paprasta, universitete pavasario semestre turėjom praktika, kur praktikos užduotis duoda iš įmonės atėjęs žmogus, o ne pats susigalvoji. Tai tarp visų galimų užduočių pasirinkau mano galva lengviausia, sukurti žaidimą. Pasirinkimą paskatino tai, kad šiek tiek patirties žaidimų kūrime turėjau, maniau kad nebus sunku. Taip pat tai buvo gan nebloga galimybė labiau pagilinti žinias į tai. O kitos užduotys buvo apie internetinių tinklapių skanavimą ir jos man skambėjo labai sudėtingai ir neaiškiai. 

 

Žaidimo realizavimas 

Testuojant
Žaidimą realizuot reikėjo su C# kalba. Kalba visai patraukli ir smagiai programuojasi. Ko gero dėl to kad objektinė kalba. Žaidimą nusprendžiau realizuot su Microsoft XNA Game Studio 4.0 platforma. Platforma pati visai nieko tik, kad susidūriau su vienu trūkumu, tai kad nėra jokios klasės priimti teksto įvedimui iš klaviatūros. Tenka tai pačiam apsirašyt, bent aš taip dariau. Žinoma galima internete susirasti visą klasę tam reikalui. Patį Xna platformos smagumą atradau kai stengiaus realizuoti gyvatėlės lygį, kai ji šliaužia naktyje. Kai su XNA pagalba buvo galima realizuoti tekstūrų persidengimą. Tada suvokiau, kad daug ko nežinau apie pačia XNA.
Žaidėjų rezultatams saugoti pasirinkau Microsoft SQL Server Compact 4.0 dėl to, kad tai yra lokali duomenų bazė. Kitaip tariant, atkrenta problema, kad nereikia palaikyti kokios nors duombazės serveryje. Žinoma tai turi ir minusą, kad kiekvienas žaidėjas mato tik asmeninius rekordus.

Prisijungimą prie duomenų bazės organizavau su Fluent-NHibernate. Kodėl būtent Fluent-NHibernate? Pats NHibernate duoda tai, kad nereik pačiam rašyt SQL užklausų, tik reik su xml failu apsirašyt savo duomenų bazės laukelius. Bet tai išsprendžia Fluent-NHibernate, kai automatiškai už tave tai atlieka. Tai labai patogu jei reik pakeisti duomenų bazėj laukelius.
Tik turėjau daug galvos skausmo bandant pasijungti. Internete mažai informacijos kaip pasijungti Compact duombazę prie Fluent-NHibernate, tad užgaišau gan nemažai laiko prie bandymo prijungti. Bet vis dėl to pajungiau :)

Gyvatės galvos eskizas
Pasisekė man, kad turiu draugų, kurie moka piešt, nes kitu atveju, žaidimas atrodytų kur kas prasčiau. Už tekstūras dėkoju Gabrielei. Apdirbant tekstūras buvo gan savotiška patirtis, kokiu formatu saugoti ir svarbiausia kokiu dydžiu. Ne ką įdomiau buvo ir pats tekstūrų įterpimas į žaidimą. Tik testavimas erzindavo, kad norint patikrinti kaip atrodo, tekdavo per naujo kompiliuoti pakeitus kelis kintamuosius.

Žaidimo garsų paieška buvo pats nuobodžiausias dalykas. Įvairiausių garsų radau tinkančių kokiai šaudyklei, lenktynių žaidimui, bet ne gyvatėlei. Tad žaidimo garsai nėra stipriausia žaidimo pusė.

Dirbant prie šio žaidimo naudojau CodePlex. Jame saugau visą žaidimo sourc'ą. Gan patogus įrankis, kai jei po blogo pakeitimo nebeveikia programa, galima lengvai atstatyti į tą kodo versiją kuri buvo prieš pakeitimą.
Galite parsiųsti ar vietoj peržiūrėt žaidimo kodą bei patį parsisiųsti žaidimą. Deja, žaidimo kodui trūksta dokumentacijos. O žaidimo kodą rasit čia.

Apibendrinant šis projektas buvo vertas to laiko, kurį praleidau (apie 3 mėnesius su pertraukom), nes nemažai išmokau ir sužinojau žaidimų kūrime. Bei taip praplėčiau akiratį. 


Žaidimo aprašymas

Gyvatės pasirinkimas
Žaidėjas žaidime turi tris gyvybęs. Žaidimas turi du žaidimo rėžimus: klasikinį ir nuotykių. Kaip ir sako pavadinimas, klasikiniam rėžime galima pasirinkti gyvatės spalvą ir sudėtingumo lygį, pagal kurį keičiasi gyvatės judėjimo greitis. Nuotykių rėžimas įdomesnis tuo, kad jame yra 6 lygiai. Pirmajame lygyje valdysite be galo ilgą gyvatę ir reiks stengtis išvengti kliūčių ir išsilaikyti kuo galima ilgiau. Antrajame lygyje gyvatę valdysite naktyje, kai aplink gyvatės galva matysite nediduką plotelį žaidimo lauko. Trečiajame lygyje po žaidimo lauką lakstys ir vabalas, kurį pagavus duodama kur kas daugiau taškų nei suvalgius paprastą maistą. Ketvirtajame lygyje gyvatės judėjimas pagreitės kas tam tikras laiko tarpas iki tokio greičio, kai gyvatė lakstys žaibiškai ir reiks nemažai įgūdžių gyvatei suvaldyt. Ir paskutiniai du lygiai nelabai kuo išsiskiriantys, paprasčiausiai kliūtys kitaip išdėliotos.



Šį žaidimą galite rast čia.

Komentarų nėra: