Kahurid: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ktonisma (talk | contribs)
Ktonisma (talk | contribs)
 
(159 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Programmeerimine CSharp keeles]]
[[Category:Programmeerimine CSharp keeles]]
= Kirjeldus =  
= Kirjeldus =  
Tankisõda on põnev tankimäng, kus neli tanki ajavad teineteist taga ja proovivad maha lasta. Võidab see, kes viimasena ellu jääb. See saab olema multiplayer mäng ehk seda saab mängida läbi interneti. Esialgu on plaan, et mäng koosneb ühest alast, kus tankid saavad liikuda, nende teel võivad ees olla seinad, mida nad saavad puruks lasta. Mänguväljakul võiks olla ala, kuhu minnes seda tanki ei näe. Ühel tankil võiks olla mitu elu ja teda saaks lasta nt 5 korda enne kui ta saab surma. Mängu lõpus öeldakse, milline mängija võitis ja kui palju ta laske tegi.  
Põnev tankimäng, mida saab mängida kahekesi või üksi. Meenutab kunagist telekamängu tanki, aga seal on mõningad lisad, mis teevad mängu huvitavamaks. Mäng koosneb kolmest levelist, kui oled kõik levelid läbinud, oledki mängu võitja. Leveli lõpus öeldakse, milline mängija võitis ja kui palju ta laske tegi.
Mõtlesime mängu teha WPF applicationina.
 
= Lõpptoode =
 
On [http://www.upload.ee/files/3887281/Kahurid_lopptoode.rar.html siin] koos arendusprotsessi kirjelduse, kasutajajuhendi ja lahenduse kirjeldusega.
 
= Prototüüp =
 
Arendusprotsessi käigus on tekkinud mõningaid huvitavaid mõtteid, mida võiks mängu lisada. <br />
Nimekiri funktsionaalsusest, mida plaanime veel teostada: <br />
1) Täiendada veelgi olemasoleva kasutaja poolse tanki võimeid tervikuna. <br />
2) Vaenlase tank peaks muutuma veelgi targemaks. <br />
3) Luua kõik kolm levelit, hetkel on vaid üks. <br />
4) Helid. <br />
5) Kuuli tabamine ja igale tankile health bar ehk kui palju elusid on tal alles. <br />


= Analüüs =
= Analüüs =
Tegemist on arvutimänguga Kahurid, mille loome XNA arenduskeskkonnas. Mängul on kolm erinevat tasandit ehk levelit. Mängu saab mängida nii üksi kui kahekesi, kasutades arvuti klaviatuuri. Vastavalt sellele, tekib enne mängu ekraanile valik. Levelites eksisteerivad seinad, mida saab lasta ja seinad, mis on liikumise takistamiseks ja mida ei saa katki lasta. Mänguväljal on mõningad alad, mille peale minnes tanki näeb väga halvasti ehk neid kutsutakse metsaaladeks. Kasutajatel on üks ehitis, mille hävimisel on kasutajad automaatselt kaotanud. Seega, peavada kasutajad seda ehitist kaitsma. Järgmisesse levelisse saab, kui oled hävitanud eelmises levelis kõik vastased. Mängitakse ja liigutakse pisikeste tankidega, mis tulistavad kuule. Mänguväljale tekivad teatud aja tagant märgid, mida kogudes võivad tankid saada endale juurde teatud omadusi, nagu näiteks: viis lisaelu, liikumiskiirendust 15 sekundiks, kuulide immuunsuse kasutajale üheks minutiks, vastase tankile 30 sekundiks, 2X kiirema liikumisega kuulid terveks mängu ajaks või tuumapommi, mis võtab kõigilt vastaste tankidelt kolm elu vähemaks. Märgid tekivad peale iga 20 sekundi möödumist viimaste märkide kadumisest. Märgid püsivad mänguväljakul vaid 15 sekundit. Märke tekib korraga viis tükki suvaliselt erinevatesse mänguvälja osadesse. Kõigil tankidel on ühesugused kiirused, aga kui tank saab tabamuse, siis ta kiirus muutub aeglasemaks. Tabamus võrdub ühe elu kadumisega. Vastaste tanke tekib I levelis 5 tükki korraga, vastaseid on kokku 20. II levelis 7 tükki korraga, vastaseid on kokku 21. III levelis 10 tükki korraga, vastaseid on kokku 30. Kui üks vastaste tank hävitatakse, tekib kohe uus vastaste tank juurde. Vastaste tankid tekivad suvaliselt ühes kolmest mänguvälja punktis, mis on vastaspool kasutajate kaitseehitist. Tankid saava end pöörata 360° ümber oma telje, seda saab taha nii sõidu ajal kui paigal olles. Kõikide tankide kuulid on algul ühesuguse kiirusega. Vastaste tankid on alati halli värvi, aga kasutajad saavad valida kolme erineva värvi: rohelise, sinise ja punase vahel. Kui vastaste tank lastakse õhku, siis tekib sellele vastav heli, kasutaja tanki hävimisel on heli teistsugune. Kui kasutajate kaitseehitis hävitatakse, kostab kõva plahvatuse heli. Peale iga leveli võitmist näidatakse kasutajale tanki punktide ja laskude arvu. Kui kasutaja laseb oma kuuli vastase tanki kuuli pihta, siis see muudab vastase kuuli kahjutuks. Vastaste omavaheline ja kasutajate omavaheline teineteise laskmine ei võta elusid maha. Mängul on olemas pausi funktsioon, aga puudub võimalus mängu salvestada.<br />
Tankimängu eesmärgiks oleks lihtsalt iseenda proovilepanek ja jõukatsumus, et kas oleks võimalik mäng üldse läbi teha. Viimases levelis tuleb väga palju tanke korraga sind ründama ja see teeb mängu raskeks. Mängijal võiks tekkida oskus ja võime hakkama saada antud leveli tingimustes ning proovida seda ära kastutada iseenda huvides, et võita. See võib olla raske, aga teostatav.
Märkide korjamise võimalus annab mängule kindlasti põnevust ja lõbu juurde, kuna tekitab uusi situatsioone. Seega üldplaanis on tegu meelelahutusliku põnevusmänguga. Kindlasti oleks üks selle mängu eesmärke teada saada, kui raske on sellist esmapilgul lihtsat mängu üldse valmis programmeerida ehk realiseerida.<br />
Tavakasutaja saaks seda mängu lihtsalt mängida, sellest lõbu tunda ja meenutada nostalgilisi kuldseid aegu, kui seda mängu sai nautida telekamänge mängides. Nüüd oleks see mäng lihtsalt uuemas kuues. Kui kunagi tulevikus on huvilisi, võib muuta selle multiplayer mänguks, mida võiks mängida teineteise vastu neljakesi. Kindlasti võiks tavakasutaja olla endaga väga rahul, kui ta suudaks mängu läbi teha.<br />
Meie näme siin kõige raskemini realiseeritavamana märkide süsteemi sidumist tankidega ja nende funktsionaalsuse loomist. Tundub hetkel, et see võib väga palju aega võtta, kuna märke on palju erinevaid, nad peavad mõjuma erinevalt ja tegema erinevaid asju. Kindlasti võib üheks parajaks jõukatsumuseks olla automaatsete tankide loomine, mida kontrollib puhtalt arvuti. Arvuti tankid ei tohiks olla liiga agressiivsed aga samas ka mitte liiga passiivsed. Loodame, et saame sellega hakkama. Isiklikult sooviksin näha mängus häid graafilisi lahendusi ja helieffekte, kuna see lisab mängule vürtsi ja ilu juurde.


== Must have ==
== Must have ==
*3 erinevat levelit
*Kolm erinevat levelit.
*Vaenlased ehk automaatselt liikuvad tankid (ühes levelis võiks neid tulla: üksinda mängides kokku 15, kahekesi mängides 25)
*Vaenlased ehk automaatselt liikuvad tankid. Peale igat levelit hakkab tanke rohkem korraga tulema.
*Üks või kaks inimest saavad korraga mängida
*Üks või kaks inimest saavad korraga mängida.
*Lasu- ja punktiarvestus igal tangil
*Igal tankil on vaid viis elu ehk teda võib viis korda lasta.
*Märgid, mida korjates saab tank endale boonuse
*Peale igat tabamust muutub tank natukene aeglasemaks.
*Mõlemat kasutajapoolset tanki saab juhtida klaviatuurilt
*Kaitseehitis, mida kasutajapoolsed takid peavad valvama ja vastased peavad hävitama, et võita.
*Mänguvälja ääres on augud, millest läbi minnest jõuab teisele poole mänguvälja (nagu mängus Pac-Man).
*Lasu- ja punktiarvestus igal tankil, välja arvatud vastase tankil.
*Helid (tankide sõitmine, plahvatused, kuulitabamused)
*Märgid, mida korjates saab tank endale boonuse.
*Mõlemat kasutajapoolset tanki saab juhtida klaviatuurilt.
*Helid (tankide sõitmine, plahvatused, kuulitabamused).


== Nice to have ==
== Nice to have ==
*Multiplayer (väga oleks soovinud panna must have-i alla, aga tundub olevat realiseerimise osas liiga keeruline ja aeganõudev)
*Multiplayer (väga oleks soovinud panna must have-i alla, aga tundub olevat realiseerimise osas liiga keeruline ja aeganõudev).
*Üliilus graafika (see võtaks vist liiga palju aega)
*Üliilus graafika (see võtaks vist liiga palju aega).
*Rohkem voore ehk leveleid
*Randomiga muutuvad levelite maastikud (tundub keeruline).
*Kui mäng oleks 3D-na
*Kui mäng oleks 3D-na (võtaks liiga palju aega).
*Oleks tore, kui automaatselt liikuvad tankid suudaksid hästi leida kasutaja tanke ja kaitseehitisi üles ning neid rünnata ehk automaatsed tankid ei tohiks olla väga lollid.
*Pac-Man stiilis augud seinas, millest läbi minnes saaks jõuda teisele poole mänguväljakule (minu arvates see idee pole nii hea, kuna tegelikult võib see kasutaja elu palju raskemaks muuta. Idee vajab lisaanalüüsi).


= Pildid Mängust =
= Pildid Mängust =
Hetkel puuduvad.
[[File:menuu.jpg|200px|middle|Mängu menüü]]
[[File:1Levell.jpg|200px|middle|1. level]]
[[File:2level.jpg|200px|middle|2. level]]
[[File:3level.jpg|200px|middle|3. level]]
<br />
Siin on mõned pildid menüüst ja levelitest.


= Tööjaotus =
= Tööjaotus =


*'''Kristjan Tõnismäe''' - projektijuht, kasutaja poolt juhitavate tankide loomine
*'''Kristjan Tõnismäe''' - projektijuht, testimine, kasutaja poolt juhitavate tankide loomine
*'''Andreas Plado''' - tankide ja märkide kujundus, augud mänguvälja sees
*'''Andreas Plado''' - testimine, kaitseehitise loomine, tankide loomine, tankide ja märkide funktsionaalsus
*'''Kullo-Kalev Aru''' - levelite kujundus, levelite loomine
*'''Kullo-Kalev Aru''' - levelite kujundus, levelite loomine, levelite vaheliste akende loomine
*'''Xiangwei Zuo''' - testimine, kaitseehitise loomine
*'''Xiangwei Zuo''' - testimine, tankide ja märkide kujundus
*'''Jaan Kängsepp''' - automaatselt liikuvate tankide loomine
*'''Jaan Kängsepp''' - testimine, automaatselt liikuvate tankide loomine
 
Mängu loomise käigus võib midagi veel jaotuse osas muutuda.
 
= Retsensioonid =


Tööd jaotame täpsemalt mängu loomise käigus.
Esimene retsensioon on koostatud meeskonna [https://wiki.itcollege.ee/index.php/Tech_Support Tech Support]analüüsi kohta ja retsensioon asub [https://wiki.itcollege.ee/index.php/Talk:Tech_Support siin]. <br />
Teine retsensioon on koostatud meeskonna [https://wiki.itcollege.ee/index.php/Void Void]prototüübi kohta ja retsensioon asub [https://wiki.itcollege.ee/index.php/Talk:Void siin]. <br />
Kolmas retsensioon on koostatud meeskonna [https://wiki.itcollege.ee/index.php/Kajarist Kajarist] lõpptoote kohta ja retsensioon asub
[https://wiki.itcollege.ee/index.php/Talk:Kajarist#Retsensioon_meeskonna_Kajarist_m.C3.A4ngu_l.C3.B5pptootele siin]. <br />


= Log =
= Log =
Line 43: Line 77:


==== 04.november 2012====
==== 04.november 2012====
*Analüüsi koostamine, lehe täiendamine
*Analüüsi koostamine, lehe täiendamine, pildi lisamine
 
==== 06.november 2012====
*Meeskonnaga kokkusaamine, arutamine
 
==== 11.november 2012====
*Analüüsi retsensiooni esitamine meeskonnale Tech Support
 
==== 25.november 2012====
*Prototüübi esitamine
 
==== 02.detsember 2012====
*Prototüübi retsensiooni esitamine meeskonnale Void
 
==== 17.detsember 2012====
*Lõpptoote esitamine
 
==== 27.detsember 2012====
*Lõpptoote retsensiooni esitamine meeskonnale Kajarist

Latest revision as of 00:28, 30 November 2014

Kirjeldus

Põnev tankimäng, mida saab mängida kahekesi või üksi. Meenutab kunagist telekamängu tanki, aga seal on mõningad lisad, mis teevad mängu huvitavamaks. Mäng koosneb kolmest levelist, kui oled kõik levelid läbinud, oledki mängu võitja. Leveli lõpus öeldakse, milline mängija võitis ja kui palju ta laske tegi.

Lõpptoode

On siin koos arendusprotsessi kirjelduse, kasutajajuhendi ja lahenduse kirjeldusega.

Prototüüp

Arendusprotsessi käigus on tekkinud mõningaid huvitavaid mõtteid, mida võiks mängu lisada.
Nimekiri funktsionaalsusest, mida plaanime veel teostada:
1) Täiendada veelgi olemasoleva kasutaja poolse tanki võimeid tervikuna.
2) Vaenlase tank peaks muutuma veelgi targemaks.
3) Luua kõik kolm levelit, hetkel on vaid üks.
4) Helid.
5) Kuuli tabamine ja igale tankile health bar ehk kui palju elusid on tal alles.

Analüüs

Tegemist on arvutimänguga Kahurid, mille loome XNA arenduskeskkonnas. Mängul on kolm erinevat tasandit ehk levelit. Mängu saab mängida nii üksi kui kahekesi, kasutades arvuti klaviatuuri. Vastavalt sellele, tekib enne mängu ekraanile valik. Levelites eksisteerivad seinad, mida saab lasta ja seinad, mis on liikumise takistamiseks ja mida ei saa katki lasta. Mänguväljal on mõningad alad, mille peale minnes tanki näeb väga halvasti ehk neid kutsutakse metsaaladeks. Kasutajatel on üks ehitis, mille hävimisel on kasutajad automaatselt kaotanud. Seega, peavada kasutajad seda ehitist kaitsma. Järgmisesse levelisse saab, kui oled hävitanud eelmises levelis kõik vastased. Mängitakse ja liigutakse pisikeste tankidega, mis tulistavad kuule. Mänguväljale tekivad teatud aja tagant märgid, mida kogudes võivad tankid saada endale juurde teatud omadusi, nagu näiteks: viis lisaelu, liikumiskiirendust 15 sekundiks, kuulide immuunsuse kasutajale üheks minutiks, vastase tankile 30 sekundiks, 2X kiirema liikumisega kuulid terveks mängu ajaks või tuumapommi, mis võtab kõigilt vastaste tankidelt kolm elu vähemaks. Märgid tekivad peale iga 20 sekundi möödumist viimaste märkide kadumisest. Märgid püsivad mänguväljakul vaid 15 sekundit. Märke tekib korraga viis tükki suvaliselt erinevatesse mänguvälja osadesse. Kõigil tankidel on ühesugused kiirused, aga kui tank saab tabamuse, siis ta kiirus muutub aeglasemaks. Tabamus võrdub ühe elu kadumisega. Vastaste tanke tekib I levelis 5 tükki korraga, vastaseid on kokku 20. II levelis 7 tükki korraga, vastaseid on kokku 21. III levelis 10 tükki korraga, vastaseid on kokku 30. Kui üks vastaste tank hävitatakse, tekib kohe uus vastaste tank juurde. Vastaste tankid tekivad suvaliselt ühes kolmest mänguvälja punktis, mis on vastaspool kasutajate kaitseehitist. Tankid saava end pöörata 360° ümber oma telje, seda saab taha nii sõidu ajal kui paigal olles. Kõikide tankide kuulid on algul ühesuguse kiirusega. Vastaste tankid on alati halli värvi, aga kasutajad saavad valida kolme erineva värvi: rohelise, sinise ja punase vahel. Kui vastaste tank lastakse õhku, siis tekib sellele vastav heli, kasutaja tanki hävimisel on heli teistsugune. Kui kasutajate kaitseehitis hävitatakse, kostab kõva plahvatuse heli. Peale iga leveli võitmist näidatakse kasutajale tanki punktide ja laskude arvu. Kui kasutaja laseb oma kuuli vastase tanki kuuli pihta, siis see muudab vastase kuuli kahjutuks. Vastaste omavaheline ja kasutajate omavaheline teineteise laskmine ei võta elusid maha. Mängul on olemas pausi funktsioon, aga puudub võimalus mängu salvestada.
Tankimängu eesmärgiks oleks lihtsalt iseenda proovilepanek ja jõukatsumus, et kas oleks võimalik mäng üldse läbi teha. Viimases levelis tuleb väga palju tanke korraga sind ründama ja see teeb mängu raskeks. Mängijal võiks tekkida oskus ja võime hakkama saada antud leveli tingimustes ning proovida seda ära kastutada iseenda huvides, et võita. See võib olla raske, aga teostatav. Märkide korjamise võimalus annab mängule kindlasti põnevust ja lõbu juurde, kuna tekitab uusi situatsioone. Seega üldplaanis on tegu meelelahutusliku põnevusmänguga. Kindlasti oleks üks selle mängu eesmärke teada saada, kui raske on sellist esmapilgul lihtsat mängu üldse valmis programmeerida ehk realiseerida.
Tavakasutaja saaks seda mängu lihtsalt mängida, sellest lõbu tunda ja meenutada nostalgilisi kuldseid aegu, kui seda mängu sai nautida telekamänge mängides. Nüüd oleks see mäng lihtsalt uuemas kuues. Kui kunagi tulevikus on huvilisi, võib muuta selle multiplayer mänguks, mida võiks mängida teineteise vastu neljakesi. Kindlasti võiks tavakasutaja olla endaga väga rahul, kui ta suudaks mängu läbi teha.
Meie näme siin kõige raskemini realiseeritavamana märkide süsteemi sidumist tankidega ja nende funktsionaalsuse loomist. Tundub hetkel, et see võib väga palju aega võtta, kuna märke on palju erinevaid, nad peavad mõjuma erinevalt ja tegema erinevaid asju. Kindlasti võib üheks parajaks jõukatsumuseks olla automaatsete tankide loomine, mida kontrollib puhtalt arvuti. Arvuti tankid ei tohiks olla liiga agressiivsed aga samas ka mitte liiga passiivsed. Loodame, et saame sellega hakkama. Isiklikult sooviksin näha mängus häid graafilisi lahendusi ja helieffekte, kuna see lisab mängule vürtsi ja ilu juurde.

Must have

  • Kolm erinevat levelit.
  • Vaenlased ehk automaatselt liikuvad tankid. Peale igat levelit hakkab tanke rohkem korraga tulema.
  • Üks või kaks inimest saavad korraga mängida.
  • Igal tankil on vaid viis elu ehk teda võib viis korda lasta.
  • Peale igat tabamust muutub tank natukene aeglasemaks.
  • Kaitseehitis, mida kasutajapoolsed takid peavad valvama ja vastased peavad hävitama, et võita.
  • Lasu- ja punktiarvestus igal tankil, välja arvatud vastase tankil.
  • Märgid, mida korjates saab tank endale boonuse.
  • Mõlemat kasutajapoolset tanki saab juhtida klaviatuurilt.
  • Helid (tankide sõitmine, plahvatused, kuulitabamused).

Nice to have

  • Multiplayer (väga oleks soovinud panna must have-i alla, aga tundub olevat realiseerimise osas liiga keeruline ja aeganõudev).
  • Üliilus graafika (see võtaks vist liiga palju aega).
  • Randomiga muutuvad levelite maastikud (tundub keeruline).
  • Kui mäng oleks 3D-na (võtaks liiga palju aega).
  • Oleks tore, kui automaatselt liikuvad tankid suudaksid hästi leida kasutaja tanke ja kaitseehitisi üles ning neid rünnata ehk automaatsed tankid ei tohiks olla väga lollid.
  • Pac-Man stiilis augud seinas, millest läbi minnes saaks jõuda teisele poole mänguväljakule (minu arvates see idee pole nii hea, kuna tegelikult võib see kasutaja elu palju raskemaks muuta. Idee vajab lisaanalüüsi).

Pildid Mängust

Mängu menüü 1. level 2. level 3. level
Siin on mõned pildid menüüst ja levelitest.

Tööjaotus

  • Kristjan Tõnismäe - projektijuht, testimine, kasutaja poolt juhitavate tankide loomine
  • Andreas Plado - testimine, kaitseehitise loomine, tankide loomine, tankide ja märkide funktsionaalsus
  • Kullo-Kalev Aru - levelite kujundus, levelite loomine, levelite vaheliste akende loomine
  • Xiangwei Zuo - testimine, tankide ja märkide kujundus
  • Jaan Kängsepp - testimine, automaatselt liikuvate tankide loomine

Mängu loomise käigus võib midagi veel jaotuse osas muutuda.

Retsensioonid

Esimene retsensioon on koostatud meeskonna Tech Supportanalüüsi kohta ja retsensioon asub siin.
Teine retsensioon on koostatud meeskonna Voidprototüübi kohta ja retsensioon asub siin.
Kolmas retsensioon on koostatud meeskonna Kajarist lõpptoote kohta ja retsensioon asub siin.

Log

25.oktoober 2012

  • Kokkusaamine

28.oktoober 2012

  • Wiki lehe loomine

04.november 2012

  • Analüüsi koostamine, lehe täiendamine, pildi lisamine

06.november 2012

  • Meeskonnaga kokkusaamine, arutamine

11.november 2012

  • Analüüsi retsensiooni esitamine meeskonnale Tech Support

25.november 2012

  • Prototüübi esitamine

02.detsember 2012

  • Prototüübi retsensiooni esitamine meeskonnale Void

17.detsember 2012

  • Lõpptoote esitamine

27.detsember 2012

  • Lõpptoote retsensiooni esitamine meeskonnale Kajarist