Meeskond:Hubris

From ICO wiki
Jump to navigationJump to search

Meeskond

Meeskonna liikmed:

  • Sander Maasikamäe
  • Allan Paalo
  • Madis Rääk


TFS

TFS:

  • teamhubris@outlook.com

Idee

Põhiidee:

  • 2D Mäng

Tehnoloogia:

  • Unity

Selgitus:

  • Mäng luuakse 2D Spritede alusel.
  • Üldjuhul toimub mäng AI vastu.
  • Seklus/Pusle mäng
  • Story põhineb iidsel küsimusel.
  • Liikumine malelaua moodi alusel
  • Mitu erinevat levelit


Analüüs

Üldanalüüs:

Meie projektiks on 2D seiklus/puslemäng Unitys, mis kasutab Internetist leitavaid või ise valmistatud „sprite“ ehk 2D kujutisi. Mängutegevus toimub ülevalt-alla vaatega maailmates või ruumides, mis koosnevad väljakutsetest ja labürintidest. Ruumid üldjuhul koosnevad seintest mida on võimatu läbida, see piirab ära nii vastaste kui mängija liikumise, mis võimaldab tekitada sobilikke väljakutseid. Eesmärgiks on luua mitu erinevat taset, mille raskusaste sõltub vastaste arvust ning ruumide ehitusest. Ruum loetakse lõpetatuks kui see on tehtud tühjaks kõigist vastastest. Mäng lõppeb kui kasutaja jõuab n.ö. lõpuruumi, ehk teatud ruumid on võimalik täiesti vahele jätta. See jätab võimaluse mängule lisada salaruume kuhu niisama pole võimalik saada. Maailma sisse tulevad kindlasti mõned elemendid(erinevad uksed, alad kus saab ainult ühe käigu seista jne) mida peab ruumilahendamisel arvesse võtma. Igas ruumis on kasutajal lubatud kasutada „RESET“ nuppu, taastab mängu tagasi sellisesse seisundisse kui mängija esimest korda astub lahendatavasse ruumi.

Kasutajate ning vastaste liikumine toimub grid ehk malelaua ruutude põhiselt, kus kõik olendid saavad liikuda kaheksas erinevas suunas: üles, alla, vasakule, paremale ning neljas diagnoaal suunas. Liikumine käib kordamööda. Kõigepealt liigub mängija ning siis vastased. Liikumise ulatus sõltub olendist, aga üldjuhul mängija saab liikuda ainult ühe ruudu. Kasutajal kontrolli all on tegelane koos tema ette seatud relvaga. Relv on alati suunatud selles suunas kuhu tegelane vaatab. Eraldatud on tegelase liikumine ning vaate suund Mängus olevatel olenditel, sealhulgas ka mängijal, on vaid üks elu, seega vigu teha ei tohi. Vastased hävinevad relvale vastu minnes koheselt ning samuti hävineb ka kasutaja tegelane vastasega kokku puutudes koheselt. Plaanis on ka luua erinevatele tasemele erinevad vastasetüübid.

Plaanis on luua ka kindel skoorisüsteem. Loetakse kokku mitu ruumi mängija lõpetas ning mitu käiku või sammu mängijal kulus, et jõuda lõppu. Mida rohkem mängija ruume lõpetab ning mida vähem samme ta selle käigus teeb, seda parem on ta punktiarvestus. Kuna mängu eesmärk on siiski ruume tühjendada, siis esmajärjekorras on võrdlusmaterjaliks mitu ruumi lahendatud sai. Mängu idee on arendada kasutaja mõtlemisvõimet ning punktide alusel on võimalik võrrelda inimeste oskusi tasemete lahendamisel.

Võimalikud Probleemid:

  • Internetis pole piisavalt sobilikke 2D sprite.

Lahendus: Luua ise photoshopis vajalikud või sobivad sprited.

  • Ruumide jaoks loodud funktsionaalsused ei ole huvitavad või ei paku väljakutseid.

Lahendus: Põhjalikult katsetada erinevaid ruumifunktsioone erinevates stsenaariumites ning vajadusel lisada või eemaldada funktsioone.

  • Vastaste loomine/programmeerimine võib osutuda väga keerukaks mistõttu ei teki väga palju unikaalse iseloomuga vastaseid.

Lahendus: Tuleb rohkem mõelda.

  • Mängija ning vastased ei reageeri maailmasse loodavatele funktsionaalsustele.

Lahendus: Testida maailma funktsionaalsusi koos vastaste ning mängijaga, et välistada võimalikke vigu.

Must Have:

  • Vähemalt 5 taset eri paigutustega ning raskustega
  • Juhitav tegelane koos relvaga.
  • Liikumine grid alusel 8 suunas (üles, alla, paremale, vasakule ning diagonaalis).
  • Ruumide avanemine vastaste hävitamisel.
  • Maailma lõpetamine kõigi ruumide tühjendamisel.
  • Retry ehk korduskatse võimalus.

Nice to Have:

  • XBOX kontroller ja ümberseadistatav klaviatuur.
  • Punktide edetabel.
  • Erinevatele tasemetele salaruumid.
  • Rohkem vastaste tüüpe.
  • Rohkem tasemeid.


Update DEMO/Prototüübiks

Must Have:

  • Vähemalt 5 taset eri paigutustega ning raskustega - Uus lahendus arenduse käigus: 1 pikem tase, ruumi raskus sõltub avatud uste arvust, kus lastakse sisse erinev arv vastaseid
  • Juhitav tegelane koos relvaga. - Tehtud
  • Liikumine grid alusel 8 suunas (üles, alla, paremale, vasakule ning diagonaalis) - Tehtud
  • Ruumide avanemine vastaste hävitamisel - Uus lahendus arenduse käigus: ruumide avamine toimub läbi lülitite
  • Maailma lõpetamine kõigi ruumide tühjendamisel. - Uus lahendus arenduse käigus: ruume tühjendama ei pea, küll aga peab leidma õige lüliti, mis avab maailma väljapääsu
  • Retry ehk korduskatse võimalus. - Tehtud

Nice to Have:

  • XBOX kontroller ja ümberseadistatav klaviatuur. - XBOX Tehtud
  • Punktide edetabel.
  • Erinevatele tasemetele salaruumid.
  • Rohkem vastaste tüüpe.
  • Rohkem tasemeid.


Prototüüp koos lähtekoodiga (vajab Unity): Prototüüp(Unity)

Prototüüp ilma lähtekoodita (ei vaja Unity-t): Prototüüp(Non-Unity)

!NB: Hetkel on ligikaudu 5% võimalus, et vastane liigub enne su löögi lõppemist kasutaja spritele, lõppedes surmaga. See on siiski suhteliselt harv ning demo on täiesti läbitav. Tegeleme selle fiximisega ning varsti tuleb üles puhas versioon!


---Controls:---

"W" - liikumine üles

"A" - liikumine vasakule

"S" - liikumine alla

"D" - liikumine paremale

"Q" - liikumine diagonaalis üles+vasakule

"E" - liikumine diagnoaalis üles+paremale

"Z" - liikumine diagonaalis alla+vasakule

"C" - liikumine diagonaalis alla+paremale

"Space" - Mõõgalöök enda ette

"R" - reset map

(olemas ka XBOX controlleri tugi)

Arenduskäik esitluseni

Arenduse käigud

  • Internetist Sprite-de otsimine
  • Maailma loomine Grid süsteemis
  • Liikumine kõikides suunades
  • Vastaste loomine ja nende liikumine
  • Uste ning lülitite loomine
  • XBOX kontrolleri lisamine
  • Sprite elude kaotamine/destroy läbi Collideri
  • Punktiarvestuse loomine
  • Bugfixes, bugfixes, bugfixes

Suuremad probleemid

  • Grid süsteem - leidsime Unity poest, aga kõik olid kallid, seega pidi gridi ise looma
  • Vastaste liikumine - vastaste AI oli loll ning vahel liikusid täiesti vales suunas. Matemaatilise algorimtiga otsida nüüd kõige lühem tee kasutaja juurde.
  • Collisioniga sprite hävitamine - algul oli Collider mõõga küljes ning ajaliselt ei jõudnud kasutaja vastast piisavalt kiiresti hävitada. Tuli teha eraldi hitbox, mis tekib niipea kui kasutaja ründamise nuppu vajutab


Arenduse failid

Üldine Seletus

Pilt BitBucketist - Üldine arenduspilt esitluseni - pildistatud 18.12.2014.

Puudu on mõned updated, kuna faile jagati tihti ka läbi teiste vahendite (skype ja otsene üleslaadimine bitbucketisse ilma commitita) ning seega pildil ei ole neid näha.

Puudu

Ülemiselt pildilt on puudu:

  • Esialgselt tehtud kaardid/gridid - Novembri paiku oli meil töö juba tegelikult käimas. Kuigi sel ajal tutvusime me täpsemalt Unity endaga ning laadisime üles esimesed sprited/maailmad/liikumised. Kuna aga Detsembris sai tehtud projektile tehtud suur "overhauli", siis enne seda meie tööd pole BitBucketisse laetud.
  • Animatsioonide tegemine - Võttis aega ligikaudu 2 päeva. 1 päev animatsioonide loomiseks ning scriptide loomiseks/kinnitamiseks. 1 päev animatsioonide ilusamaks tegemiseks/kiirendamiseks/bugfixideks.
  • HitBox-de Collision - Võttis aega ligikaudu 1 päev. Kuna algul oli seatud hitbox otse mõõga külge, tekksid ajastusbugid. Parandati ära HitBoxi eraldamisega mõõga küljest.
  • Death/Win screen - Kuigi on lisatud, ei hakanud hetkel seda commitima, kuna plaanis on lõpplahendusele teha teistsugused lahendused mängu võidule/kaotusele.
  • Paljud bugfixid - Uute lahenduste lisamisal ning täiendamisel tekkisid bugid. Kui nendega sai kiiresti lahendatud, siis nende parandust me logidesse ei lisanud.
  • Scriptide uuendused - Teiste asjade arenduse käigus, aja jooksul tehti scripte ka ümber. Scripte muudeti kompaktsemaks, eemaldati üleliigseid ridu jne. Kuna seda tehti koos teiste asjade uuendamisega, siis pole need eraldi välja toodud.


Esitlus

Powerpointi esitlus

TODO lõpptooteni

  • Kasutaja ja vastaste turn teha arusaadavamaks. Muuta delay-ga nähtavamaks erinevad käigud.
  • Võiduekraan - Üle viia sprite-lt GUIle, täiendada
  • Suremisekraan - Üle viia spritel-lt GUIle, täiendada
  • Lisada muusika
  • Suurendada mapi disaini
  • Muuta tagatausta
  • Sammuloendur


Arenduskäik esitlusest lõpptooteni

  • PLACEHOLDER


Lõpptoode

  • PLACEHOLDER