Void: Difference between revisions
(107 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Programmeerimine CSharp keeles]] | [[Category:Programmeerimine CSharp keeles]] | ||
= | = Meeskond Void = | ||
* Karl Kadalipp | |||
* Ats Rand | |||
* Reelika Lõhmus | |||
* | * Robert Pärn | ||
* | |||
* | |||
* | |||
== Tutvustavad pildid-videod mängust == | == Tutvustavad pildid-videod mängust == | ||
Hetkel puuduvad. | Hetkel puuduvad. | ||
== TO DO == | == TO DO == | ||
=== Kood === | === Kood === | ||
* | * Leveli tekitamine korrekselt | ||
* Füüsika | * 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 === | === 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 === | === Heli === | ||
* | * Helid relvade ja tegelase jaoks | ||
* Taustahelid | |||
* Helide valjusus paika sättida (baseline vajalik) | * Helide valjusus paika sättida (baseline vajalik) | ||
* Helid parajaks lõigata (et alguses-lõpus poleks üleliigset tühja osa) | * Helid parajaks lõigata (et alguses-lõpus poleks üleliigset tühja osa) | ||
* Helide faililaiendid ja bitrated/tüübid | * Helide faililaiendid ja bitrated/tüübid | ||
== | == Logi == | ||
==== Millal, mida ja kes tegi? ==== | ==== Millal, mida ja kes tegi? ==== | ||
*'''Pärast ülesande väljakuulutamist ''' | |||
**Meeskonna kokkupanek ja kontaktide vahetamine | |||
**Skype grupichati loomine | |||
*'''28.10.2012''' | |||
* Meeskonna kokkupanek ja kontaktide vahetamine | ** Meeskonna nime väljamõtlemine | ||
* Skype grupichati loomine | ** Wiki lehe loomine | ||
** Mängu idee/vormi/teostuse põhjalikum kaalutlus | |||
* Meeskonna nime väljamõtlemine | ** Algeline tööjaotuse jagamine | ||
* Wiki lehe loomine | ** Co-Op programmivalikuga tutvumine ja sobivaima valimine | ||
* Mängu idee/vormi/teostuse põhjalikum kaalutlus | ** Meeskonna kokkupanek ja kontaktide vahetamine | ||
* Algeline tööjaotuse jagamine | ** Skype grupichati loomine | ||
* Co-Op programmivalikuga tutvumine ja sobivaima valimine | *'''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. | |||
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: | *'''05.11.2012''' | ||
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. | **Tiimi esimene grupitöö vormis harjutamine. | ||
Tuua välja nimekiri funktsionaalsusest, mida plaanitakse kindlasti teostada(Must have) | **Seadsime üles ja saime tööle kõigi XNA arendusvahendid ja repository, testisime koodis piltide lisamist-liigutamist. | ||
Nimekiri funktsionaalsustest, mis võiks olla, aga mida ei pruugita ajapuuduse tõttu realiseerida.(Nice to have) | **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.<br> | |||
<gallery caption="Paar näidet:" widths="300px" heigths="50px" perrow="6"> | |||
File:TT_demoLR.png|Püstol TT (Salvega) | |||
File:AKSU_demoLR.png|Automaat AKS74U (Salveta, parempoolne külg) | |||
File:AKSU_demoRL.png|Automaat AKS74U (Salveta, vasakpoolne külg) | |||
</gallery> | |||
*'''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''' | |||
**Valmis analüüsi retsensioon. Asub siin: [[Talk:Meeskond_Default_Name]] | |||
*'''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) ==== | ==== 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üü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:[http://www.upload.ee/files/2858870/Tallinn_Pimeduses_-_tiimi_Void_prototuup.zip.html] | ||
==== 02.12.2012 (Hiljemalt) ==== | ==== 02.12.2012 (Hiljemalt) ==== | ||
Line 72: | Line 95: | ||
Meie projekti kaitsmise aeg: .......... | 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: [https://wiki.itcollege.ee/index.php/Kajarist#Kajarist_retsenseerib:_meeskond_Void/ meeskond Kajarist] | |||
=Prototüüp= | |||
===Mängu käivitamiseks on vaja:=== | |||
1. Microsoft XNA Framework Redistributable 4.0: [http://www.microsoft.com/en-us/download/details.aspx?id=20914] | |||
2. Microsoft .NET Framework 4 Client Profile: [http://www.microsoft.com/en-us/download/details.aspx?id=24872] | |||
3. Mängu prototüübi saate siit: [http://www.upload.ee/files/2860595/TIIMI_VOID_PROTOTUUP_-_Tallinn_Pimeduses.zip.html] | |||
= Lingid = | = Lingid = | ||
Line 77: | Line 193: | ||
*[http://http://www.freesound.org/ Free Sound] | *[http://http://www.freesound.org/ Free Sound] | ||
==== Co-Op ==== | ==== Co-Op koodikirjutamine ==== | ||
*[http://tortoisehg.bitbucket.org/ TurtoiseHg Workbench] | *[http://tortoisehg.bitbucket.org/ TurtoiseHg Workbench] | ||
*[https://bitbucket.org/ Bitbucket repository] | *[https://bitbucket.org/ Bitbucket repository] | ||
Line 85: | Line 201: | ||
==== Muu nodi ==== | ==== Muu nodi ==== | ||
[http://www.xnadevelopment.com/tutorials | *[http://xboxforums.create.msdn.com/forums/ XNA foorumid] | ||
[http://msdn.microsoft.com/en-us/library/bb200104.aspx MSDN XNA Game Studio 4.0] | *[http://www.xnadevelopment.com/tutorials.shtml XNA Development Tutorialid] | ||
*[http://msdn.microsoft.com/en-us/library/bb200104.aspx MSDN XNA Game Studio 4.0] |
Latest revision as of 14:22, 27 November 2012
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.
- 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.
-
Püstol TT (Salvega)
-
Automaat AKS74U (Salveta, parempoolne külg)
-
Automaat AKS74U (Salveta, vasakpoolne külg)
- 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
- Valmis analüüsi retsensioon. Asub siin: Talk:Meeskond_Default_Name
- 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]