Meeskond:EluOnLill: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:


== Liikmed ==
== '''Liikmed''' ==
*Henrik Prangel - Projektijuht
*Henrik Prangel - Projektijuht
*Kert Saarma
*Kert Saarma
*Carlos Kirtsi
*Carlos Kirtsi


== Blogi ==
=='''Idee'''==
*Luua mäng, mis simuleerib elu kulgemist
 
Mängu algus - tekitame inimese lapsena  ja saab valida kuidas alustada oma elu - sotsialiseerumine, õppimine, looming, sport. Nende põhjal tekib see isik, kes siis täiskasvanuna hakkab elu elama.Karakterit luues on random generator mis määrab ära kui kerge ülejäänud mängust on. Vastavalt sellele kuidas siis lapsena valikuid teed mõjutab su tuleviku, palju sporti on kalduvus olla loll sportlane jne. Täiskavanuna tekib juurde uued väärtused raha, kuulsus, jõud, pere ja heaolu. Kõikide näitajate pealt tekib skoor mis näitab kui hea sa siis kokkuvõttes olid, üks mänguprotsess kestab reaalajas kuu aega, aga on olemas ka nupp mis kiirendab mängu. Juhul kui mäng "läbi" saad edasi mängida ühe oma lapsena juhul kui neid said.
 
== '''Blogi''' ==
*'''01.10.17''' - Tiimi loomine  
*'''01.10.17''' - Tiimi loomine  
*'''10.10.17''' - Idee arutamine
*'''10.10.17''' - Idee arutamine
Line 24: Line 29:
*'''18.01.18''' - Projekti kaitsmine
*'''18.01.18''' - Projekti kaitsmine


==Versioonihaldus==


Meie meeskonna versioonihaldus on leitav [https://eluonlill.visualstudio.com/_git/Liferoad TFS'is]
== '''Kasutatav teholoogia''' ==
* C#
* WPF
* LINQ
* TFS
 
=='''Versioonihaldus'''==
 
Versioonihaldus: [https://eluonlill.visualstudio.com/_git/Liferoad TFS'is]
 
=='''Analüüs'''==
* Meie valminud analüüsi on võimalik näha [https://docs.google.com/document/d/1I5khxq2LYCEbLcEyp-QSfQVn8ZzYmZQrgmq_AZJQTpE/edit?usp=sharing siit]
 


== Idee ==
Luua mäng, mis simuleerib elu


Mängu algus - tekitame inimese lapsena  ja saab valida kuidas alustada oma elu - sotsialiseerumine, õppimine, looming, sport. Nende põhjal tekib see isik, kes siis täiskasvanuna hakkab elu elama.Karakterit luues on random generator mis määrab ära kui kerge ülejäänud mängust on. Vastavalt sellele kuidas siis lapsena valikuid teed mõjutab su tuleviku, palju sporti on kalduvus olla loll sportlane jne. Täiskavanuna tekib juurde uued väärtused raha, kuulsus, jõud, pere ja heaolu. Kõikide näitajate pealt tekib skoor mis näitab kui hea sa siis kokkuvõttes olid, üks mänguprotsess kestab reaalajas kuu aega, aga on olemas ka nupp mis kiirendab mängu. Juhul kui mäng "läbi" saad edasi mängida ühe oma lapsena juhul kui neid said.
== '''Esialgsed lootused ja ootused projekti suhtes''' ==
 


===Must-have:===  
===Must-have:===
* Elutsüklid
* Elutsüklid
* Igas elutsüklis mingisugused random eventid
* Igas elutsüklis mingisugused random eventid
Line 39: Line 54:
* Profiili kujunemine
* Profiili kujunemine


===Nice-to-have: ===
===Nice-to-have:===
* Palju funktsionaalsust ja variatsiooni
* Palju funktsionaalsust ja variatsiooni
* Vähe piiranguid
* Vähe piiranguid
Line 47: Line 62:
*Mäng oleks online ja tekiks ühiskond kus enda käitumine mõjutab ka teiste mängu
*Mäng oleks online ja tekiks ühiskond kus enda käitumine mõjutab ka teiste mängu


===Analüüs===
* Meie valminud analüüsi on võimalik näha [https://docs.google.com/document/d/1I5khxq2LYCEbLcEyp-QSfQVn8ZzYmZQrgmq_AZJQTpE/edit?usp=sharing siit]


==Tehnoloogia==
*C#
*WPF


=='''Dokumentatsioon'''==
== '''Reaalsemad ootused ja lootused''' ==
Kui rakendusega tegelema hakkasime, mõistsime kiiresti, et projekti mahu olime me enda jaoks liiga suureks sättinud. Mõistsime, et isegi meie "must to have" funktsionaalsus oli umbmäärane, lai ja omam mahu tõttu raskesti teostatav. Seega otsustasime oma "must to have" ja "nice to have funktsionaalsuse" ümber sõnastada.
 
===Must-have:===
*Events – sündmused, mis juhtuvad igal eluaastal ja mõjutavad su karakterit kuidagi
*Relationships - karakteril peaksid olema ja tekkima erinevad suhted erinevate isikutega
*Activities – karakter käib koolis, kus ta saab teha erinevaid otsuseid oma elu üle (kontsentreeruda õppimisele või suhtlemisele)
 
 
===Nice-to-have: ===
*Relationships- Karakter saab oma suthteid isikutega paremini ise „vormindada“, otsustades kellega ta kuidas suhtleb, kui üldse.
*Activities- Kooli kõrvalt on võimalik veel tegeleda ka erinevate hobidega
*Design- Ilus WPF välimus ja funktsionaalsus
 
 
 
 
 
=='''Arendusprotsess'''==




Line 60: Line 88:
=='''Kasutusjuhend'''==
=='''Kasutusjuhend'''==
Mängu alustades, satub mängija "sisselogimisekraanile", kus on võimalik luua uusi karaktereid, kellega uus mäng alustada või siis laadida juba mõni olemasolev/käiv mäng (samuti saab siin ka olemasolevaid karaktereid kustutada).
Mängu alustades, satub mängija "sisselogimisekraanile", kus on võimalik luua uusi karaktereid, kellega uus mäng alustada või siis laadida juba mõni olemasolev/käiv mäng (samuti saab siin ka olemasolevaid karaktereid kustutada).
Kui mängija on loonud uue karakteri (või valinud olemasoleva), siis vajutades PLAY nupule, viiakse ta Põhivaatesse, kus kogu mäng aset leiab. Mängus on karakteril võimalik teha otsuseid, mis mõjutab tema isikuandmeid ja suhteid (need otsused avanevad alles 7. eluaastast). Piltlikult öeldes ongi momendil kogu mängu eesmärk: lõpetada mäng võimalikult heade isikuandmete ja suhetega (momendil lõppeb mäng 20. eluaastal).  
Kui mängija on loonud uue karakteri (või valinud olemasoleva), siis vajutades PLAY nupule, viiakse ta põhivaatesse, kus kogu mäng aset leiab. Mängus on karakteril võimalik teha otsuseid, mis mõjutab tema isikuandmeid ja suhteid (need otsused avanevad alles 7. eluaastast). Piltlikult öeldes ongi momendil kogu mängu eesmärk: lõpetada mäng võimalikult heade isikuandmete ja suhetega (momendil lõppeb mäng 20. eluaastal).  
 
 


'''Mängu Mehaanika'''
'''Mängu Mehaanika'''
* Mäng on käigupõhine - Iga käik on võimalik teha otsuseid
* Mäng on käigupõhine
* Kui Tervis liiga madalale langeb, siis karakter suureb
** Iga käik on võimalik teha otsuseid
** Peale igat käiku, muutuvad karakteriandmed lähtuvalt eelmisel käigul tehtud otsustest
* Mängus on "Tegutsemispunktid" (Action Points)
** Otsuseid on võimalik teha ainult nii palju, kui sul on "tegutsemispunkte"
* Karakteri andmed
** Kui tervis langeb karakteril liiga madalale, siis karakter sureb (Game Over)
 




Line 71: Line 107:
*Save Game (SG) = Nupp, mis salvestab mänguseisu andmebaasi.
*Save Game (SG) = Nupp, mis salvestab mänguseisu andmebaasi.
*Haridus = Nupp avab haridusvaate, mille all on erinevad otsused, millega koolis tegeleda (üldiselt valik kontsentreeruda kas koolile või suhetele).
*Haridus = Nupp avab haridusvaate, mille all on erinevad otsused, millega koolis tegeleda (üldiselt valik kontsentreeruda kas koolile või suhetele).
=='''Lahenduse kirjeldus'''==
"Elu On Lill" mäng, on WPF-il põhinev rakendus, mis disainiti kasutades MVVM arendusmustri põhimõtteid. Selle tõttu on üritatud äriloogikat ja WPF-i spetsiifilist koodi lahus hoida. Nõnda sai ka kirjutatud Kood jaotatud vaatemudelite, domeenide ja teenuste kaustade vahel (Millest viimased kaks, domeenid ja teenused, moodustavad rakenduse valdava äriloogika osa ja vaatemudelid moodustavad WPF spetsiifilise osa). Rakendusel on ka andmebaas, kuhu talletatakse mängu infot. Päringuid andmebaasist teostatakse läbi LINQ
Andmebaasi moodustavad 6 tabelit
*CurrentGame- (põhimõtteliselt "Save Game")
*Person- Kõik karakterid mängus (nii mängitavad, kui mittemängitavad)
*Relations- Suhted
*PersonRelations- Isikud suhetes
*Events- sündmused
*PersonEvents- Isikud sündmustes
Eelnimetatutele andmebaasitabelitel on ka vastavad domeenimudelid ja teenindusklassid.

Revision as of 02:10, 18 January 2018

Liikmed

  • Henrik Prangel - Projektijuht
  • Kert Saarma
  • Carlos Kirtsi

Idee

  • Luua mäng, mis simuleerib elu kulgemist

Mängu algus - tekitame inimese lapsena ja saab valida kuidas alustada oma elu - sotsialiseerumine, õppimine, looming, sport. Nende põhjal tekib see isik, kes siis täiskasvanuna hakkab elu elama.Karakterit luues on random generator mis määrab ära kui kerge ülejäänud mängust on. Vastavalt sellele kuidas siis lapsena valikuid teed mõjutab su tuleviku, palju sporti on kalduvus olla loll sportlane jne. Täiskavanuna tekib juurde uued väärtused raha, kuulsus, jõud, pere ja heaolu. Kõikide näitajate pealt tekib skoor mis näitab kui hea sa siis kokkuvõttes olid, üks mänguprotsess kestab reaalajas kuu aega, aga on olemas ka nupp mis kiirendab mängu. Juhul kui mäng "läbi" saad edasi mängida ühe oma lapsena juhul kui neid said.

Blogi

  • 01.10.17 - Tiimi loomine
  • 10.10.17 - Idee arutamine
  • 16.10.17 - Wiki lehe loomine
  • 20.10.17 - Viimane koosolek enne idee teostamisega alustamist(Arendusmudeli valimine)
  • 30.10.17 - Alustasime analüüsi koostamist
  • 04.11.17 - Analüüs valminud peaksime alustama projekti vundamendi loomist
  • 12.11.17 - Valmis retsensioon tiimile VirtualBar
  • 01.12.17 - Projekti idee kinnistamine ja osade jagamine
  • 10.12.17 - Projekti vaadete arutamine ja täpselt paika seadmine
  • 11.12.17 - Ametlikult programmi loomisega alustamine
  • 13.12.17 - Esimene koodi osa ja vaate üles panemine versioonihaldusesse
  • 15.12.17 - Vaadete valmimine, komplikatsioonidest ülesaamine
  • 18.12.17 - Toimus prototüübi esitamine, mille käigus saime ideid edasiseks tegutsemiseks ja teenisime ka ~8 punkti siiani tehtud töö eest
  • 11.01.18 - Uuesti tegelema hakkamine, karakteri loomine valmis
  • 14.01.18 - Koodi formatimine, WPF visuaalid, andmebaaside korrastamine, andmebaasist kustutamise nupp
  • 17.01.18 - Viimased puudu olevad asjad:
  • 18.01.18 - Projekti kaitsmine


Kasutatav teholoogia

  • C#
  • WPF
  • LINQ
  • TFS

Versioonihaldus

Versioonihaldus: TFS'is

Analüüs

  • Meie valminud analüüsi on võimalik näha siit


Esialgsed lootused ja ootused projekti suhtes

Must-have:

  • Elutsüklid
  • Igas elutsüklis mingisugused random eventid
  • Oskused ja nende arendamine
  • Profiili kujunemine

Nice-to-have:

  • Palju funktsionaalsust ja variatsiooni
  • Vähe piiranguid
  • Visuaalselt ilus disain

Dream-to-have:

  • Mäng oleks online ja tekiks ühiskond kus enda käitumine mõjutab ka teiste mängu


Reaalsemad ootused ja lootused

Kui rakendusega tegelema hakkasime, mõistsime kiiresti, et projekti mahu olime me enda jaoks liiga suureks sättinud. Mõistsime, et isegi meie "must to have" funktsionaalsus oli umbmäärane, lai ja omam mahu tõttu raskesti teostatav. Seega otsustasime oma "must to have" ja "nice to have funktsionaalsuse" ümber sõnastada.

Must-have:

  • Events – sündmused, mis juhtuvad igal eluaastal ja mõjutavad su karakterit kuidagi
  • Relationships - karakteril peaksid olema ja tekkima erinevad suhted erinevate isikutega
  • Activities – karakter käib koolis, kus ta saab teha erinevaid otsuseid oma elu üle (kontsentreeruda õppimisele või suhtlemisele)


Nice-to-have:

  • Relationships- Karakter saab oma suthteid isikutega paremini ise „vormindada“, otsustades kellega ta kuidas suhtleb, kui üldse.
  • Activities- Kooli kõrvalt on võimalik veel tegeleda ka erinevate hobidega
  • Design- Ilus WPF välimus ja funktsionaalsus



Arendusprotsess

Kasutusjuhend

Mängu alustades, satub mängija "sisselogimisekraanile", kus on võimalik luua uusi karaktereid, kellega uus mäng alustada või siis laadida juba mõni olemasolev/käiv mäng (samuti saab siin ka olemasolevaid karaktereid kustutada). Kui mängija on loonud uue karakteri (või valinud olemasoleva), siis vajutades PLAY nupule, viiakse ta põhivaatesse, kus kogu mäng aset leiab. Mängus on karakteril võimalik teha otsuseid, mis mõjutab tema isikuandmeid ja suhteid (need otsused avanevad alles 7. eluaastast). Piltlikult öeldes ongi momendil kogu mängu eesmärk: lõpetada mäng võimalikult heade isikuandmete ja suhetega (momendil lõppeb mäng 20. eluaastal).


Mängu Mehaanika

  • Mäng on käigupõhine
    • Iga käik on võimalik teha otsuseid
    • Peale igat käiku, muutuvad karakteriandmed lähtuvalt eelmisel käigul tehtud otsustest
  • Mängus on "Tegutsemispunktid" (Action Points)
    • Otsuseid on võimalik teha ainult nii palju, kui sul on "tegutsemispunkte"
  • Karakteri andmed
    • Kui tervis langeb karakteril liiga madalale, siis karakter sureb (Game Over)


Momendil on põhiekraanil kasutatavad nupud:

  • Forward Time = Nupp, mida vajutades, möödub 1 aasta. (Selle aasta käigus uuenevad karakteri isikuandmed ja suhted lähtuvalt tema otsustele)
  • Save Game (SG) = Nupp, mis salvestab mänguseisu andmebaasi.
  • Haridus = Nupp avab haridusvaate, mille all on erinevad otsused, millega koolis tegeleda (üldiselt valik kontsentreeruda kas koolile või suhetele).


Lahenduse kirjeldus

"Elu On Lill" mäng, on WPF-il põhinev rakendus, mis disainiti kasutades MVVM arendusmustri põhimõtteid. Selle tõttu on üritatud äriloogikat ja WPF-i spetsiifilist koodi lahus hoida. Nõnda sai ka kirjutatud Kood jaotatud vaatemudelite, domeenide ja teenuste kaustade vahel (Millest viimased kaks, domeenid ja teenused, moodustavad rakenduse valdava äriloogika osa ja vaatemudelid moodustavad WPF spetsiifilise osa). Rakendusel on ka andmebaas, kuhu talletatakse mängu infot. Päringuid andmebaasist teostatakse läbi LINQ

Andmebaasi moodustavad 6 tabelit

  • CurrentGame- (põhimõtteliselt "Save Game")
  • Person- Kõik karakterid mängus (nii mängitavad, kui mittemängitavad)
  • Relations- Suhted
  • PersonRelations- Isikud suhetes
  • Events- sündmused
  • PersonEvents- Isikud sündmustes

Eelnimetatutele andmebaasitabelitel on ka vastavad domeenimudelid ja teenindusklassid.