Meeskond "C-Team": Difference between revisions
No edit summary |
|||
(49 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 | ||
= | =Single player= | ||
[[File:ProjectT.png|thumb|150px|Pilt käivast single player mängust]] | |||
Traditsiooniline tetris uues kuues, cheatline, palju optioneid.<br> | |||
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> | |||
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= | ||
[[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 ü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<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 56: | Line 145: | ||
===5.Oktoober=== | ===5.Oktoober=== | ||
*koodi korrastamine | *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=== | ===6.Oktoober=== | ||
Line 62: | 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 87: | Line 177: | ||
===22.Oktoober=== | ===22.Oktoober=== | ||
*Xboxi tugi | |||
*Anticheat | *Anticheat | ||
*Multiplayeri arendamine | *Multiplayeri arendamine | ||
*Multiplayeris näeb ka vastase statse | *Multiplayeris näeb ka vastase statse | ||
===23.Oktoober=== | |||
*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
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
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
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