"Insert name here"
Meeskond
- Marek Kikas Skype: marekk657 [Progeja, Story]
- Kairo Koik Skype: kairokoik [Progeja, Wiki]
Kogu projekt sai muudatuse!!!!
Twitter, blog
Eesmärk
Luua XNA'd kasutades PC'le ja xBox360'nele ning WP7-le lihtne "püüa õige element" stiilis mäng.
Mängu storypooles oled sina käru, kes peab püüdma õigeid elemente/väärismetalle ja mitte kinni püüdma dünamiiti.
Download it
Meie mäng, mis töötab ka Phone peal, asub aadressil: Go download it!
Features
MUST BE asjad
- Maps
- Basic player functionality (movement, interacting with world etc)
- Story
- Basic Items (weapons, some kind of currency)
- Goals / quests
- Levels / experience
- Enemies
- Combat
- Cool look
WOULD BE AWESOME
- Skills
- Potions, armor, special items (this also requires inventory system of some sort)
- NPC's, NPC shops
- Multiplayer !!!
- Crafting (mining, weapon making, weapon upgrading, alchemy etc)
- Side quests
Analüüs
Mida mängija teha saab(must be):
* Liikuda 8’s erinevas suunas oma karakteriga * Võidelda AI’dega ning saada nende maha löömise eest itemeid mis on ülesse korjatavad. * Täita põhi stoori ülesandeid mida mäng annab (stiilis tapa X kolli, mine sinna jms) * Surma saada ja mängu uuesti alustada / uuesti tekkida * Liikuda ühelt kaardilt teisele * Salvestada / laadida oma hetkeseis * Saada experience pointe erinevate tegevuste eest mängus ning sellega kaasnevalt ka leveleid
Teemati analüüs
--- Combat ---
Tavaline võitlus AI ja mängija vahel. Sõltub paljuski sinu varustusest, levelit ja exp tasemest. Ei ole võimalik level 1 kasutajaga minna mängu tugevamait AI-d tapma. Combati animeerimine ja korralikult spritedaga tööle saamine võib olla suurem tagasilöök. Kindlasti tuleb võtta prioriteediks, et ühe esimese asjana ära teha. Vastava combati vormile oleks vastav sprite.
Hetkel kõige suurem küsimus on kuidas sprited animeerida õieti. Combati võites saab kasutaja Experience pointe, mille kogunemisel kasvab ka kasutaja level. Leveliga jälle kasutaja üldine tugevus mängus.
--- Enemies ---
AI poolt juhitavad erinevad olevused. Võivad kasutajat rünnata kui kasutaja satub neile teatud range. AI tuleb teha piisavalt tark, et oskaks takistustest , mis mapil näha, mööduda. Korraliku algoritmi välja töötamine võib olla ajakulukas ja keeruline, küll aga annab rohkelt kogemusi. Mida tugevam ja suurema leveliga AI, seda suurem ka range, millelt ta kasutajat näeb. Kui selline suhe on vastupidine, siis AI pole huvitatud kasutaja ründamisest. Arendamise seisukohalt samuti üks keerukamaid osi.
--- Basic Items ---
Armor, relvad jms. Arendamise seisukohalt mitte väga keeruline.(Peaaegu juba valmis) Iga eseme tüüp on kindlate omadustega struct/class (täpsemalt selgitamisel) ja valmis defineeritud objekt on suures Listis, mis sisaldab mängu itemeid. Erinevatel itemi tüüpidel erinevad Listid, et ei oleks mõttetut koormamist. Võib ka mõelda lokaalsetele andmebaasidele, mis oleks veelgi kiirem.
--- Basic Player Functionality ---
Eraldiseisev klass, mis omab kõiki käitumis mis seotud kasutaja liikumisega, nupuvajutuste lugemisega. AI-le eraldi selline. Omavad sama baasklassi. Arendamiselt mitte väga keeruline. Suur matemaatika osakaal, et vektorid oleksid õieti arvutatud. Kindlasti oleks vaja võimalikult vara see ära teha, et saaks alustada mapi testimist. AI testimist kui AI valmis.
--- Map ---
Isometric map'i süsteemi kasutamine toob endaga kaas mõned eelised ja loomulikult ka osad takistused millega peab arvestama. Peamiseks probleemiks isometricu puhul on kasutajamugavuse tagamine ja graafika joonistamisele kuluv aeg. Ei tohi olla kohti kus kasutaja "ära kaob" ning kaotab silm-side oma karakteriga, see tekitab arusaamatusi ning segadust mängijas. Loomulikult peab saama minna majade või puude taha, kuid mapi ehitamisel peab silmas pidama, et iga kolmas nurk "pime" ei oleks. Suurema ajakuluga mure on tagada sujuv kuid samas reaalne ja mitte väga korduv kaardi "äär". Sattudes äärele lähemale peab mängija selgelt aru saama, et sealt enam edasi minna ei saa, see omakorda tähendab rohkem sprite.
Võrreldes mõne 2D(sidescrollingu) lahendusega annab isometric võimaluse kasutajale edasi anda paremat tunnet ning taju sellest mis mängus toimub. On olemas kerge ruumilisuse effekt ning liikuda on võimalik rohkem kui 4'jas suunas (2D puhul siis, ülesse, alla, vasakule ja paremale).
Kõige suurema ajakuluga asjaks on isometric mängu puhul graafika joonistamine. Mängija karakter, vastased ning muud võimalikud "AI"'d on vaja joonistada pea 30'nes eri vaates, et tagada mõistlikult sujuv liikumine erinevates suundades. Rääkimata erinevatest tiledest ja itemitest.
Peamiseks põhjuseks miks meie tiim just isometricu valis 2D ja 3D asemel on hea ajakulu ning võimaluste suhe. Kuigi sidescrolleri saab teha kiiremini kui isometricut on seal võimalusi jällegi vähem. 3D puhul on jällegi võimalusi kõvasti, kuid ajakulu sellevõrra suurem.
--- Quests ---
Iga RPG juurde kuuluvad questid. Erinevad ülesanded mis antakse karakterile tegemiseks. Questide mõte on anda edasi osa mängu storyist ning samuti pakkuda mängijale erinevaid tegevusi mängus peale lihtsa vastaste mättasse löömise. Questi süsteem iseenesest on lihtne. Pead tegema X asja, saad vstutasuks Y asja ning vahest ka järgmise questi mille Y on parem kui esimesel. X tegevused on tavaliselt järgmised:
* Tuua mingi asi questi andijale * Viia mingi asi kellegile * Rääkida kellegiga * Lüüa maha N kolli * Minna mingisugusesse kohta.
Questide raske osa on nende ülesannete väljamõtlemine ning tegevuste sidumine story ja/või olustiku/tegelastega.
--- GUI ---
GUI ülesanne on anda kasutajale edasi võimalikult vähe kuid samas võimalikult olulist infot. Mängija jaoks ei ole oluline millist kaardijuppi hetkel renderdatakse, vaid see kui palju on tal elusid või mis level ta on.
GUI peab olema lihtne, arusaadav, eristatav muust ning loomulikult informatiivne. Oluline on kindlaks teha see informatsioon mis on kasutaja jaoks oluline koguaeg ning see info mis on kasutaja jaoks sekundaarne. Näiteks on elud ja level oluline koguaeg, kuid täpne karakteri statistika pigem sekundaarne.
GUI arendamisel äärekive olla ei tohiks senikaua kuni on paberil välja mõeldud mis infot ja millal kasutajale näidata ning kust ja kuidas see kättesaadav on.