Void

From ICO wiki

Meeskond Void

  • Karl Kadalipp
  • Ats Rand
  • Reelika Lõhmus
  • Robert Pärn

Tutvustavad pildid-videod mängust

Hetkel puuduvad.

TO DO

Kood

  • Leveli tekitamine korrekselt
  • Viewporti liikumine sihikuga kaasa
  • Tegelase liigutamine ja tegelase funktsioonid
  • HUD (spritefonti ja kõige muu todedaga)
  • Relva laskmisfunktsioon, kuulide overlap/läbiminemise kontrollimine
  • Relva laadimisfunktsioon, hülsside random väljalendamine

Füüsika

  • Gravitatsioon
  • Objektide füüsika (kallutamine, tõstmine-kukkumine-veeremine)
  • Objektide raskus ja nendega arvestamine või esialgu eventidega selle teostamine (laste mänguväljaku kiigu näide)
  • Objektide katkiminemine ja mahalangemine (tükkidel)

Graafika

  • Relvad:
    • Melee: rusikad, nuga, kasteet, pesapallikurikas
    • Püstolid: TT, Makarov, 1911, M9, vintage revolver võimsa kaliibriga
    • SMG-d: AKSU, MP5A3, UZI, MAC10, TEC9
    • Automaadid/kuulipildujad: RPD?
    • Pumppüssid: M870
  • HUD: elude kuvaja, laskemoona kuvaja eraldajaga, laskemoona eri tüüpide pildid koos tekstiga, valida välja sobiv spritefont
  • Leveli objektid ja taustad (parallax!)
  • Välja mõelda mängu värviskeem (pakun välja, et teeks kõik asjad hallides toonides va veri, muzzle flash, kuulivest, burger jmt tähtsamad detailid)

Heli

  • Helid relvade ja tegelase jaoks
  • Taustahelid
  • Helide valjusus paika sättida (baseline vajalik)
  • Helid parajaks lõigata (et alguses-lõpus poleks üleliigset tühja osa)
  • Helide faililaiendid ja bitrated/tüübid

Logi

Millal, mida ja kes tegi?

  • Pärast ülesande väljakuulutamist
    • Meeskonna kokkupanek ja kontaktide vahetamine
    • Skype grupichati loomine
  • 28.10.2012
    • Meeskonna nime väljamõtlemine
    • Wiki lehe loomine
    • Mängu idee/vormi/teostuse põhjalikum kaalutlus
    • Algeline tööjaotuse jagamine
    • Co-Op programmivalikuga tutvumine ja sobivaima valimine
    • Meeskonna kokkupanek ja kontaktide vahetamine
    • Skype grupichati loomine
  • 04.11.2012
    • Koostasime tiimiga analüüsi kasutades abivahenditena Google Docsi ja Skype'i. Algülesande kirjeldus: Analüüs (6p). Analüütilise osa eesmärgiks on arendada tudengite analüüsioskust, mida on vaja ka päris tarkvaraarenduse protsessi juures.NB! Miinimum sõnade arv 700 Selle osa käigus peab valmima loodava rakenduse analüüs, mis sisaldab muu hulgas ka: Analüüs rakendusele. (Mida see endas sisaldab? Mis on selle eesmärk? Mida tavakasutaja sellega teha saaks? Milliste osade realiseerimine võib osutuda problemaatiliseks?) Kui on tööjaotus paigas, siis tuua ka see välja. Tuua välja nimekiri funktsionaalsusest, mida plaanitakse kindlasti teostada(Must have) Nimekiri funktsionaalsustest, mis võiks olla, aga mida ei pruugita ajapuuduse tõttu realiseerida.(Nice to have)
    • Karl vormistas meeskonna Void wiki lehe pisut ümber ehk mergesin varasema kraami analüüsi osadega, et ei oleks topelt samu asju.
  • 05.11.2012
    • Tiimi esimene grupitöö vormis harjutamine.
    • Seadsime üles ja saime tööle kõigi XNA arendusvahendid ja repository, testisime koodis piltide lisamist-liigutamist.
    • Karl alustas mängu graafikaga (AKSU).
  • 06.11.2012
    • Tiimi (va Reelika, kes tegeles samal ajal Roboklubi asjadega) teine grupitöö vormis harjutamine.
    • Väikesed graafikatestid, tutorialid.
  • 07.11.2012
    • Karl koodis valmis väikese pallimängu (õppimise eesmärgil), kus pall kaotab jooksvalt kiirust (kuni jääb seisma) ning põrkab seintest diagonaalis ära. Pall on kontrollitav nuppudega. Karl jätkas mängu graafikat pisut.
  • 09.11.2012
    • Robert koodis collision'i ja gravitatsiooni, koos tegelase liikumisega. Töötab lahenduse kallal, mis võimaldaks tervet suurt level'it scrollida.
  • 11.11.2012
  • 26.11.2012
    • Prototüüp valmis. (Prototüübis ilusat graafikat veel pole, sest hetkel on kood prioriteetsem. Hiljem ühildame fancy graafikaga, mis on osaliselt juba olemas).

25.11.2012 (Hiljemalt)

Prototüüp(10p). Valmib projekti esmane realisatsioon. Laias laastus on peafunktsionaalsused realiseeritud(Nimekiri funktsionaalsusest, mida plaanitakse teostada). Programmis võib esineda üksikuid, kuid mitte väga suuri vigu. Prototüübi saab ka siit:[1]

02.12.2012 (Hiljemalt)

Prototüübi retsensioon (5p)

9.12.2012 (Hiljemalt)

Lõpptoode (20p). Selleks faasiks peab projekt maksimumpuntkide saavutamiseks olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus.

16.12.2012 (Hiljemalt)

Lõpptoote retsensioon (5p).

Pärast lõpptoote valmimist

Esitlus/Kaitsmine. Toimub loengutes/praktikumides (4p) Esitlusel kaitstakse projekti. Tutvustatakse tehnoloogiat, mida kasutati rakenduse realiseerimiseks. Lühidalt räägitakse tööjaotusest ning probleemidest, mis tekkisid projekti realiseerimisel. Näidatakse lähtekoodi ja demonstreeritakse oma rakendust teistele tudengitele, kes võivad selle kohta küsimusi küsida. Kestvus ~20min.

Meie projekti kaitsmise aeg: ..........

Analüüs

Mäng “Tallinn pimeduses” ehk karmid 90ndad Eestis

1. Mida meie mäng endas sisaldab?

Tegelane - Kes ta on?

Jüri on üks austatumaid politseiametnikke äsja iseseisvunud Eesti Vabariigis, tema tööülesanneteks on kuritegelikesse organisatsioonidesse sisseimbumine ja nende paljastamine. Oma tööga on ta teeninud mitmete väga mõjuvõimsate kurjategijate viha. Ühel päeval töölt koju naastes avastab ta, et tema kallim on külmavereliselt mõrvatud. Nüüdsest on Jüri elu muutunud igaveseks. Tema töö on ühtlasi ka tema kättemaks ning tema viisid kurjategijate ja mafioosodega toimetulemiseks on üha rohkem halastamatud.

Sisuanalüüs ja stoori kirjeldus - Kus peategelane on, mida teeb?

Tegevus toimib 90ndatel Tallinnas, ajal mil lokkas kuritegevus.

Mis on tema eesmärk?

Jüri eesmärk on kurjategijad peatada, talle on lubatud kasutada mistahes võtteid, et oma eesmärk saavutada ning seda ta kasutab usinasti.

Kuidas ta probleemidest jagu saab?

Jüri on lühikese jutu mees ning ta üldiselt ei halasta kellegile. Enamik teda kohanud kurikaelad lõpetavad kas haiglas või mulla all. Jüril on kasutada kurjategijatega võitlemiseks palju erinevaid relvi alustades tema enda rusikatest (ja kasteetidest) ning lõpetades nõukogude sõjaväe arsenaliga nagu näiteks püstol Makarov ja lahingautomaat AKS74U.

2. Kelle jaoks me seda teeme? Kes mängima hakkavad?

Mängu üldinfo ja eesmärk

Mängu sisu on kaasahaarav ja huvitav ning pakub närvikõdi ja palju mõttetööd misläbi saame pakkuda mängijale head ajaviidet ja meelelahutust. Nooremaid mängijaid paelub huvitav sündmuste käik ja uudishimu kuidas 90ndate Tallinnas käis kriminaalne elu. Vanematele mängijatele saame pakkuda äratundmisrõõmu ja võimalik, et tuttavaid situatsioone, mis aitavad kaasa lahenduste leidmisel. Üldjoontes on mäng lihtne, kergesti mõistetav ja võimalusterohke muutes teie mänguelamuse lõbusaks. Pärast mängu lõpetamist soovite juba järgmist osa sellest seeriast mängida.

3. Mis on tavakasutaja võimalused mängus?

Tavakasutajate võimalus on nautida meie suurepärast mängu, lahendada erinevaid ülesandeid ja tulistada virtuaalsete kurjategijate pihta. Kasutaja saab täiendada tegelast erinevate relvadega. Lisaks saab Jüri endale kaitseks kuuliveste ja lisapadruneid, mis aitavad kasutajal kurjategijad hõlpsamini alistada. Kasutaja peab limiteeritud resurssidega otsustama, kas mõistlikum oleks osta laskemoona või kuuliveste, samas võib kuulivest Jüri liikumiskiirust vähendada. Kasutaja peab olema loov ja kasutama oma kiiret taipu, et lahendada probleeme või situatsioone kuhu Jüri on sattunud. Oleme jätnud palju lahtisi niidiotsi millega anname kasutajale valikuvõimaluse, kuidas ta Jüri antud olukorrast välja päästab.

4. Mis osad võivad meile suuri raskusi valmistada?

Füüsika pookimine mängu, animatsioonide teostamine kõige lihtsamal-loogilisemal kujul (nt spritede asemel objektide liigutamine ja omavaheline sidumine).

5. Tööjaotus

  • Karl Kadalipp - projektijuht & wikihaldur, graafiline disain (relvad, mänguobjektid, teiste tööde parandamine-kontrollimine-juhendamine), helitöötlus (mängu otsitud helide tweakimine ja modimine, et oleksid õiges formaadis ja täpselt õigel kujul oma sisu poolest), kood...
  • Ats Rand - kood, algeline graafika (et saaks edasi seda tuunida, aga suurus oleks paigas ning koodi testimisel mängus näha),...
  • Reelika Lõhmus - mängumenüüde programmeerimine ning kujundus. Poesüsteem,...
  • Robert Pärn - algse mängumootori loomine. Algne füüsika, renderdamisloogika,...

MÄNGULOOGIKA

(Loodav mäng peab olema loodud objektorienteeritud lähenemist kasutades! Klassid, klassid, klassid)

6. MUST HAVE funktsioonid mängus

  • Funktsioneeriv level, mis koosneb eri layeritest (ja ruumilisuse lisamiseks liiguvad nad eri kiirusega, kui see on koodis teostatav). Layerid asuvad eri kõrgusel ja omavad eri tüüpe - näiteks üks layer on ainult selleks, et ära määrata need piirkonnad, kust tegelane ei saa läbi kukkuda ja läbi liikuda.
  • 5+ eri levelit. (Esimene neist peaks olema lihtsam ehk n-ö nupuõpetamise level).
  • Punktiarvestuse süsteem.
  • Boonuspunktide korjamise süsteem (raha, kuld, kokaiin, relvad, stiilipunktid jne).
  • Poesüsteem ehk boonuspunktide eest lisade ostmine (relvad, laskemoon, kuulivest, kiiver, seljakott, et saaks rohkem laskemoona kanda jne)
  • Töötavad relvad - tulistamisel tekivad kuulid uue objektina ja kontrollime kattuvust või kaugust tabatavatest asjadest, et määrata pihtasaamine. Kuulid võiksid distantsi peale ka natuke kukkuda või laiali paiskuda/põrgata (ebatäpne relv, pumppüss).
  • Helid (laskmisel, jooksmisel, hüppamisel)
  • Mänguobjektide graafika (relvad, tegelased, leveli scenery) ühtlases stiilis, võimalikult lihtne-ilus, aga arusaadav
  • HUD
  • Klaviatuurilt juhtimise tugi, hiire kursori ja Xbox controlleriga juhtimine. Kuulid liiguvad sinna suunas kuhu kursor on sihitud.
  • Stiilne-sujuv intro ja menüüd
  • Füüsikaga seotud elemendid (mänguobjektid jmt)
  • Osa mängust randomiga mixitud, et ei tekiks üksluisust mitmekordsel mängimisel ja testimisel (nt kui on üles-alla käivad seinad, mille vahelt peab läbipääsema, siis nende ajastuse saab kergelt segamini paisata, et poleks võimalik kindla hetke tagant liikuma hakata)
  • Kursor liigub pärast igat lasku teatud arvu piksleid kaares üles vasakule (recoil)
  • Kuulide füüsika ehk pärast kasti läbimist (pisut võimsama padruniga relva puhul) lendavad kuulid läbi, kuid pisut random suunas (nt 90 kraadi piires)
  • Erinevad materjalid käituvad eri relva kuulide/haavlite puhul erinevalt

7. NICE TO HAVE funktsioonid, mida võib-olla ei jõua valmis

  • Tulistamisel randomilt laiali lendavad hülsid, mis jäävad leveli “põrandale”, kuid neid jääb üksnes limiteeritud hulk ehk vanad kaovad ära (muidu võib mängu kooma tõmmata)
  • Kuuliaugud, mitmeks tükiks katkiminevad asjad
  • Mängu keskel saab osta head nodi putkadest-poodidest (nt burksiputkast ostad burksi ja elupunktid lähevad täis)
  • Levelite vahel saab osta politseijaoskonnast või mustalt turult (kalli hinnaga) huvitavat kraami
  • Objektide liigutamine-tõstmine-lükkamine (kastid, CRT telekas, külmkapp,...)
  • Auto/jalgratas, et kruiisida natuke tühjal, ent künklikul külavaheteel
  • Realistlikud relvafunktsioonid - tulistamisel väike muzzle flash, kelgu või lukuraami liikumine, hülsside väljalendamine (peaaegu) random suunas, loogiline recoil (igal relval erinev - vastavalt kaliibrile), päris elu stiilis laadimine (või midagi analoogset), liigsete objektide ärakaotamine
  • Relvade tõrkumise süsteem + tõrgete eemaldamine
  • Vahetuv-muutuv riietus, riidekapp või menüü, kust saab tegelase välimust muuta
  • Effektsed animatsioonid, kui vastane kuuliga pihta saab (+ ragdollide loogika)
  • Storyline’s erinevad viisid kuidas missioon lõpetada
  • Võimalus valida raske kuulivesti ja kerge kuulivesti vahel. Kerge kuulivest võimaldab Jüril olla kiirem ja ringi hüpata, nii saab ta tulevahetusi üldse vältida. Raske kuulivest muudab Jüri aeglaseks, kuid pakub väga head kaitset.
  • Suurem relvavalik ja rohkem viise vastaste hävitamiseks (nt viskad püstoliga vastase uimaseks, sest teadupärast Makarovit tuntakse pigem viskerelvana)
  • Silmailu
  • Kood on kirjutatud häid praktikaid järgides ja on veatu (testimine, testimine, testimine)
  • Orginaalsed ideed ja hea story
  • Inventory sloti süsteemiga (nt püstol võtab 1 sloti, AKSU 2 slotti, RPD 3 slotti jne, et piirata kaasaskantavate asjade arvu - panna max slottide arvuks 4)
  • Koodis töötav fire selector
  • Suvalise relva või maastkorjatud objekti kasutamine melee relvana (erinevad pikkused-kaugused-löögitugevused)


Retsensioon

Retsenseeris: meeskond Kajarist


Prototüüp

Mängu käivitamiseks on vaja:

1. Microsoft XNA Framework Redistributable 4.0: [2]

2. Microsoft .NET Framework 4 Client Profile: [3]

3. Mängu prototüübi saate siit: [4]

Lingid

Helid mängu jaoks

Co-Op koodikirjutamine

Youtube videod eeskujuks

Muu nodi