Kosminio Žingsninio Strateginio Žaidimo Kūrimas. Duomenų Bazės Projektavimas Ir Realizavimas Šiaulių Universitetas 2010
Total Page:16
File Type:pdf, Size:1020Kb
ŠIAULIŲ UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA Remigijus Valčiukas Informatikos specialybės IV kurso dieninio skyriaus studentas Kosminio žingsninio strateginio žaidimo kūrimas. Duomenų bazės projektavimas ir realizavimas Development of Space Turn-Based Strategy Game: Database Design and Implementation BAKALAURO DARBAS Darbo vadovas: Lekt. G. Lūža Recenzentas: Lekt. V.Giedrimas Šiauliai, 2010 Turinys Įvadas ............................................................................................................................................................................. 3 1. Analitinė dalis ....................................................................................................................................................... 4 1.1 Programos be apribojimų .............................................................................................................. 4 1.2 Kompiuteriniai žaidimai ............................................................................................................... 4 1.3 Analogai ........................................................................................................................................ 5 1.4 Kosminis žingsninis strateginis žaidimas...................................................................................... 8 2. Projektinė dalis ..................................................................................................................................................... 9 2.1. Įrankių ir priemonių pasirinkimo analizė ...................................................................................... 9 2.2. Projekto darbo planas .................................................................................................................. 10 2.3. Pradinis projekto aprašymas ....................................................................................................... 11 3. Realizacinė dalis ................................................................................................................................................. 14 3.1. Darbų įvykdymo grafikas............................................................................................................ 14 3.2. Galutinis projekto aprašymas ...................................................................................................... 15 3.3. Problemos ir jų sprendimų būdai ................................................................................................ 20 3.4. Darbo rezultatų analizė ............................................................................................................... 21 3.5. Rekomendacijos .......................................................................................................................... 25 Išvados ......................................................................................................................................................................... 26 Literatūra ..................................................................................................................................................................... 27 Anotacija...................................................................................................................................................................... 29 Priedai .......................................................................................................................................................................... 30 1. DVD turinys .................................................................................................................................... 30 2. 3D Orion: Koncepcinis žaidimo modelis ........................................................................................ 31 3. Kosminio žingsninio strateginio kūrimas: Projekto aprašymas: ..................................................... 34 4. Norint peržiūrėti žaidimo variklio projektą ir jį sukompiliuoti jums reikia: ................................... 39 5. Norint peržiūrėti naujausią žaidimo variklio projektą: ................................................................... 39 2 Įvadas Kompiuterinėms technologijoms vis labiau skverbiantis į mūsų gyvenimus kompiuteris tampa neatsiejama kasdienybės dalimi. Sukurta begalė įvairiausių programų, kuriomis dirbame savo darbus, naršome internete, bendraujame su draugais, žaidžiame. Problema ta, kad greitai besivystančiame pasaulyje programos greitai pasensta ir yra nebenaudojamos dėl pasikeitusių reikalavimų ar poreikių, o naujų programų kūrimas reikalauja daug resursų: profesionalių programuotojų ir laiko. Tas pats taikoma ir duomenų bazėm. Jos kuriamos konkrečiai užduočiai, o pasikeitus duomenų struktūroms ją reikia perkurti. Šiuo metu itin didelę paklausą rinkoje turi kompiuteriniai žaidimai. Tai sudėtingos programos, kurios kuriamos metų metus. Žaidimo modeliui palaikyti reikalingas žaidimo varikliukas, o jį atvaizduoti grafikos varikliukas. Kiekvienas žaidimo modelis yra unikalus arba skiriasi jame esančiais objektais. Visą žaidimo modelį, jo duomenis reikia saugoti ir jeigu jie yra saugomi duomenų bazėje, vadinasi kiekvienam žaidimui reikės skirtingos duomenų bazės struktūros. Šio darbo tikslas yra suprojektuoti kosminių žingsninių strateginių žaidimų duomenų bazę, kuri nepriklausytų nuo konkretaus žaidimo ir optimizuoti jos struktūrą konkrečiam žaidimui. Darbo uždaviniai: 1. Kosminio žingsnio strateginio žaidimo koncepcinio modelio analizė. 2. Kosminio žingsnio strateginio žaidimo duomenų bazės projektavimas. 3. Duomenų bazės valdymo sistemos parinkimas. 4. Invariantinės duomenų bazės kūrimas. 5. Duomenų bazės efektyvumo tyrimas. 6. Konkretaus žaidimo duomenų bazės optimizavimas. 7. Žaidimo varikliuko duomenų bazės modulio kūrimas. 3 1. Analitinė dalis 1.1 Programos be apribojimų Šiandieninis mūsų gyvenimas turbūt neįsivaizduojamas be kompiuterių. Tai įrankis kuriuo naudojamės kiekvieną dieną. Įvairios programos palengvina mūsų darbus, galime skaityti naujienas internetiniuose portaluose, pramogauti. Kompiuterinių programų industrija nuolat tobulėja. Rinkai siūlo vis naujesnes, patogesnes, greičiau veikiančias bei su įvairiomis užduotomis susidorojančias programas. Tačiau programos rašomos labai siaurai sričiai arba konkrečiam uždaviniui spręsti. Realiame pasaulyje viskas labai greitai kinta, programos greitai pasensta. Nors ir nežymiai pasikeitus užduoties reikalavimams ar mūsų poreikiams, senosios naudotos programos skirtos tai užduočiai nebetinka, todėl reikia kurti naujas programas arba daryti tų programų atnaujinimus. Tą patį galima pasakyti ir apie duomenų bazes bei jų kūrimą. Visos jos yra kuriamos konkrečiam tikslui, konkretiem duomenims saugoti. Jeigu programa atnaujinama arba perkuriama, o joje atsirandą nauji duomenys, tada reikia perkurti ir pačią duomenų bazę arba ją pakoreguoti, kad duomenis galėtume išsaugoti. Tenka vėl iš naujo analizuoti visą duomenų struktūrą, o tai atima daug programuotojo laiko ir viskas ilgai užsitęsia. Kad sutaupytume resursų reikia kurti universalias programų sistemas, kurios tiktų daugeliui užduočių spręsti. Kaip pavyzdys būtų tinklapių turinio valdymo sistemos. Su šiuo įrankių galima greitai sukurti internetinį puslapį, keisti jo funkcionalumą ne tik programuotojui, bet ir įgudusiam vartotojui [1]. 1.2 Kompiuteriniai žaidimai Viena iš sparčiausiai besivystančių programų sistemų yra kompiuteriniai žaidimai. Šių programų paklausa vis auga ir užima didžiąją dalį rinkos [2]. Kompiuteriniai žaidimai tai sudėtingos programos, kuriose pritaikomos naujausios ir sudėtingiausios technologijos — tokios kaip dirbtinis intelektas, kuris gali valdyti žaidimo objektus bei mokytis iš žaidėjo. Sudėtingo žaidimo kūrimas labai daug resursų reikalaujantis procesas. Projektuojamas žaidimo varikliukas, kuris atsako už žaidimo eigą, jo fiziką(jai tokia yra ) ir žaidime atliekamus veiksmus [4][5]. Taip pat yra projektuojamas grafinis varikliukas, kuris atsako už gautos informacijos iš žaidimo 4 varikliuko atvaizdavimą bei tarpininkauja tarp žaidėjo ir varikliuko. Šie įrankiai gali būti naudojami panašiems žaidimams kurti, tačiau tam kad sukurtume žaidimą paremtą naujomis idėjomis reikia perkurti ir perprojektuoti įrankius, nes jie dažnai būna orientuoti į patį žaidimo modelį. Žaidimus galima suskirstyti pagal tai ar tai realaus laiko žaidimas ar žingsninis ir taip pat pagal žanrus [3]: • Strategija – šio žanro žaidimuose svarbiausia yra poreikis mąstyti. Čia žaidėjas vadovauja tam tikrai sistemai. Šis žanras dar skirstomas į ėjimų ir realaus laiko strategijas. Realaus laiko strategijose, žaidėjai žaidimo objektus kontroliuoja vienu metu, o ėjimų strategijoje — pirma vienas žaidėjas atlieka veiksmus su žaidimo objektais, po to perleidžiama eilė kitam žaidėjui. • Veiksmo žaidimai(angl. Action) – šie žaidimai remiasi „eik atakuok“ principu, visas veiksmas vyksta realiu laiku. Pvz: šaudyklės(žaidėjai kovoja vienas prieš kitą ginklais stengdamiesi vienas kitą nušauti). • Simuliatoriai – šio žanro žaidimuose svarbiausia yra tikroviškumas. Jie atkuria tam tikrus realaus gyvenimo veiksmus – pavyzdžiui automobilio, orlaivio valdymą ar kitą. • Nuotykių žaidimai (angl. Adventure) – šio žanro žaidimuose svarbiausia yra siužetas, istorija, kuri būna iš anksto sukurta. • Kita – galimos įvairios aukščiau išvardintų žanrų kombinacijos. 1.3 Analogai Panagrinėsime atviro kodo projektus „ClanLib“, „Stratagus” ir „Birth of the Empires“. Pirmasis įrankis „ClanLib“ — tai įrankių biblioteka orientuota kurti žaidimams. Ji