Meeskond: VVA: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Programmeerimine CSharp keeles (2015)]]
[[Category:Programmeerimine CSharp keeles (2015)]]
==Meeskonna liikmed==
== Meeskonna liikmed ==
*Vladislav Lahtarin
*Vladislav Lahtarin
*Vladislav Kovaltšuk
*Vladislav Kovaltšuk
*Aleksandr Babõkin - Projektijuht
*Aleksandr Babõkin - Projektijuht


==Idee==
== Idee ==
Tahame luua 2D Arkanoid tüüpi mängu, kasutades UNITY keskkonda ja C# keelt.
Tahame luua 2D Arkanoid tüüpi mängu, kasutades UNITY keskkonda ja C# keelt.


==Analüüs==
== Analüüs ==
Valisime oma C# kodutööks mänguloomist Unity keskkonna ja C# programmeerimis keele abil. Unity on mitmekülgne 3D/2D mängu arenduskeskkond, millesse on integreeritud kõik vajalikud tööriistad mängude loomiseks. Samuti annab Unity võimalust luua mänge erinevatele platvormidele: arvutidele, konsoolidele, telefonidele ja veebile. Saame aru, et Unity nõuab suurt juurde õppimise panust, kuid arvame, et selle kasutamine annab meile väga head õppimisvõimalust ning arendab meeskonnatöö oskust. Meie eesmärgiks on luua lihtne, kättesaadav ja haarav mäng, millega saab oma vaba aja veeta. Projektiks oli valitud Arkanoid tüüpi mäng, mis põhineb Atari Breakout mängude seeriale. Tegemist tuleb single player tüüpi mänguga. Mängija kontrollib väikest platvormi, mida saab liigutada horisontaalselt ühest seinast teisse ning ülesandeks on vältida palli kukkumist. Samas on olemas tellised. Palli löök tellise vastu viib selle hävitamisele. Kui kõik tellised antud tasemel on hävitatud, toimub üleminek järgmisele tasemele, uue telliste kogumikuga. Erinevatel tasemetel on erinevad telliste omavaheline paigaldus. Iga tellise hävitamine annab mängijale punkte (Score). See annab võimalust võrrelda oma tulemusi oma sõpradega või teiste inimestega. Loome mängu peamiselt meelelahutuseks, kuid samal ajal ootame, et mingil kasutajal võib isegi nostalgia tekitada. Kindlasti nõuab mängu tegemine palju tööd, panust ja aega ning kindlasti tulevad ette ka mitmeid probleeme, kuid praegu neid välja tuua on küllaltki raske, sest enne seda mitte keegi meist pole selliseid projekte teinud, selle tõttu praegu on keeruline öelda, kas õnnestub see idee meil ellu viia või ei õnnestu.
Valisime oma C# kodutööks mänguloomist Unity keskkonna ja C# programmeerimis keele abil. Unity on mitmekülgne 3D/2D mängu arenduskeskkond, millesse on integreeritud kõik vajalikud tööriistad mängude loomiseks. Samuti annab Unity võimalust luua mänge erinevatele platvormidele: arvutidele, konsoolidele, telefonidele ja veebile. Saame aru, et Unity nõuab suurt juurde õppimise panust, kuid arvame, et selle kasutamine annab meile väga head õppimisvõimalust ning arendab meeskonnatöö oskust. Meie eesmärgiks on luua lihtne, kättesaadav ja haarav mäng, millega saab oma vaba aja veeta. Projektiks oli valitud Arkanoid tüüpi mäng, mis põhineb Atari Breakout mängude seeriale. Tegemist tuleb single player tüüpi mänguga. Mängija kontrollib väikest platvormi, mida saab liigutada horisontaalselt ühest seinast teisse ning ülesandeks on vältida palli kukkumist. Samas on olemas tellised. Palli löök tellise vastu viib selle hävitamisele. Kui kõik tellised antud tasemel on hävitatud, toimub üleminek järgmisele tasemele, uue telliste kogumikuga. Erinevatel tasemetel on erinevad telliste omavaheline paigaldus. Iga tellise hävitamine annab mängijale punkte (Score). See annab võimalust võrrelda oma tulemusi oma sõpradega või teiste inimestega. Loome mängu peamiselt meelelahutuseks, kuid samal ajal ootame, et mingil kasutajal võib isegi nostalgia tekitada. Kindlasti nõuab mängu tegemine palju tööd, panust ja aega ning kindlasti tulevad ette ka mitmeid probleeme, kuid praegu neid välja tuua on küllaltki raske, sest enne seda mitte keegi meist pole selliseid projekte teinud, selle tõttu praegu on keeruline öelda, kas õnnestub see idee meil ellu viia või ei õnnestu.


===Nimekiri funktsionaalsusest (Must have)===
=== Nimekiri funktsionaalsusest (Must have) ===
Kõigepealt valmistame tasemet, kus kogu mäng hakkab toimuma. Loome platvormi, palli ja erinevad tellised. Platvormi saab liigutada vasakule ja paremale. Iseenesest palli kontrollimise võimalust mängijal ei ole,  seda saab kontrollida ainult platvori abil. Iga mängu taseme alustamiseks tuleb vajutada klahvi, selleks et pall alustaks oma liikumist. On vaja realiseerida mängija “elu” süsteemi. Algusel neid on kolm tükki, kuid mängu käigus nei saab juurde koguda. Iga tasemega muutub telliste paigaldus ja kasvab palli kiirus, ehk kasvab ka tasemete raskus.
Kõigepealt valmistame tasemet, kus kogu mäng hakkab toimuma. Loome platvormi, palli ja erinevad tellised. Platvormi saab liigutada vasakule ja paremale. Iseenesest palli kontrollimise võimalust mängijal ei ole,  seda saab kontrollida ainult platvori abil. Iga mängu taseme alustamiseks tuleb vajutada klahvi, selleks et pall alustaks oma liikumist. On vaja realiseerida mängija “elu” süsteemi. Algusel neid on kolm tükki, kuid mängu käigus nei saab juurde koguda. Iga tasemega muutub telliste paigaldus ja kasvab palli kiirus, ehk kasvab ka tasemete raskus.
Mäng on lõppenud siis, kui on läbitud kõik tasemed või pall on kukkunud ja mängijal enam ei ole elusid. Tuleb realiseerida mängu menüü paneeli, kus saab alustada uut mängu, valida taseme, nupp “Start”, “Menu”, “Replay” ja nupp “Pause”. Samuti saab näha infot mängu koostajate ja versiooni kohta. Kindlasti tuleb teha ka mängu staatus, kus on näha, et kas mängija mängib ja kui palju elusid tal veel on, kas mäng on pausi peal või mitte, kaotas või võitis mängu. Mängu disaini loome ka ise, joonistame kõik objektid graafilises redaktoris. On vaja luua graafikat tausta, palli, telliste ja platvormi jaoks. Et kasutajal poleks igav teeme kõik tasemeid visuaalselt erinevat moodi ja lisame heli, mida saab menüü paneelis välja või sisse lülitada. Mängule teostame installi, et iga tavakasutaja saaks meie mängu lihtsalt ja mugavalt endale arvutisse installida. Oma koodi püüame teha maksimaalselt mugavalt loetatavaks ja vältida vigu. Püüame leida parimaid lahendusi mängu realiseerimiseks ja optimiseerimiseks.
Mäng on lõppenud siis, kui on läbitud kõik tasemed või pall on kukkunud ja mängijal enam ei ole elusid. Tuleb realiseerida mängu menüü paneeli, kus saab alustada uut mängu, valida taseme, nupp “Start”, “Menu”, “Replay” ja nupp “Pause”. Samuti saab näha infot mängu koostajate ja versiooni kohta. Kindlasti tuleb teha ka mängu staatus, kus on näha, et kas mängija mängib ja kui palju elusid tal veel on, kas mäng on pausi peal või mitte, kaotas või võitis mängu. Mängu disaini loome ka ise, joonistame kõik objektid graafilises redaktoris. On vaja luua graafikat tausta, palli, telliste ja platvormi jaoks. Et kasutajal poleks igav teeme kõik tasemeid visuaalselt erinevat moodi ja lisame heli, mida saab menüü paneelis välja või sisse lülitada. Oma koodi püüame teha maksimaalselt mugavalt loetatavaks ja vältida vigu. Püüame leida parimaid lahendusi mängu realiseerimiseks ja optimiseerimiseks.


===Nimekiri funktsionaalsusest, mis võiks olla (Nice to have)===
=== Nimekiri funktsionaalsusest, mis võiks olla (Nice to have) ===
Mängule tahaksime teostada installi, et iga tavakasutaja saaks meie mängu lihtsalt ja mugavalt endale arvutisse installida.
Mängul võiks olla telliseid, mida on vaja paar korda lüüa, selleks et seda hävitada. Võiks luua selliseid objekte mis hoopis ei saa hävitada. Nende eesmärk on teha taseme läbimist keerukamaks ja nn. “kaitsta” teisi telliseid. Mõnikord võib ilmuda vaenlane, kes tõukab palli. Luua selliseid telliseid, mille hävitamisel ilmub ja hakkab kukkuma kapsel. Kapsel on aktiveeritud kui mängija suudab seda püüda oma platvormiga. Kapslid võivad olla erinevad: mingid neist aitavad, teised aga teevad kahju. Näiteks laiendavad või kitsendavad platvormi, suurendavad palli arvu või annavad pallile rohkem jõudu või hoopis teevad seda nähtamatuks. Võiks luua “teleporte”, kui pall sattub sinna tuleb ta välja teises kohas. Ühel tasemel neid võiks olla päris mitu. Oleks tore kui saaksime kuvata mängu lõppetamisel mängija Score, et ta saaks teada, kui palju ta nei kogenud on.
Mängul võiks olla telliseid, mida on vaja paar korda lüüa, selleks et seda hävitada. Võiks luua selliseid objekte mis hoopis ei saa hävitada. Nende eesmärk on teha taseme läbimist keerukamaks ja nn. “kaitsta” teisi telliseid. Mõnikord võib ilmuda vaenlane, kes tõukab palli. Luua selliseid telliseid, mille hävitamisel ilmub ja hakkab kukkuma kapsel. Kapsel on aktiveeritud kui mängija suudab seda püüda oma platvormiga. Kapslid võivad olla erinevad: mingid neist aitavad, teised aga teevad kahju. Näiteks laiendavad või kitsendavad platvormi, suurendavad palli arvu või annavad pallile rohkem jõudu või hoopis teevad seda nähtamatuks. Võiks luua “teleporte”, kui pall sattub sinna tuleb ta välja teises kohas. Ühel tasemel neid võiks olla päris mitu. Oleks tore kui saaksime kuvata mängu lõppetamisel mängija Score, et ta saaks teada, kui palju ta nei kogenud on.


===Analüüsi retsensioon meeskonnale "Sporto"===
== Analüüsi retsensioon meeskonnale "Sporto" ==
Meeskonna Sporto idee on luua rakendus spordiürituste jaoks. Tänu selle rakendusele korraldajad saavad spordiüritusi läbi viia, monitoorida ürituste toimumist, kuvada ürituste ajakava ja hallata hindamissüsteemi. Meeskond tahab aidata oma rakendusega spordiüritusi kiirendada ja läbi viia kaasaegsel moel. Rakenduse loomiseks kasutavad nad C#, WPF, Owin, SignalR, Entity Framwork ja LINQ tehnoloogiat. Samuti kasutasid nad teistes ainetes saadud teadmisi andmebaasi mudeli loomiseks, mis on päris lahe, kui suudad mitmes ainetes omandatud teadmised rakendada ühes töös. Meeldib, et rakendus on mitme nurga alt läbi mõeldud ja sisu on lahti seletatud. Meeskonna Sporto rakenduse saab käivitada kolmes režiimis milleks on: admin, kohtuniku ja ajakava režiimid. Ehk siis rakendus on ettenähtud kohtunikutele kui ka tavakasutajatele, kes tahavad näha hetkel toimuvat ja tulevasi mänge. Me arvame, et meeskond Sporto teeb suurt tööd ja pannustab sellesse kõik teadmised mis nad on omandanud nende paar õppeaasta jooksul. Kindlasti rakenduse ehitamise käigus meeskonnal on vaja palju materjale iseseisvalt juurde õppida, mis on väga positiivne külg. Meeldib ka see, et meeskonnal on kindlad ja korrektsed eesmärgid. Nad teavad mis tööpannus neid ees ootab ja kuidas peab välja nägema nende lõpptulemus. Samuti meeskond teab mis probleemidega nende rakendus tulevikus kokku puutub. Loodame, et meeskond saab püstitatud eesmärkidega hakkama ja kes teab, äkki tulevikus hakkavad kõik nende rakendust spordiüritustes kasutama. Meie poolt soovime nendele edu!
Meeskonna Sporto idee on luua rakendus spordiürituste jaoks. Tänu selle rakendusele korraldajad saavad spordiüritusi läbi viia, monitoorida ürituste toimumist, kuvada ürituste ajakava ja hallata hindamissüsteemi. Meeskond tahab aidata oma rakendusega spordiüritusi kiirendada ja läbi viia kaasaegsel moel. Rakenduse loomiseks kasutavad nad C#, WPF, Owin, SignalR, Entity Framwork ja LINQ tehnoloogiat. Samuti kasutasid nad teistes ainetes saadud teadmisi andmebaasi mudeli loomiseks, mis on päris lahe, kui suudad mitmes ainetes omandatud teadmised rakendada ühes töös. Meeldib, et rakendus on mitme nurga alt läbi mõeldud ja sisu on lahti seletatud. Meeskonna Sporto rakenduse saab käivitada kolmes režiimis milleks on: admin, kohtuniku ja ajakava režiimid. Ehk siis rakendus on ettenähtud kohtunikutele kui ka tavakasutajatele, kes tahavad näha hetkel toimuvat ja tulevasi mänge. Me arvame, et meeskond Sporto teeb suurt tööd ja pannustab sellesse kõik teadmised mis nad on omandanud nende paar õppeaasta jooksul. Kindlasti rakenduse ehitamise käigus meeskonnal on vaja palju materjale iseseisvalt juurde õppida, mis on väga positiivne külg. Meeldib ka see, et meeskonnal on kindlad ja korrektsed eesmärgid. Nad teavad mis tööpannus neid ees ootab ja kuidas peab välja nägema nende lõpptulemus. Samuti meeskond teab mis probleemidega nende rakendus tulevikus kokku puutub. Loodame, et meeskond saab püstitatud eesmärkidega hakkama ja kes teab, äkki tulevikus hakkavad kõik nende rakendust spordiüritustes kasutama. Meie poolt soovime nendele edu!


==Valmis mäng==
== Prototüübi retsensioon meeskonnale "mc2" ==
Prototüübi käivitamine toimus ilma raskuseta ja sellega probleeme ei esinenud. Double click exe faili peale ja mäng on käivitatud. Projekti struktuur ja ülesehitus on korralik. Lähtekood on korralikult jagatud klassideks ja paigaldatud kaustadesse. Klassidel on antud selged nimed, et isik ,kes pole selle koodiga tegelenud saab aru mis konkreetne klass endas sisaldab. Ainsaks miinuseks on koodi kommentaaride puudumine.
Mängus on realiseeritud kõik must-have funktsionaalsused. Mängu käivitamisel avaneb main menüü mis koosneb viiest nuppust, kus on võimalik kas alustada uut mängu, vaadata üldist tabeliseisu, muuta seadeid, saada infot ja abi ning mängu sulgeda. 
Mängija vastaseks saab olla kas arvuti või teised mängijad. Korraga ühte mängu saab koos mängida kuni kaheksa inimest. Selleks sa pead ennast registreerima või logida sisse juba olemasolevasse kasutaja. 
Mängu alustamiseks sulle ilmub ette sättimisaken, kus mängija saab valida kaardi suurust, sättida aja piirangu, valida enda ja vastase värvi, vastase tase  ning mängu võitmise viis. 
Kui testisime mängu, siis austalt öeldes esimeseid katseid meie kaotasime. See andis hoogu juurde.


==Arendusprotsess==
Mida ootame veel “nice to have’st” :
Kujundite muutmise võimalus oleks väga teretulnud.
Enda poolt soovitame lisada võimalust skip-ida täringu ette ilmumise (kes esimesena alustab mängu).
Aga kokkuvõteks võime öelda, et rühm „mc2“ tegid suurepärast tööd ja ehitasid valmis head mitmekülgset mängu koos mitme võimalustega menüüs.
Soovime edu lõpptoode valmistamisel ja „nice to have” realiseerimisel.
 
== Lõpptoote retsensioon meeskonnale "Sporto" ==
 
Esmalt vaataks üle, kas programm täidab õppejõu poolt kirja pandud nõudeid:
*Andmebaasis peab olema vähemalt 6 andmebaasi tabelit - andmebaasis on 10 tabelit, seega nõue on täidetud
*Peab võimaldama tegevuste kohta registri pidamist (logi) - nõue on täidetud
*Kasutama kasutajaliidesena ühte järgmistest: Windows Presentation Foundation, Windows Phone 8, Windows 8 Store App või ASP.Net - meeskond kasutab WPF tehnoloogiat, nõue on täidetud
*Kood on kommenteeritud ning rakendus on varustatud dokumentatsiooniga - nõue on täidetud
*Maksimumpunktide jaoks kasutatakse vastavalt valitud tehnoloogiale soovitatud arendusmustreid - nõue on täidetud
*Kood on kirjutatud C# programmeerimiskeeles - nõue on täidetud
*Rakendus on jaotatud kihtidesse - nõue on täidetud
Eelnevast järeldub, et rakendus täidab kõik õppejõu poolt kirja pandud nõudeid.
 
Meeskonna koduleht on korralik ja arusaadav. Kasutusjuhend on tehtud video kaudu, mis on eriti mugav. Rakenduse testimise ajal saime aru, et kõik planeeritav ja võimalik funktsionaalsus on realiseeritud. Rakendus töötab ilusti ja täidab oma ülesandeid. Vigu ei ole märgatud. Lõpptoode sai valmis õigeks ajaks.
 
Lõppkokkuvõtteks on rühmaliikmed oma tööga kenasti hakkama saanud.
== Prototüüp ==
Protoüübi (browser versioon) leiab siit: [http://enos.itcollege.ee/~vkovalt/Csharp/Desktop.html Link]<br><br>
Protoüübi Unity projekt leiab siit (koodid kaustas Assets -> scripts): [http://enos.itcollege.ee/~vkovalt/LaeAllaProto/ Link]<br><br>
'''Kasutusjuhend''':<br>
1. Taseme laadimiseks on vaja vajutada nuppu Play Game (level 1) või nuppu Level 2 (level 2).<br>
2. Mängu alustamiseks on vaja vajutada Space klahvi.<br>
P.S. Nupp Exit ei tööta browseri versioonis.<br><br>
'''Mis on meil praeguseks tehtud:'''<br>
1. Erinevad nupud (Pause – paneb mängu pausile, Menu – avab menüü akent, Exit – sulgeb mängu, Replay – laadib tasemet uuesti).<br>
2. Mängu väljak: seinad, platvorm, pall, erinevad tellised, nupud ja lugejad (lives, score).<br>
3. Palli iseseisev liikumine.<br>
4. Palli põrged.<br>
5. Elude ja punktide süsteem.<br>
6. Platvormi saab juhtida:<br>
A / vasak nool - liigub vasakule.<br>
D / parem nool - liigub paremale.<br>
7. Selleks, et tasemet läbida on vaja hävitada kõik tellised. Mida kiiremini see on tehtud, seda suurema punktide kogust saad.<br>
8. Kui oma pall kukkub alla (või punktide arv on alla nulli), siis väheneb elude arv ühe võrra. Kui elude arv on alla nulli, siis on mäng kaotatud.<br><br>
'''Mida plaanime veel lisada:'''<br>
1. Rohkem tasemeid.<br>
2. Heli.<br>
3. Nupu heli välja või sisse lülitamiseks.<br>
4. Näidata punktide kogust iga taseme lõppus ja kogu mängu lõppus.<br>
5. Disainilised tööd.<br>
6. Mängu vigade (bugs) parandamine (pall jääb kinni, replay kui mäng on kaotatud, pause nupp).<br>
7. Eraldi ekraani mängu instruktsioonide jaoks.<br>
8. Tööd mängu mehaanikaga.<br>
9. Võimalust käivitada erinevad tasemed ainult siis, kui nad on juba läbitud.<br>
10. Võib olla ka midagi veel, kui leidub võimalus või ideed.<br>
11. Koodi vigu parandamine. Koodi ilusaks tegemine.
 
== Valmis mäng ==
Alla laadida lähtekoode ja projekt saab siit: [http://enos.itcollege.ee/~vkovalt/Valmis/Projekt/ Link]<br>
Alla laadida mäng Windowsi jaoks saab siit: [http://enos.itcollege.ee/~vkovalt/Valmis/Windows/ Link]<br>
Alla laadida mäng Mac'i jaoks saab siit: [http://enos.itcollege.ee/~vkovalt/Valmis/MAC/ Link]<br>
Mängu veebiversioon leidub siit: [http://enos.itcollege.ee/~vkovalt/Valmis/WEB/ Link]<br><br>
 
'''Arendusprotsessi kirjeldus:'''<br>
Kõikide gruppi liikmete panus on võrdne. Igaüks reliseeris iseseisvalt oma osa jaotatud funktsionaalususest. Koosolekutel panime kõik jupid kokku ühe ühise projekti.<br><br>
 
'''Kasutajajuhend:'''<br>
'''NB! Game resolution 1366x768'''<br>
Mängu alustamiseks vajutame nuppu "Play game".<br>
Vajuta Space-klahvi, et pall hakkas liikuma.<br>
Mängus liikumiseks vajutame nuppe:<br>
A / vasak nool - platvorm liigub vasakule.<br>
D / parem nool - platvorm liigub paremale.<br>
Kui pall takerdus vajuta Shift-klahvi.<br>
 
Telliseid, mis annavad boonuseid ei pea hävitama taseme läbimiseks.<br>
Tasemeid saab valida menüüs valides vajalikku taseme.<br>
Välja/sisse lülitada heli saab menüüs vajutades "Music" nuppule.<br>
Mängu menüüs vajutades nuppule "Game manual" saab näha vajalikku info mängukohta ja selle juhtimiseks.<br>
"Pause" - nuppu vajutamisel mäng pannakse pausi peale.<br>
"Replay" - nuppu vajutamisel mängitav tase laetakse jälle.<br>
"Menu" - nuppu vajutamisel laetakse menüü ekraani.<br>
"Exit" - nuppu vajutamisel mäng pannakse kinni.<br><br>
 
'''Lahenduse kirjeldus:'''<br>
Teostasime kõik, mida jõudsime ja mis oli meie jaoks jõukohane. Mäng on valmis.
 
== Arendusprotsess ==
*'''15.10.2015''' - Meeskonna loomine
*'''15.10.2015''' - Meeskonna loomine
*'''20.10.2015''' - Projekti idee valimine
*'''20.10.2015''' - Projekti idee valimine
Line 29: Line 118:
*'''01.11.2015''' - Analüüsi esitamine
*'''01.11.2015''' - Analüüsi esitamine
*'''07.11.2015''' - Analüüsi retsensioon meeskonnale "Sporto"
*'''07.11.2015''' - Analüüsi retsensioon meeskonnale "Sporto"
*'''10.12.2015''' - Prototüübi lisamine.
*'''19.01.2016''' - Valmis mängu lisamine.

Latest revision as of 10:48, 20 January 2016

Meeskonna liikmed

  • Vladislav Lahtarin
  • Vladislav Kovaltšuk
  • Aleksandr Babõkin - Projektijuht

Idee

Tahame luua 2D Arkanoid tüüpi mängu, kasutades UNITY keskkonda ja C# keelt.

Analüüs

Valisime oma C# kodutööks mänguloomist Unity keskkonna ja C# programmeerimis keele abil. Unity on mitmekülgne 3D/2D mängu arenduskeskkond, millesse on integreeritud kõik vajalikud tööriistad mängude loomiseks. Samuti annab Unity võimalust luua mänge erinevatele platvormidele: arvutidele, konsoolidele, telefonidele ja veebile. Saame aru, et Unity nõuab suurt juurde õppimise panust, kuid arvame, et selle kasutamine annab meile väga head õppimisvõimalust ning arendab meeskonnatöö oskust. Meie eesmärgiks on luua lihtne, kättesaadav ja haarav mäng, millega saab oma vaba aja veeta. Projektiks oli valitud Arkanoid tüüpi mäng, mis põhineb Atari Breakout mängude seeriale. Tegemist tuleb single player tüüpi mänguga. Mängija kontrollib väikest platvormi, mida saab liigutada horisontaalselt ühest seinast teisse ning ülesandeks on vältida palli kukkumist. Samas on olemas tellised. Palli löök tellise vastu viib selle hävitamisele. Kui kõik tellised antud tasemel on hävitatud, toimub üleminek järgmisele tasemele, uue telliste kogumikuga. Erinevatel tasemetel on erinevad telliste omavaheline paigaldus. Iga tellise hävitamine annab mängijale punkte (Score). See annab võimalust võrrelda oma tulemusi oma sõpradega või teiste inimestega. Loome mängu peamiselt meelelahutuseks, kuid samal ajal ootame, et mingil kasutajal võib isegi nostalgia tekitada. Kindlasti nõuab mängu tegemine palju tööd, panust ja aega ning kindlasti tulevad ette ka mitmeid probleeme, kuid praegu neid välja tuua on küllaltki raske, sest enne seda mitte keegi meist pole selliseid projekte teinud, selle tõttu praegu on keeruline öelda, kas õnnestub see idee meil ellu viia või ei õnnestu.

Nimekiri funktsionaalsusest (Must have)

Kõigepealt valmistame tasemet, kus kogu mäng hakkab toimuma. Loome platvormi, palli ja erinevad tellised. Platvormi saab liigutada vasakule ja paremale. Iseenesest palli kontrollimise võimalust mängijal ei ole, seda saab kontrollida ainult platvori abil. Iga mängu taseme alustamiseks tuleb vajutada klahvi, selleks et pall alustaks oma liikumist. On vaja realiseerida mängija “elu” süsteemi. Algusel neid on kolm tükki, kuid mängu käigus nei saab juurde koguda. Iga tasemega muutub telliste paigaldus ja kasvab palli kiirus, ehk kasvab ka tasemete raskus. Mäng on lõppenud siis, kui on läbitud kõik tasemed või pall on kukkunud ja mängijal enam ei ole elusid. Tuleb realiseerida mängu menüü paneeli, kus saab alustada uut mängu, valida taseme, nupp “Start”, “Menu”, “Replay” ja nupp “Pause”. Samuti saab näha infot mängu koostajate ja versiooni kohta. Kindlasti tuleb teha ka mängu staatus, kus on näha, et kas mängija mängib ja kui palju elusid tal veel on, kas mäng on pausi peal või mitte, kaotas või võitis mängu. Mängu disaini loome ka ise, joonistame kõik objektid graafilises redaktoris. On vaja luua graafikat tausta, palli, telliste ja platvormi jaoks. Et kasutajal poleks igav teeme kõik tasemeid visuaalselt erinevat moodi ja lisame heli, mida saab menüü paneelis välja või sisse lülitada. Oma koodi püüame teha maksimaalselt mugavalt loetatavaks ja vältida vigu. Püüame leida parimaid lahendusi mängu realiseerimiseks ja optimiseerimiseks.

Nimekiri funktsionaalsusest, mis võiks olla (Nice to have)

Mängule tahaksime teostada installi, et iga tavakasutaja saaks meie mängu lihtsalt ja mugavalt endale arvutisse installida. Mängul võiks olla telliseid, mida on vaja paar korda lüüa, selleks et seda hävitada. Võiks luua selliseid objekte mis hoopis ei saa hävitada. Nende eesmärk on teha taseme läbimist keerukamaks ja nn. “kaitsta” teisi telliseid. Mõnikord võib ilmuda vaenlane, kes tõukab palli. Luua selliseid telliseid, mille hävitamisel ilmub ja hakkab kukkuma kapsel. Kapsel on aktiveeritud kui mängija suudab seda püüda oma platvormiga. Kapslid võivad olla erinevad: mingid neist aitavad, teised aga teevad kahju. Näiteks laiendavad või kitsendavad platvormi, suurendavad palli arvu või annavad pallile rohkem jõudu või hoopis teevad seda nähtamatuks. Võiks luua “teleporte”, kui pall sattub sinna tuleb ta välja teises kohas. Ühel tasemel neid võiks olla päris mitu. Oleks tore kui saaksime kuvata mängu lõppetamisel mängija Score, et ta saaks teada, kui palju ta nei kogenud on.

Analüüsi retsensioon meeskonnale "Sporto"

Meeskonna Sporto idee on luua rakendus spordiürituste jaoks. Tänu selle rakendusele korraldajad saavad spordiüritusi läbi viia, monitoorida ürituste toimumist, kuvada ürituste ajakava ja hallata hindamissüsteemi. Meeskond tahab aidata oma rakendusega spordiüritusi kiirendada ja läbi viia kaasaegsel moel. Rakenduse loomiseks kasutavad nad C#, WPF, Owin, SignalR, Entity Framwork ja LINQ tehnoloogiat. Samuti kasutasid nad teistes ainetes saadud teadmisi andmebaasi mudeli loomiseks, mis on päris lahe, kui suudad mitmes ainetes omandatud teadmised rakendada ühes töös. Meeldib, et rakendus on mitme nurga alt läbi mõeldud ja sisu on lahti seletatud. Meeskonna Sporto rakenduse saab käivitada kolmes režiimis milleks on: admin, kohtuniku ja ajakava režiimid. Ehk siis rakendus on ettenähtud kohtunikutele kui ka tavakasutajatele, kes tahavad näha hetkel toimuvat ja tulevasi mänge. Me arvame, et meeskond Sporto teeb suurt tööd ja pannustab sellesse kõik teadmised mis nad on omandanud nende paar õppeaasta jooksul. Kindlasti rakenduse ehitamise käigus meeskonnal on vaja palju materjale iseseisvalt juurde õppida, mis on väga positiivne külg. Meeldib ka see, et meeskonnal on kindlad ja korrektsed eesmärgid. Nad teavad mis tööpannus neid ees ootab ja kuidas peab välja nägema nende lõpptulemus. Samuti meeskond teab mis probleemidega nende rakendus tulevikus kokku puutub. Loodame, et meeskond saab püstitatud eesmärkidega hakkama ja kes teab, äkki tulevikus hakkavad kõik nende rakendust spordiüritustes kasutama. Meie poolt soovime nendele edu!

Prototüübi retsensioon meeskonnale "mc2"

Prototüübi käivitamine toimus ilma raskuseta ja sellega probleeme ei esinenud. Double click exe faili peale ja mäng on käivitatud. Projekti struktuur ja ülesehitus on korralik. Lähtekood on korralikult jagatud klassideks ja paigaldatud kaustadesse. Klassidel on antud selged nimed, et isik ,kes pole selle koodiga tegelenud saab aru mis konkreetne klass endas sisaldab. Ainsaks miinuseks on koodi kommentaaride puudumine. Mängus on realiseeritud kõik must-have funktsionaalsused. Mängu käivitamisel avaneb main menüü mis koosneb viiest nuppust, kus on võimalik kas alustada uut mängu, vaadata üldist tabeliseisu, muuta seadeid, saada infot ja abi ning mängu sulgeda. Mängija vastaseks saab olla kas arvuti või teised mängijad. Korraga ühte mängu saab koos mängida kuni kaheksa inimest. Selleks sa pead ennast registreerima või logida sisse juba olemasolevasse kasutaja. Mängu alustamiseks sulle ilmub ette sättimisaken, kus mängija saab valida kaardi suurust, sättida aja piirangu, valida enda ja vastase värvi, vastase tase ning mängu võitmise viis. Kui testisime mängu, siis austalt öeldes esimeseid katseid meie kaotasime. See andis hoogu juurde.

Mida ootame veel “nice to have’st” : Kujundite muutmise võimalus oleks väga teretulnud. Enda poolt soovitame lisada võimalust skip-ida täringu ette ilmumise (kes esimesena alustab mängu). Aga kokkuvõteks võime öelda, et rühm „mc2“ tegid suurepärast tööd ja ehitasid valmis head mitmekülgset mängu koos mitme võimalustega menüüs. Soovime edu lõpptoode valmistamisel ja „nice to have” realiseerimisel.

Lõpptoote retsensioon meeskonnale "Sporto"

Esmalt vaataks üle, kas programm täidab õppejõu poolt kirja pandud nõudeid:

  • Andmebaasis peab olema vähemalt 6 andmebaasi tabelit - andmebaasis on 10 tabelit, seega nõue on täidetud
  • Peab võimaldama tegevuste kohta registri pidamist (logi) - nõue on täidetud
  • Kasutama kasutajaliidesena ühte järgmistest: Windows Presentation Foundation, Windows Phone 8, Windows 8 Store App või ASP.Net - meeskond kasutab WPF tehnoloogiat, nõue on täidetud
  • Kood on kommenteeritud ning rakendus on varustatud dokumentatsiooniga - nõue on täidetud
  • Maksimumpunktide jaoks kasutatakse vastavalt valitud tehnoloogiale soovitatud arendusmustreid - nõue on täidetud
  • Kood on kirjutatud C# programmeerimiskeeles - nõue on täidetud
  • Rakendus on jaotatud kihtidesse - nõue on täidetud

Eelnevast järeldub, et rakendus täidab kõik õppejõu poolt kirja pandud nõudeid.

Meeskonna koduleht on korralik ja arusaadav. Kasutusjuhend on tehtud video kaudu, mis on eriti mugav. Rakenduse testimise ajal saime aru, et kõik planeeritav ja võimalik funktsionaalsus on realiseeritud. Rakendus töötab ilusti ja täidab oma ülesandeid. Vigu ei ole märgatud. Lõpptoode sai valmis õigeks ajaks.

Lõppkokkuvõtteks on rühmaliikmed oma tööga kenasti hakkama saanud.

Prototüüp

Protoüübi (browser versioon) leiab siit: Link

Protoüübi Unity projekt leiab siit (koodid kaustas Assets -> scripts): Link

Kasutusjuhend:
1. Taseme laadimiseks on vaja vajutada nuppu Play Game (level 1) või nuppu Level 2 (level 2).
2. Mängu alustamiseks on vaja vajutada Space klahvi.
P.S. Nupp Exit ei tööta browseri versioonis.

Mis on meil praeguseks tehtud:
1. Erinevad nupud (Pause – paneb mängu pausile, Menu – avab menüü akent, Exit – sulgeb mängu, Replay – laadib tasemet uuesti).
2. Mängu väljak: seinad, platvorm, pall, erinevad tellised, nupud ja lugejad (lives, score).
3. Palli iseseisev liikumine.
4. Palli põrged.
5. Elude ja punktide süsteem.
6. Platvormi saab juhtida:
A / vasak nool - liigub vasakule.
D / parem nool - liigub paremale.
7. Selleks, et tasemet läbida on vaja hävitada kõik tellised. Mida kiiremini see on tehtud, seda suurema punktide kogust saad.
8. Kui oma pall kukkub alla (või punktide arv on alla nulli), siis väheneb elude arv ühe võrra. Kui elude arv on alla nulli, siis on mäng kaotatud.

Mida plaanime veel lisada:
1. Rohkem tasemeid.
2. Heli.
3. Nupu heli välja või sisse lülitamiseks.
4. Näidata punktide kogust iga taseme lõppus ja kogu mängu lõppus.
5. Disainilised tööd.
6. Mängu vigade (bugs) parandamine (pall jääb kinni, replay kui mäng on kaotatud, pause nupp).
7. Eraldi ekraani mängu instruktsioonide jaoks.
8. Tööd mängu mehaanikaga.
9. Võimalust käivitada erinevad tasemed ainult siis, kui nad on juba läbitud.
10. Võib olla ka midagi veel, kui leidub võimalus või ideed.
11. Koodi vigu parandamine. Koodi ilusaks tegemine.

Valmis mäng

Alla laadida lähtekoode ja projekt saab siit: Link
Alla laadida mäng Windowsi jaoks saab siit: Link
Alla laadida mäng Mac'i jaoks saab siit: Link
Mängu veebiversioon leidub siit: Link

Arendusprotsessi kirjeldus:
Kõikide gruppi liikmete panus on võrdne. Igaüks reliseeris iseseisvalt oma osa jaotatud funktsionaalususest. Koosolekutel panime kõik jupid kokku ühe ühise projekti.

Kasutajajuhend:
NB! Game resolution 1366x768
Mängu alustamiseks vajutame nuppu "Play game".
Vajuta Space-klahvi, et pall hakkas liikuma.
Mängus liikumiseks vajutame nuppe:
A / vasak nool - platvorm liigub vasakule.
D / parem nool - platvorm liigub paremale.
Kui pall takerdus vajuta Shift-klahvi.

Telliseid, mis annavad boonuseid ei pea hävitama taseme läbimiseks.
Tasemeid saab valida menüüs valides vajalikku taseme.
Välja/sisse lülitada heli saab menüüs vajutades "Music" nuppule.
Mängu menüüs vajutades nuppule "Game manual" saab näha vajalikku info mängukohta ja selle juhtimiseks.
"Pause" - nuppu vajutamisel mäng pannakse pausi peale.
"Replay" - nuppu vajutamisel mängitav tase laetakse jälle.
"Menu" - nuppu vajutamisel laetakse menüü ekraani.
"Exit" - nuppu vajutamisel mäng pannakse kinni.

Lahenduse kirjeldus:
Teostasime kõik, mida jõudsime ja mis oli meie jaoks jõukohane. Mäng on valmis.

Arendusprotsess

  • 15.10.2015 - Meeskonna loomine
  • 20.10.2015 - Projekti idee valimine
  • 24.10.2015 - Wiki lehe loomine, TFSi konto loomine ja õppejõule kutse saatmine
  • 01.11.2015 - Analüüsi esitamine
  • 07.11.2015 - Analüüsi retsensioon meeskonnale "Sporto"
  • 10.12.2015 - Prototüübi lisamine.
  • 19.01.2016 - Valmis mängu lisamine.