Battle2048
Meeskond
Andrus Seiman, Annely Aasalaid, Kristjan Peterson
Idee
Luua tuntud arvutimängu “2048” uusversioon, mis võimaldab lisaks klassikalisele mänguvariandile mängida ka mitmel mängijal üksteise vastu.
Arvutimäng “2048” on väga lihtne kuid väga kaasahaarav mäng, kus mängija eesmärgiks on liigutada 4x4 mõõtmelisel ruutudeväljal erinevate väärtustega klotse eesmärgiga teenida punkte läbikombineerida ühesuguse väärtusega klotse. Esimene versioon mängust ilmus veebis vabavarlisena aastal 2014 ning ositus väga populaarseks.
Rakenduse sisu
Mäng baseerub klassikalisel “2048”-l, kuid sisaldab uudseid variatsioone. Näiteks järgmised neli stsenaariumi:
- Klassikaline 2048 üksikmäng, kuid ilma 2048 piiranguta. Mäng kestab seni, kuni enam liikuda ei saa. Mitte siis kui ühes ruudu väärtuseks saab 2048 nagu klassikalises mängus. Mängu eesmärk on koguda maksimaalselt punkte.
- Üksikmäng kella vastu (näiteks 2 või 3 minuti piirang). Mängu eesmärk on koguda lühikese ajaga maksimaalselt punkte. Aeg võiks olla piisavalt lühike, et kasutajal oleks pidevalt kiusatus mängu lõppedes uuesti proovida, sest uue tulemuse saab ruttu teade. Klassikaline mäng võib vahete vahel venida mitmekümne minuti pikkuseks, seega oleks uusversioon sellele hea alternatiiv.
- Mäng üksteise vasu ühel mängulaual. Kaks mängijat mängivad ühel mängulaual ja tehes kordamööda käike. Mängu algul on kummalgi piiratud hulk mõtlemisaega (näiteks 2 minutit). Mõtlemisaeg väheneb vastavalt sellele kaua aega kulub käigu tegemiseks (mäng malekellaga). Kui ühel mängijal aeg otsa saab, siis tema enam käia ei saa. Teine mängija saab oma aja lõpuni mängida. Võidab see kes rohkem punkte teenib. Kui ajapiirangu jooksul käia enam ei saa, siis võidab see, kes tegi viimase käigu.
- Mäng üksteise vastu kahel mängu laual. Kaks mängijat mängivad paralleelselt eraldi mängulaudadel. Kummalgi on mängijal on mängu algul 3 minutit mõtlemisaega. Igakord kui mängija teenib punkte lahutatakse vastase mõtlemisajast mingi mõtteline osa ja liidetakse punkti saanud mängija mõtleimsajale. Mäng käib seni kuni mõlemal mängijal on mõtlemisaeg otsas. Võidab see kel rohkem punkte. Et mäng oleks tasakaalus tuleb katseeksitus meetodil selgitada, kui palju peaks aega liitma või lahutama punkte teenides. Esialgu võiks proovida näiteks võtta arvu 2 aste ja muuta see sekunditeks - näiteks teenides 2, 4, 8, 16, 32, 64, jne. Punkti liidetakse/lahutatakse 1, 2, 3, 4, 5, 6, jne sekundit. Kui mõju liiga väike, siis peaks mängitavuse huvides korrutama mingi teguriga.
Mängu kaasahaaravust tõstmiseks tuleb kindlasti salvestada erinevaid “edetabeleid”, et mängijal oleks pidevalt soovi oma tulemusi ja miks mitte ka teiste mängijate omasid üle trumbata. Lisaks tavapärasele max. punktidele võiks talletada ka muid karakteristikuid, milles mõõtu võtta. Näiteks:
- Max. punktid
- Max. punktid esimese 3 minuti jooksul (vms. aeg)
- Vähim aeg, mis kulus esimese 100 punkti saavutamiseks
- Vähim aeg, mis kulus 2048 saavutamiseks
- jne.
Erinevad edetabelid tuleks hoida lokaalses või võrgu andmebaasis. Ideaalis võiks olla võrguadnembaas (näiteks enos.itcollege.ee-s), mille suhtes siis aegajalt sünkroniseeritakse lokaalset andmebaasi.
Lisaks võiks pidada meeles ka kasutajaid meeles, et mängijad saaksid jälgida ka iseenda kohta käivaid näitajaid. Samas võiks jääda võimalus mängida ilma sisse logimata anonüümselt.
Funktsionaalsus
Esialgu võib jagada ülesande kolmeks suureks osaks:
- Kasutaja liidese loomine, valikmenüüd, menüüdes liikumine, jne.:
- kasutaja loomine/sisse logimine (ideaalis võiks kasutada näiteks Microsofti kasutajakontosid),
- mängude valik
- statistikaga tutvumine
- “2048” mängumooduli loomine.
- Esimene ülesanne on luua klasikalise 2048 variant, mida täiendades luua uudsed variandid.
- Mäng üksi kella vastu
- Mäng üksteise vastu kahel laual
- Mäng üksteise vastu ühel laual
- Esimene ülesanne on luua klasikalise 2048 variant, mida täiendades luua uudsed variandid.
- Andmebaasiga tulemuste salvestamise ära sidumine:
- Lokaalne andmebaas
- Ideaalis võiks olla ka online andmebaas (näiteks enos.itcollege.ee), millega siis aegajalt sünkroniseeritaks andmeid. Sel juhul saaksid kasutajad erinevatest arvutitest üksteisega kaudselt mõõtu võtta.
“Must have”
- “2048” mängu funktsionaalsus
- erinevad mängu variatsioonid
- mängijate registreerimine / sisse logimine
- edetableite salvestamine lokaalsesse andmebaasi
“Nice to have”
- online andmebaasiga sünkroniseerimine,
- Microsofti kasutajanime kasutamine
- üldine “silmailu”
Andmebaasi disain
Andmebaasi disaini skeem
Kasutajaliidese disain
Vaated:
1. Sisselogimine/Registreerimine
Kasutaja registreerib end sisestades kasutajanime ning kaks korda parooli. Vajutades nupule „Registreeri“ viiakse kasutaja koheselt rakenduse pealehele, kus ta saab valida endale sobiva mängustiili.
Kui kasutajal on eelnevalt konto loodud vajutab ta „Logi sisse“ tabile, misjärel saab ta sisestada enda kasutajanime ning parooli. Vajutades nupule „Sisene“ viiakse kasutaja rakenduse pealehele, kus ta saab valida endale sobiva mängustiili.
2. Mäng (Pealeht sisseloginutele)
Nimekiri erinevatest mängustiilidest, kus kasutaja saab algatada uue mängu vastava nupu peale klikkides
- Üksikmäng
- Üksikmäng kella vastu
- Mäng arvutiga
- Mäng esimese uue vaba mängijaga (Battle)
2.1 Mänguvaated (Täpsustamisel)
3. Rekordite tabel
Nimekiri erinevatest mängustiilidest, kus kasutaja saab valida, millise stiili rekordeid ta vaadata tahab. Klikkides vastava stiili peale avaneb allpool tabel 10 parima tulemusega.
- Üksikmäng
- Üksikmäng kella vastu
- Mäng arvutiga
- Mäng esimese uue vaba mängijaga (Battle)
4. Seaded
Kasutaja saab muuta oma parooli. Nicetohave’na ka rakenduse välimust
Tööjaotus
Esialgne vastustus jaguneb järgmiselt:
- Kasutajaliides disain ja arendus (Annely)
- “2048” mängumooduli loomine (Kristjan)
- Andmebaasi disain ja andmebaasi ühenduse arendus (Andrus)
Kui mingid osad hakkavad valmis saama, siis panustatakse ühiselt aeglasemalt liikunud osadesse ja lisafunktsionaalsuste loomisesse.
Tehnoloogiad
- GUI: Windows Presentation Foundation
- Database: mingi andmebaasi teek
- ...
Arendusprotsess
29.09.2016 Meeskonna loomine. Projekti idees kokku leppimine.
01.10.2016 - 10.10.2016 Idee kallal töötamine. Tööjaotuse kokku leppimine.
11.10.2016 Wiki lehe loomine.
11.10.2016 - XX.YY.2016 Projekti funktsionaalsuse anaalüüs.