Meeskond "Projekt Tank"
Kood
Terve projekt zip formaadis: http://eee.pri.ee/WindowsGame1.zip
Mängu installer http://enos.itcollege.ee/~jkruusma/tankinstaller.zip
Klasside struktuur on kujutatud failis ClassDiagram2.cd
Ülevaade
Intro
Idee on laenatud vanast heast Tanki mängust Battle City. Mäng on läbi aegade säilitanud oma mängitavuse, seda eriti tänu 2 playeri võimalusele ilma milleta mängu ette ei kujutakski. Meie mängu kriteeriumiteks on selle lihtsus ja lõputu mängitavus. Kasutaja saab kohe pulti hüpata ja mängima hakata ilma, et peaks liiga süvenema. KISS - Keep It Simple, Stupid!
Mängu sisu
Aasta on 2069, maailma on järele jäänud kaks viimast leeri - Rohelised ja Punased. Mõlemad võitlevad enda viimaste järel olevate tankidega terve maailma valitsemise üle. Et võita maailm enda kontrolli alla peab võitma kolmel maal. Mõlemal mängijal on igal maal 2 elu. Võitlus käib SURMANI!
Kuidas Mängida
Sõidad kaardi peal ringi tankiga ja proovid teist tanki õhku lasta.
Power Up'id - Ekraanil võib olla korraga 1 kuul või kui oled korjanud D(ouble)-Shoti siis või kaks mürsku korraga lasta. F(ast) Bullet muudab mürsu kiiremaks. Mõlemad power-up'id kestavad 8 sekundit.
Plokid - Adamantiumist plokid on nii tugevad, et need ei lase tanki kui ka mürsku läbi. Vesi on takistuseks vaid Tankile, kuid kuul lendab seal siiski läbi. Mets on strateegidele möeldud, metsas saab kõike teha, aga varjatult.
Nupud
Klaviatuur
F1: Uusmäng
Player One
Nool üles: Tanki Suund üles
Nool alla: Suund alla
Nool vasakule: Suund vasakule
Nool paremale: Suund paremale
Parem Ctrl: Tulistamine
Player Two
W: Tanki Suund üles
S: Suund alla
A: Suund vasakule
D: Suund paremale
F: Tulistamine
Xbox
A: Tulistamine
D-Pad: Liikutab tanki
Vasak pöidlapulk: Liikutab tanki
Projekti algne plaan
- Tank - Juhtimine/Tulistamine, XBoxi tugi
- Level - Plokkide loomine, tüüpide määramine
- AI/Vastased
- Elud
- Punktid
- Menüü
- Visual Studio Team Explorer
Tööjaotus
- Jaan Kruusma - Projekti juht + wiki + levelid
- Siim Kündre - Liikumine, tulistamine, power-up
- Madis Kõosaar - Vastased, Menüü
- Keito Arula - Xbox tugi
Hilisem töö
Plaanitud Lisad
- Power-ups - Elud, parem mürsk, 2 pauku korraga
- Player Vs Player Mode
- Mitu levelit ja lisa objektid - vesi, puud
- Heli
- Vajadusel Graafika/piltide upgrade
- Koodi parandus
- Paljad naised ja tasuta õlu
Tähtajaks valminud projekt
- 2 mängijat
- Xbox puldi tugi
- Tanki elude loendamine, raundide loendamine, võitude loendamine
- Ploki tüübid - mets(saab peitu minna ja ka lasta), vesi(läbi sõita ei saa, aga tulistada saab), kivi(läbi ei tulista ega sõida)
- Kuul/Tank käitub erinevalt vastavalt ploki tüübile
- Power Up - Double Shot ja Fast Bullet
- Levelite parsimine Xmlist
- Erinevad levelid, levelite loomiseks/muutmiseks piisab Xml faili muutmisest.
Arendus võimalused
- AI - Kui graafiteooriat tulevikus rakendada saaks ka vastased ekraanile sibima
- Veel rohkem power-up'e ja leveleid
- Erinvad mängu mode'd
- Highscore - juhul kui vastaseid oleks
- Online mänguvõimalus
Logi
Nov 26
Installeri lisamine
Nov 15
Menüü täiendused.
Nov 9
Peamenüü valmimine.
Okt 28
Uus power-up fastbullet, kuvatakse F punases kastis.
Okt 25
Tähtaeg on saabunud - Shoki teraapia ja hardcore viimasehetke töö!!
Sitt, Sülg, Veri ja Pisarad!
Okt 22
Käib töö ja vile koos ehk mäng läheb aina paremaks. Üldised täiendused ja mõlema mängija käitumise ühtlustamine. Levelite tootmine.
Okt 20
Mängu testimine avatud keskonnas (koolis) Levelite disainimine. Heli lisamine irrKlangi kaudu jäi ära kuna see keeras ülejäänud referencid metsa ja programm jooksis kokku. Xmli parsimine - vastavalt ploki tüübile lisatakse ploki kordinaadid vastavalt tüübile vastavasse arraylisti.
Okt 19
Plokkide info on kantud xmli, millega tegeleb eraldi klass. Puldiga saab nüüd tanki juhtida ja tulistada, kuid joystickiga on veel tegemist. Leveli kuvamine klassis massiiviga osutus pooleldi läbikukkunuks kuna pakub liiga staatilise lahenduse uute levelite loomisele ning arendus käib xmli kallal.
Okt 18
Helide mängimiseks võtsime kasutusele irrklangi (credits to Tanel Liiv), mille abil saab väga lihtsalt heli mängida kus vaja. Hetkel käib sobivate helide otsimine. Lisasime mitmeid uusi klasse.
Okt 17
Player vs Player mode täiustamine.
Okt 14
Lisasime player 2-e HP arvutamise ja elude arvestuse (peale x suremise mängib player 1 üksi edasi) ning levelite disain asub nüüd eraldi klassis. Samuti parendasime tankide liikumist. Team Exploreriga on pidevalt jama, mis tõttu tuleb tihti aega raisata tüütute pisiasjade peale.
Okt 13
Lisatud teise mängija liikumine kuid veel ei tulista. Power-up`i loomine, testimiseks ilmub ekraanile kast(läbisõidetav), mille ajal tank saab lasta kaks kuuli ehk ekraanil võib siis kaks kuuli korraga olla.
Okt 12
Loodi uued klassid koodi paremaks paigutuseks. Draw ning Update meetodi puhastasimine üleliigsetest kontrollidest, mis paigutati uutesse klassidesse.
Okt 11
Teise mängija lisamine, kes küll veel ei liigu, aga kuuli naudib surematuna. Kuuli kontrollide parandamine, kokkupõrgete kontroll teise tankiga. Üldised koodi parandused.
Okt 4
Peale pikka Heiki ahistamist ja piinamist saime enda projekti tööle team exploreriga, et kõigil meeskonna liikmetel on võimalus sama projekti muuta ja ka allalaadida/üleslaadida. Reaalne rühmatöö saab nüüd alata. Wiki täiendused.
Sept 30
Toimus üldkoosolek, mille käigus räägiti kood kõigile üle ning lisati vajalikud kommentaarid. Jagati uued töö ülesanded. Proovisime kasutusele võtta erinevaid tiimi projekti haldamisvahendeid ning lõpuks peatusime Codeplexi peal ja lõime sinna endale konto, mida Visual Studio Team Exploreriga kasutada saaks. Esialgu oli seda keeruline tööle saada... Wiki@itcollege alustamine.
Sept 27
Tank sõidab neljas suunas, diagonaalis pole ette nähtud. Kuul lendab otse ja plahvatab vinge pauguga. Esimeste bugide eemaldamine, et tank ei sõidaks seina sisse.
Sept 23
Tanki liikumine tausta peal.
Sept 22
XNA algetega tutvumine, tausta ja tanki valik, keyboard - liikumine.
Tanki tekstuur ei ole meie enda tehtud (see on mingi tanki blueprintist välja lõigatud).
Sept 16
Meeskonna leidmine/tutvumine. Mängu idee tuvustus/arutelu. Esialgse wikispace loomine, pastebini tutvustus, mis hiljem osutus mitte vajalikuks.