Meeskond "C-Team": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Rruga (talk | contribs)
Jkaskmaa (talk | contribs)
 
(46 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category: Programmeerimine CSharp keeles]]
[[Category: Programmeerimine CSharp keeles]]
=Üldist=
Mäng on sarnane tuntud klassikalise tetrisega, on olemas erinevat värvi klotsid, erinevad levelid, top skoor jne. Lisaks selle on võimalus mängu seadetest sisse lülitada nn cheatline, ehk on näha kuhu ritta klots kukub, samuti on olemas multiplayer tugi kas kohalikus võrgus või üle interneti mängimiseks. On olemas ka xboxi tugi, niiet saab mängida nii pc kui xboxi peal.


=Meeskond=
=Meeskond=
Line 8: Line 10:
*Indrek Kõue
*Indrek Kõue


=Erinevus tavalistest tetristest=
=Single player=
*[11:20:21 PM] Taivo: ta on traditsiooniline tetris uues maitses
[[File:ProjectT.png|thumb|150px|Pilt käivast single player mängust]]
*tweaking
Traditsiooniline tetris uues kuues, cheatline, palju optioneid.<br>
*cheatline
Arvuti genereerib mängijale suvalisi tükke (erinevaid on kokku 7) ning mängija peab need paigutama ruudustiku alla äärde nii, et saaks kokku ühe terve rea. Kui rida koos, siis rida hävineb ning mängija saab punkte.<br>
*palju optionseid
Korraga 1 hävitatud rea eest 100 punkti<br>
2 hävitatud rea eest 225 punkti<br>
3 hävitatud rea eest 375 punkti<br>
4 hävitatud rea eest 550 punkti<br>
Punkte saab ka selle eest, kui klots alla liigub. Iga samm, mis klots alla liigub, annab 1 punkti.<br>
<br>
Olemas on ka Top10 punktitabel, kus kuvatakse 10 suurima skooriga nime ja nende skoor. Top10 tabel ei sõltu seadetest, see tähendab, et olenemata seadetest lähevad arvesse kõik mängud.


=Multiplayer=
=Multiplayer=
[[File:tetris.png|200px|thumb|right|Pilt käivast multiplayer mängust]]
[[File:tetris.png|200px|thumb|right|Pilt käivast multiplayer mängust]]
Mängu on võimalik mängida ka multiplayeris. Kas siis kohalikus võrgus ühendatud arvutite vahel või siis üle interneti. Et mängida kohalikus võrgus, selleks tuleb mõlemal mängijal lülitada networking sisse. Peale seda peab üks mängija looma serveri ehk vajutama mängus "create" peale ( leiab multiplayer menüüst ). Et teine ühenduda saaks, peab ta sisestama vastase ip ja pordi kujul ip:port ( vastav koht tekib kui vajutada multiplayer menüüs join peale ). Vaikimisi on serveri pandud kuulama porti 1234. Kui on mingi väga mõjuv põhjus see muuta mingi muu pordi peale, siis on seda võimalik teha exe failiga samas kataloogis oleva options xml faili muutmisega, täpsemalt kirjutades sinna käsitsi uue kuulatava pordi numbri, kuid see pole soovitatav, kuna uus sisestatud port võb minna konflikti teiste arvutites olevate programmidega. Kui õnnestus ühenduse loomine, tuleb ette nimessestuse võimalus, vastasel juhul veateade. Sama senaarium toimib ka üle interneti mängides, kuid lisaks sellele peab serveri loonud mängija oma ruuteris tegema lahti vastava pordi ( 1234 või mingi muu, kui olete xml faili seadeid muutnud ).  
Mängu on võimalik mängida ka multiplayeris. Kas siis kohalikus võrgus ühendatud arvutite vahel või üle interneti. Kohalikus võrgus mängimiseks tuleb mõlemal mängijal lülitada networking sisse. Peale seda peab üks mängija looma serveri ehk vajutama mängus "create" peale (leiab multiplayer menüüst). Et teine ühenduda saaks, peab ta sisestama vastase ip ja pordi kujul ip:port (vastav koht tekib, kui vajutada multiplayer menüüs join peale). Vaikimisi on server pandud kuulama porti 1234. Kui on mingi väga mõjuv põhjus seda muuta mingi muu pordi peale, siis on seda võimalik teha exe failiga samas kataloogis oleva options.xml faili muutmisega (fail tekib peale esimest mängu käivitamist), täpsemalt kirjutades sinna käsitsi uue kuulatava pordi numbri, kuid see pole soovitatav, kuna uus sisestatud port võb minna konflikti teiste arvutites olevate programmidega. Kui õnnestus ühenduse loomine, tuleb ette nimesisestuse võimalus, vastasel juhul veateade. Sama stsenaarium toimib ka üle interneti mängides, kuid lisaks sellele peab serveri loonud mängija oma ruuteris tegema lahti vastava pordi (1234 või mingi muu, kui olete xml failis seadeid muutnud).
On võimalik multiplayerit testida ka ühe arvutiga, pannes käima kaks mängu akent ja ühega teinud serveri ning teisega ühendunud. Sellisel juhul on ühendumiseks vajaminev ip aadress 127.0.0.1 , ning port 1234 kui seda muudetud pole.
Multiplayerit on võimalik testida ka ühe arvutiga pannes käima kaks mängu, ühega tuleb teha server ning teisega ühenduda. Sellisel juhul on ip aadress 127.0.0.1, ning port 1234 kui seda muudetud pole.


Mängus on näha küll vastase hävitatud ridade arvu ja vastase skoori, kuid mäng käib selle peale, kes püsib kauem elus. Et tingimused oled võrdsed ja põnevus säiliks, siis muutub level suuremaks mõlemal vastasel samaaegselt ja kui sa oled hävitanud ära 4 üksikut rida, siis tekib vastasele alla juurde üks( 25% minu hävitatud ridadest ) natuke rohkem kui pooleldi täidetud rida. Hävitades aga ära korraga 4 rida tekib vastasele 4 rida ( 100% minu hävitatud ridadest ), 2 ja 3 hävitatud rea vastav protsent jääb nende vahele, 2 puhul muidugi on see väiksem kui 3 puhul.
Mängus on näha küll vastase hävitatud ridade arvu ja vastase skoori, kuid mäng käib selle peale, kes püsib kauem elus. Et tingimused oleks võrdsed ja põnevus säiliks, siis muutub level suuremaks mõlemal vastasel samaaegselt ja kui sa oled hävitanud ära 4 üksikut rida, siis tekib vastasele alla juurde üks (25% minu hävitatud ridadest) natuke rohkem kui pooleldi täidetud rida. Hävitades aga ära korraga 4 rida tekib vastasele 4 rida (100% minu hävitatud ridadest), 2 ja 3 hävitatud rea vastav protsent jääb nende vahele, 2 puhul muidugi on see väiksem kui 3 puhul.


=Blogi=
=Anti-cheat=
Kuna paljudes mängudes on võimalik teha sohki muutes hex väärtuseid, siis seda oli ka meie tetrises. Lihtsalt otsides mõne suvalise hex editoriga enda skoori väärtuse, muutes seda ja pärast salvestades oli võimalik teha ülisuuri tulemusi. Seda ka multiplayeris (kuigi seal mõte siiski selles, kes kauem "elus" püsib, peaks ikkagi mäng olema võrdne). Seetõttu lisasime väikse funktsiooni, mis kontrollib kogu aeg, kas skoor ei ole muutunud järsult. Kui seda on muudetud, siis muutub skoor automaatselt nulliks ning mängija nimeks tuleb IAMACHEATER (seda on võimalik muuta). Asi on algeline, kuid esimese hooga petab ära küll.
 
=Juhtimine=
 
===Windows===
Nool üles: pöörab klotsi kella suunas<br>
Nool alla: liigutab klotsi kiiremini alla<br>
Nool vasakule: liigutab klotsi vasakule<br>
Nool paremale: liigutab klotsi paremale<br>
Space: kukutab klotsi kohe täitsa alla<br>
Escape: paus
 
===Xbox===
Y: pöörab klotsi kella suunas<br>
A: liigutab klotsi kiiremini alla<br>
X: liigutab klotsi vasakule<br>
B: liigutab klotsi paremale<br>
Left shoulder: paus<br>
Right shoulder: menüüs valikute tegemiseks; mängus kukutab klotsi kohe täitsa alla<br>
<br>
Nime sisestamine:<br>
Y: muudab viimast tähte edasi (a-z)<br>
A: muudab viimast tähte tagasi (z-a)<br>
X: kustutab viimase tähe<br>
B: saab sisestada järgmise tähe
 
=Team foundation server ja source code=
 
Mängu arendus toimus kasutades codeplexi serverit, projekti arenduse ajalugu ja muu info on kättesaadav järgenevalt aadresilt: http://csharptetris.codeplex.com/
 
Source koodi saab alla tõmmata: http://csharptetris.codeplex.com/releases/54521/download/160208
 
Mängu saab installeerida järgnevalt aadresilt: http://enos.itcollege.ee/~rruga/csharp/ ja http://enos.itcollege.ee/~rruga/csharp/Tetris.zip.
 
Kui tõmmata zip fail, on vaja installida ka [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=en Microsoft .NET Framework 4] ja [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a88c6dec-aeae-42cd-a108-d35c013c3b97 Microsoft XNA Framework Redistributable 4.0]
 
(Sellel lehel vajutage launch, kui kõik nõuded on teie arvutil täidetud, siis installeeritakse mäng arvutisse. Start menüüst leiate ikooni kust rakendus käivitada)
 
=Klassid=
===Mängus kasutatavad klassid===
 
{| border="1"
! scope="col" | Klass
! scope="col" | Kirjeldus/Kommentaar
|-
! scope="row" | Game1
| Põhiklass, kus toimub kogu tegevuse juhtimine
|-
! scope="row" | Highscore
| Kõik, mis on seotud top skoori salvestamise ja hetke top10 kättesaamisega
|-
! scope="row" | Kasutajaliides
| Optionsite xml loomine ja seadete muutmine
|-
! scope="row" | Klotsid
| Klotside loomise ja liigutamsega seotud loogika
|-
! scope="row" | Krypteerimine 
| Top skoori tulemuste krüpteerimine
|-
! scope="row" | Menu 
| Menüüga seotud loogika: menüüd joonistamine, hetke mänguoleku meeleshoidmine jne
|-
! scope="row" | Mootor 
| Uue mängu loomine ja seadete sisselugemine
|-
! scope="row" | Multiplayer 
| Kogu multiplayeriga seotud loogika
|-
! scope="row" | Program 
| Rakenduse käivitamine
|}
 
=Logi=


===23.September===
===23.September===
Line 69: Line 151:


===7.Oktoober===
===7.Oktoober===
*Uus kujundus Jarko ja Indreku poolt.
*Uus kujundus Jarko ja Indreku poolt
*Klotsidel fikseeritud värvid


[[File:progressProjectT.png|thumb|none|Uus Project T kasutajaliides]]
[[File:progressProjectT.png|thumb|none|Uus Project T kasutajaliides]]
Line 101: Line 184:
===23.Oktoober===
===23.Oktoober===
*Multiplayer töötab nii nagu peab
*Multiplayer töötab nii nagu peab
===24.Oktoober===
*Mäng on valmis

Latest revision as of 17:45, 28 October 2010

Üldist

Mäng on sarnane tuntud klassikalise tetrisega, on olemas erinevat värvi klotsid, erinevad levelid, top skoor jne. Lisaks selle on võimalus mängu seadetest sisse lülitada nn cheatline, ehk on näha kuhu ritta klots kukub, samuti on olemas multiplayer tugi kas kohalikus võrgus või üle interneti mängimiseks. On olemas ka xboxi tugi, niiet saab mängida nii pc kui xboxi peal.

Meeskond

  • Rauno Rüga
  • Jarko Kaskmaa
  • Taivo Türnpu
  • Gert Glükmann
  • Indrek Kõue

Single player

Pilt käivast single player mängust

Traditsiooniline tetris uues kuues, cheatline, palju optioneid.
Arvuti genereerib mängijale suvalisi tükke (erinevaid on kokku 7) ning mängija peab need paigutama ruudustiku alla äärde nii, et saaks kokku ühe terve rea. Kui rida koos, siis rida hävineb ning mängija saab punkte.
Korraga 1 hävitatud rea eest 100 punkti
2 hävitatud rea eest 225 punkti
3 hävitatud rea eest 375 punkti
4 hävitatud rea eest 550 punkti
Punkte saab ka selle eest, kui klots alla liigub. Iga samm, mis klots alla liigub, annab 1 punkti.

Olemas on ka Top10 punktitabel, kus kuvatakse 10 suurima skooriga nime ja nende skoor. Top10 tabel ei sõltu seadetest, see tähendab, et olenemata seadetest lähevad arvesse kõik mängud.

Multiplayer

Pilt käivast multiplayer mängust

Mängu on võimalik mängida ka multiplayeris. Kas siis kohalikus võrgus ühendatud arvutite vahel või üle interneti. Kohalikus võrgus mängimiseks tuleb mõlemal mängijal lülitada networking sisse. Peale seda peab üks mängija looma serveri ehk vajutama mängus "create" peale (leiab multiplayer menüüst). Et teine ühenduda saaks, peab ta sisestama vastase ip ja pordi kujul ip:port (vastav koht tekib, kui vajutada multiplayer menüüs join peale). Vaikimisi on server pandud kuulama porti 1234. Kui on mingi väga mõjuv põhjus seda muuta mingi muu pordi peale, siis on seda võimalik teha exe failiga samas kataloogis oleva options.xml faili muutmisega (fail tekib peale esimest mängu käivitamist), täpsemalt kirjutades sinna käsitsi uue kuulatava pordi numbri, kuid see pole soovitatav, kuna uus sisestatud port võb minna konflikti teiste arvutites olevate programmidega. Kui õnnestus ühenduse loomine, tuleb ette nimesisestuse võimalus, vastasel juhul veateade. Sama stsenaarium toimib ka üle interneti mängides, kuid lisaks sellele peab serveri loonud mängija oma ruuteris tegema lahti vastava pordi (1234 või mingi muu, kui olete xml failis seadeid muutnud). Multiplayerit on võimalik testida ka ühe arvutiga pannes käima kaks mängu, ühega tuleb teha server ning teisega ühenduda. Sellisel juhul on ip aadress 127.0.0.1, ning port 1234 kui seda muudetud pole.

Mängus on näha küll vastase hävitatud ridade arvu ja vastase skoori, kuid mäng käib selle peale, kes püsib kauem elus. Et tingimused oleks võrdsed ja põnevus säiliks, siis muutub level suuremaks mõlemal vastasel samaaegselt ja kui sa oled hävitanud ära 4 üksikut rida, siis tekib vastasele alla juurde üks (25% minu hävitatud ridadest) natuke rohkem kui pooleldi täidetud rida. Hävitades aga ära korraga 4 rida tekib vastasele 4 rida (100% minu hävitatud ridadest), 2 ja 3 hävitatud rea vastav protsent jääb nende vahele, 2 puhul muidugi on see väiksem kui 3 puhul.

Anti-cheat

Kuna paljudes mängudes on võimalik teha sohki muutes hex väärtuseid, siis seda oli ka meie tetrises. Lihtsalt otsides mõne suvalise hex editoriga enda skoori väärtuse, muutes seda ja pärast salvestades oli võimalik teha ülisuuri tulemusi. Seda ka multiplayeris (kuigi seal mõte siiski selles, kes kauem "elus" püsib, peaks ikkagi mäng olema võrdne). Seetõttu lisasime väikse funktsiooni, mis kontrollib kogu aeg, kas skoor ei ole muutunud järsult. Kui seda on muudetud, siis muutub skoor automaatselt nulliks ning mängija nimeks tuleb IAMACHEATER (seda on võimalik muuta). Asi on algeline, kuid esimese hooga petab ära küll.

Juhtimine

Windows

Nool üles: pöörab klotsi kella suunas
Nool alla: liigutab klotsi kiiremini alla
Nool vasakule: liigutab klotsi vasakule
Nool paremale: liigutab klotsi paremale
Space: kukutab klotsi kohe täitsa alla
Escape: paus

Xbox

Y: pöörab klotsi kella suunas
A: liigutab klotsi kiiremini alla
X: liigutab klotsi vasakule
B: liigutab klotsi paremale
Left shoulder: paus
Right shoulder: menüüs valikute tegemiseks; mängus kukutab klotsi kohe täitsa alla

Nime sisestamine:
Y: muudab viimast tähte edasi (a-z)
A: muudab viimast tähte tagasi (z-a)
X: kustutab viimase tähe
B: saab sisestada järgmise tähe

Team foundation server ja source code

Mängu arendus toimus kasutades codeplexi serverit, projekti arenduse ajalugu ja muu info on kättesaadav järgenevalt aadresilt: http://csharptetris.codeplex.com/

Source koodi saab alla tõmmata: http://csharptetris.codeplex.com/releases/54521/download/160208

Mängu saab installeerida järgnevalt aadresilt: http://enos.itcollege.ee/~rruga/csharp/ ja http://enos.itcollege.ee/~rruga/csharp/Tetris.zip.

Kui tõmmata zip fail, on vaja installida ka Microsoft .NET Framework 4 ja Microsoft XNA Framework Redistributable 4.0

(Sellel lehel vajutage launch, kui kõik nõuded on teie arvutil täidetud, siis installeeritakse mäng arvutisse. Start menüüst leiate ikooni kust rakendus käivitada)

Klassid

Mängus kasutatavad klassid

Klass Kirjeldus/Kommentaar
Game1 Põhiklass, kus toimub kogu tegevuse juhtimine
Highscore Kõik, mis on seotud top skoori salvestamise ja hetke top10 kättesaamisega
Kasutajaliides Optionsite xml loomine ja seadete muutmine
Klotsid Klotside loomise ja liigutamsega seotud loogika
Krypteerimine Top skoori tulemuste krüpteerimine
Menu Menüüga seotud loogika: menüüd joonistamine, hetke mänguoleku meeleshoidmine jne
Mootor Uue mängu loomine ja seadete sisselugemine
Multiplayer Kogu multiplayeriga seotud loogika
Program Rakenduse käivitamine

Logi

23.September

  • Loodud codeplexi projekt mängu versioonimiseks.
  • Otsutatud, et mänguks tuleb Tetris.
  • Loodud meeskond, algselt liikmeteks:
    • Rauno Rüga
    • Jarko Kaskmaa
    • Taivo Türnpu
    • Gert Glükmann

24.September

  • Mängu algne versioon ülesse laetud, liikmed tegid kasutajakontod codeplexi.

26.September

  • klotsid tulevad randomiga
  • esialgne versioon olemas, täitsa mängitav, puuduvad lisad

27.September

  • Indrek Kõue liitus meeskonnaga.
  • newgame() feature
  • hiscore tegemine

28.September

  • mõte panna muusika ja SFX helid
  • meeskonna nimeks C-Team
  • levelite tegemine
  • mõte teha multiplayerit

29.September

  • kõvemad optionsid
  • suured vaidlused roosa cheatLine üle, mis siiski lõpuks jääb

1.Oktoober

  • menüü olemas

4.Oktoober

  • helid ja bling-bling asjad olemas
  • kerge multiplayeri katsetamine

5.Oktoober

  • koodi korrastamine
  • kuna ametliku networking API järgi tehtud multiplayerit ei saaks üle interneti mängida, siis valmis tehtud asjad kustutati maha ja alustati uuesti otsast peale kasutades ühendamisel socketeid

6.Oktoober

  • dokumentatsiooni tegemine

7.Oktoober

  • Uus kujundus Jarko ja Indreku poolt
  • Klotsidel fikseeritud värvid
Uus Project T kasutajaliides

8.Oktoober

  • Credits
  • Mängusisene helide lülitamine
  • Multiplayeris näeb vastase liikuvaid blokke

9.Oktoober

  • Kood rohkem objektorienteeritumaks

10.Oktoober

  • Menüü animatsiooni update

12.Oktoober

  • Indrek hakkab XML faili andmeid krüpteerima.

18.Oktoober

  • Multiplayeris punishment line - kui sul on 4 rida hävitatud siis tekib vastasele 1 rida juurde

20.Oktoober

  • Alati mängu sulgedes lähevad kõik mänguga seotud exed kinni

22.Oktoober

  • Xboxi tugi
  • Anticheat
  • Multiplayeri arendamine
  • Multiplayeris näeb ka vastase statse

23.Oktoober

  • Multiplayer töötab nii nagu peab

24.Oktoober

  • Mäng on valmis