Meeskond: VVA: Difference between revisions
Line 70: | Line 70: | ||
== Valmis mäng == | == Valmis mäng == | ||
Alla laadida lähtekoode ja projekt saab siit: [http://enos.itcollege.ee/~vkovalt/Valmis/Projekt/ Link]<br> | Alla laadida lähtekoode ja projekt saab siit: [http://enos.itcollege.ee/~vkovalt/Valmis/Projekt/ Link]<br> | ||
Alla laadida mäng | Alla laadida mäng Windowsi jaoks saab siit:[http://enos.itcollege.ee/~vkovalt/Valmis/Windows/ Link]<br> | ||
Alla laadida mäng | 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> | Mängu veebiversioon leidub siit:[http://enos.itcollege.ee/~vkovalt/Valmis/WEB/ Link]<br><br> | ||
Line 79: | Line 79: | ||
'''Kasutajajuhend:'''<br> | '''Kasutajajuhend:'''<br> | ||
Mängu alustamiseks vajutame nuppu "Play game".<br> | Mängu alustamiseks vajutame nuppu "Play game".<br> | ||
Vajuta Space-klahvi, et pall hakkas liikuma.<br> | |||
Mängus liikumiseks vajutame nuppe:<br> | Mängus liikumiseks vajutame nuppe:<br> | ||
A / vasak nool - platvorm liigub vasakule.<br> | A / vasak nool - platvorm liigub vasakule.<br> | ||
D / parem nool - platvorm liigub paremale.<br><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> | Telliseid, mis annavad boonuseid ei pea hävitama taseme läbimiseks.<br> | ||
Line 90: | Line 92: | ||
"Replay" - nuppu vajutamisel mängitav tase laetakse jälle.<br> | "Replay" - nuppu vajutamisel mängitav tase laetakse jälle.<br> | ||
"Menu" - nuppu vajutamisel laetakse menüü ekraani.<br> | "Menu" - nuppu vajutamisel laetakse menüü ekraani.<br> | ||
"Exit" - nuppu vajutamisel | "Exit" - nuppu vajutamisel mäng pannakse kinni.<br><br> | ||
'''Lahenduse kirjeldus:'''<br> | '''Lahenduse kirjeldus:'''<br> |
Revision as of 14:18, 19 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.
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:
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.