Meeskond "XNA (Xbox Not Available)"
Idee on teha heksagon võrgustikuga taktikaline lahinguväli, mida hiljem saab edasi arendada ja kasutada ka suurema mängu lahingute jaoks. Paljud strateegia ja rollimängud kasutavad taktikalist lahinguvälja mis kas rohkem või vähem nähtavalt on hexagon võrgustiku peal.
Civilization V –s on terve kaart heksagonidega kaetud. Seal eraldi taktikalist lahinguvälja ei eksisteeri. Kuid meie projektis on eraldi taktikaline lahinguväli, mis iga seikluse jooksul tekkiva konfliktisituatsiooni puhul tekitab uue lahinguvälja (vastavalt kohale ja vastastele). Meie projekt ei panusta välimusele. Piisav arusaadavus ja UI (User Interface) ja mugavus oleks küll vajalik. Eesmärgiks on teha toimiv mootor, mida saab hiljem kasutada erinevates strateegia ja/või rollimängudes. Et projekti tingimusi rahuldada (erinevad levelid, punktiarvestus), teeb sinna ümber ka väikese mängu.
Mis sinna peab jõudma teha?
Ideed
Mängu osa
Algul on mängijal näiteks 100 raha, mille eest otsustab mis tegelased oma meeskonda osta. Kui meeskond ostetud, hakkab seiklemise osa. Seiklus toimib kolmeste valikute kaupa. Näide: Kuhu soovid edasi minna? A) Rahulik metsarada B) Trollide loss C) Päkapiku relvapood
Valikud tekitatakse random generaatoriga ja on ühekordsed. Valikud välistavad teineteist. Näiteks kui valid minna mööda rahulikku metsarada siis trollide lossi enam pärast minna ei saa. Trollide lossis oleks ilmselt oodata lahingut trollidega (ehk ette tulebki lahinguväli, kus ühel pool on trollid ja teisel pool sinu team) ja ilmselt saab sealt mingi varanduse, näiteks võib pärast lahingut leida pudeli, mis teeb ühe su tegelastest tugevamaks. Kui su tegelased on juba haavatud ja nende jõud otsakorral, siis sa ilmselt trollide lossiga ei riskiks ja valiksid midagi muud kuhu minna. Kui valik tehtud (ja lahingud peetud või poes käidud) tuleb randomiga järgmine kolmene valik. Pärast näiteks 3 sellist stepi ongi päev läbi ja tuleb puhkuseraund (öö), kus tegelased saavad oma elud ja oskused, mis on ära kulutatud, tagasi. Pärast näiteks 9 valiku tegemist tuleb mängu lõpplahing.
Sinu valikutest, lahinguoskusest ja õnnest sõltub kui hästi sa oled end ette valmistanud mängu lõpus oleva lahingu (kui sa sinna üldse jõuad) võitmiseks. Lõpplahingu võit võib kas lõpetada mängu või viia sama seltskonna järgmisele tasemele (raskemale seiklusele). Kaotuse puhul algab mäng jälle esimesest tasemest peale ja saab uuesti tegelaste seltskonna valida.
Punktilugemine
Kuna punktilugemist nõutakse, tuleb meie mängus punktid selle eest, kui kaugele sa jõudsid (igast kolmesest valikust läbi närimine annab 10 punkti), võibolla lisapunktid selle eest kui palju raha teenisid jne.
Mitu mängijat
Lahinguvälja mootoril peaks olema mitme meeskonna (või lahingupoole) tugi. (mitte ainult 2)
Objektid
Elusad ja elutud objektid (treasure chest, kaevust saab juua nõiduse jaoks, jne). (Loomad, Humanoidid, Puud, Müürid). Elusad objektid on siis su team ja vastas(t)e team(id). Elusad objektid on kriitilised et sisse koodida.
Erinev maastik
Tegelase liikumisteele võivad ette jääda erinevad asjad. Näiteks iga samm soos võtab ära 3 p liikumispunkti, mets võtab 2 p , mägi 3 p, tee peal liikumine võtab ühe liikumispunkti.
Elude arvestus (health)
Loomadel ja Humanoididel on kehaosad, mitte pole nad lihtsalt hunnik elupunkte. Loomal on neli jalga ja pea mis hammustab. Humanoidil on 2 jalga, 2 kätt ja pea. Igal kehaosal on oma elud. Kui näiteks jala HP-d on 0 siis liigud aeglasemalt. Kui keegi näiteks lööb mõõgaga siis tõenäosus silma pihta saada on väiksem kui käele.
Multiplayer
Multiplayer'i tugi esialgu pole vajalik. Vaja teha vastastele AI, mis on suur töö. AI ei pea olema kuigi „tark“, ta peab vähemalt ründama (ehk siis töötama). Kui sinu teami elukas on valitud, siis on all näha tema skillide riba.
Spellid ja oskused
Humanoididel on erinevad nõidused ja oskused. Neil on kõigil oma efektid ja kaugused. Ilmselt esialgu ei tule keerulisemad spellid (mass-spellid, summonid). Nõidused on erineva tugevusega lihtsad nõidused. Meil on valmis karakterite template (nt odamees, vibumees, jne). Näiteks võluril: ühe lahingu jooksul saab lasta 3x magic missile, 2x lighting bolt. Warrioril on 2x defence, 1x triple strike. Magic missile on näiteks raadiuses 20 lastav. Kehaosale, kus see pihta saab, võtab 6 – 8 elupunkti maha. Lighting bolt raadius on 15 – 22 ja läheb kõikidele kehaosadele korraga pihta ja võtab 5 punkti maha. Kuna varustust ei ole siis löögid ja armorid on keskmised.
Liikumine
Kasutaja saab oma käigu jooksul kõiki oma tegelasi liigutada. Tegelastel on erinevad liikumiskiirused (maagil 4 sammu, warrioril 5 sammu). Kuna liikumine on kordamööda, siis peab kaardil näha olema, mis teed mööda liikuda saab.
Lisaks
Mingis vormis karakterite tugevamaks saamine. Kas see on seotud levelitega, ei tea veel, aga omadusi (jõud ja max_elud jne.) on suht lihtne tõsta. Equipment (asjad mida saab selga/jalga panna). Ei pruugi ajaliselt välja tulla, aga vaatab. Mul (Kristjan) läks equipmendi koodimiseks mu Exceli mängus üle nädala aja kindlasti. Poed. Tulevad, kindlasti saab endale juurde osta kaaslaseid. Kas poed, kus asju müüakse tulevad, sõltub sellest, kas meil tuleb karakteritele equipment või mitte.
Mis sinna sisse ilmselt veel ei tule? 1. Lahinguväljal olevate objektidega sekeldamine. Nagu näiteks katapultide, ratsude, uste ja muu sellise kasutamine. Ilmselt ei pane neid esialgu sissegi. 2. Erinevad vaated lahinguväljale. Ilmselt jääb meil algul scrollitav pealtvaade.
Tööjaotus
- Kristjan - idee + programmeerimine
- Ilmar - programmeerimine + wiki
- Lauri - teekonna leidmised AI jaoks, võrgustiku ülesehitus, jne.
Klasside kirjeldus
Klassi nimetus | Kirjeldus/Kommentaar |
---|---|
Game | Põhiklass, kus toimub mängu kasutajaliidese juhtimine |
GameEvent | Area-te ArrayList |
Area ja AreaCollection | Area on paiga kirjeldus (tekstuur, kirjeldus, poe tüüp jne). AreaCollection-is on Area-te lisamine ArrayList-i ja meetod mis tagastab suvalise Area. |
Entity | Entity võib olla nii tegelane kui ka mingi asi (varustus). Palju meetodeid varustusega tegelemiseks |
Team | Tegelaste grupp. Võib olla mängija poolt juhitud kui ka vastased |
Limb ja LimbCombination | Tegelase kehaosad, nagu jalad, käed, silmad |
MobCollection | Tegelaste ja elukatega mässaja. Tekitab elukatele andmed, valib pildid, meetod mis tagastab eluka (randomiga) |
Pood ja Poetekitaja | Entity-te pood. Poetekitaja oskab meil tekitada moment vaid kahte tüüpi poodi, elukate (palgasõdurite) pood ja asjade pood |
PoodControls | Poe kasutajaliides |
PartyControls | Mängija tiimi kasutajaliides. |
MemberOptions | Mängija tegelase kasutajaliides. |
EncounterWindow | Mängija kohtumine vastas(t)ega kasutajaliides. |
Logi
23. oktoober
Tegelastel on varustus, lahingutel saavad nad varustust lisaks rahale juurde. Tegelastel on ka kehaosad. Jäänud on veel ajutiste mängutegelaste piltide vahetamine teiste piltidega.
21. oktoober
DEFEAT ja VICTORY aknad.
17. oktoober
Valmis põhimenüü ja kolmesed valikud. Saime versioonihalduse korda.
8. oktoober
Poe menüü on täielikult funktsionaalne. TortoiseSVN ei tööta nii nagu ootasime.
Plaanis on homme teha teami/party menüü ja kui jõuab, siis kolmeste seikluste valik.
6. oktoober
Meiega liitus Lauri Kermas.
Läksime üle TortoiseSVN-ile.
3. oktoober
Poe tekitamise klassid ja esialgne poe menüü olemas.
Jama on see, et pole siiani saanud Source Control'i korralikult toimima (projekt kompileerub ainult ühes arvutis).
1. oktoober
Kasutajaliidese tegemine. Üritame aru saada kuidas nupu sündmusi käsitleda.
29. september
- Tiimi liikmete otsimine,
- tööjaotus,
- üritame aru saada, mis elukas see XNA on ja kuidas seal kasutajaliidest teha.
28. september
Mängisime C# -ga tehtud mängu, mille lähtekoodi me internetist alla tõmbasime. Mängul oli heksagon võrgustikuga kaart.
27. september
- Meeskonna liikmete otsimine. Tegime mitmele inimesele pakkumisi meiega ühineda. Öeldi ära kuna meie mängu on palju keerulisem teha kui tetrist.
- XNA installeerimine.
26. september
Valmis mängu projekti visand.