|
Projekt-web
Ez az oldal Reinchaos projekt fejlesztéséhez kapcsolódó információkat gyűjti össze.
Elsősorban a Pécsi Tudományegyetem azon hallgatóinak szól, akik részt vesznek a Java projekt c. kurzuson
illetve azoknak akik csatlakoztak vagy éppen csatlakozni szeretnének a fejlesztéshez.
Módosítások
Ez az oldal első verziója.
Hivatkozások, címek
- Ha bármilyen kérdésed van, nyugodtan írd meg nekem:
- Szárnyasi Tamás < p u a q (-a-t-) w 5 . h u >.
- Kurzus levelezőlista címe:
- reinchaos - course (-a-t-) lists . sourceforge . net
- A levelezőlistára itt lehet feliratkozni:
- https://lists.sourceforge.net/lists/listinfo/reinchaos-course
- Projekt SourceForge-os oldala:
- http://sourceforge.net/projects/reinchaos/
- SVN repository elérése:
- https://reinchaos.svn.sourceforge.net/svnroot/reinchaos
- Olvasnivaló a SourceForge.net oldalról:
- http://sourceforge.net/about
- http://sourceforge.net/apps/trac/sourceforge/wiki/WikiStart
- jUnit honlapja:
- http://www.junit.org/
- ANT manuál
- http://ant.apache.org/manual/
- Ha valaki tud jó SVN tutor. oldalt ossza meg velünk a címét!
Java projekt c. kurzussal kapcsolatos tudnivalók
A Java projekt c. kurzus (TTMATV11) keretein belül közösen dolgozunk egy Java alkalmazáson.
Ezen alkalmazás felosztható részfeladatokra. A résztvevőknek ezek közül kell választania legalább egyet és önállóan dolgozni rajta.
Egy feladatot többen is elvállalhatnak.
A feladategyeztetés e-mail-ben történik, ezzel kapcsolatban a levelezőlistára vagy fentebb ovasható címemre lehet írni.
A projekthez egyelőre nem készül külön specifikáció, ezt a célt a projekt-web látja el.
A fejlesztéssel kapcsolatos aktualitásokat és a feladatok listáját a "Fejlesztés" bekezdés alatt találod.
Kapcsolattartás
Minden hétfőn 14:00 és 15:30 között tartunk egy megbeszélést a fejlesztéssel kapcsolatban a PTE TTK E/428-as teremben.
Megbeszélésekre nem kötelező bejárni.
Ezenkívül a levelezőlistán tartjuk a kapcsolatot (esetleg MSN, Skype és hasonlók is szóba jöhetnek).
Workspace
A projekt-web és a projekt többi részének a SourceForge.net biztosítja a tárhelyet.
A SourceForge.net jelenleg a legnagyobb nyílt forráskódú software gyűjtemény.
Tárhelyet biztosít készülő, nyílt kódú projekteknek és különböző szolgáltatásokkal támogatja a fejlesztést.
A közös munkához verziókövető rendszert (azok közül is az SVN-t) használunk, amit szintén a SourceForge.net szolgáltat.
Aki még nem használt ilyet, nézzen utána a dolognak.
Ha valaki nem ért valamit, gondjai akadnak inkább kérdezzen, mielőtt felforgatja az repository-t.
Követelmények
Mindenki a projektben való részvételért fog jegyet kapni.
A feladatok bizonyos mértékig specifikálva vannak (ez időközben megváltozhat), amihez igazodni kell.
Ha valaki csinál valami értékelhetőt, megkapja a megfelelő érdemjegyet függetlenül attól, hogy bejárt-e a megbeszélésekre vagy sem.
? Ha egy feladaton többen dolgoznak, az érdemjegy a közös munka
A projekten szorgalmi időszak alatt dolgozunk, ezt a munkát fogom leosztályozni.
Nem fog jegyet kapni az aki egyáltalán nem vesz részt a projektben, szándékosan akadályozza a munkát,
meg sem próbálja teljesíteni a feladatát vagy hanyag módon teljesíti azt.
Reinchaos áttekintés
Eredeti elképzelés: olya java on-line alkalmazás ami mindenféle platform alól elérhető.
Az alkalmazásnak a lehető legkevesebb részét kelljen átírni.
Szóval a pc és a mobiltelefon ugyan azt a játékot játszod, csak a felhasználói felület
Ebből kifolyólag, fontos szembont, hogy ne kerüljön hátrányba az aki gyengébb hardware-ről nyomul
Arra gondoltunk, hogy egy on-line körökre osztott játék megfelel ezeknek az elvárásoknak.
Innentől meg már csak egy ugrás a Reinchaos.
Jellemzők
- Masszív on-line játék:
-
A játék csak on-line használható. Minden játékos egy "közös világba" csatlakozik ahol a játék eseményei zajlanak.
Amikor be mikor a játékos kilép, a játékállás egy adatbázisba kerül.
Mikor legközelebb bejelentkezik, onnan folytatja a játékot, ahol abbahagyta.
- Platformfüggetlen:
-
Kihasználva a Java nyújtotta lehetőségeket, az alkalmazás magja mindenhol ugyanaz,
kizárólag a felhasználói felületet kell megírni különböző platformok alá.
- Ne kerüljön előnybe az aki hardware alól játszik
- Cyberpunk jelleg:
-
Szakítva a hagyományokkal, nem egy alternatív középkorba csöppen a játékos.
birodalom és lázadók mint két szemben álló fél
a játékos bárkihez csatlakozhat
- Körökre osztott stratégia játék szerepjáték elemekkel:
-
játékmenetről kicsit
Játékmenet
térképes
csatás
inventorys
Egységek és csapatok
a játék során minden játékos egy csapatot fog irányítani (party)
egy csapat 5+1 egységből állhat maximum
1 vezér és 5 másik egység
vigyázni kell a bandavezérre, elvesztése súlyos következményekkel jár
az egységek sokfélék lehetnek
egy csapat véges sok felszerelést vihet magával, annak fvgben, hogy hány tagja van
és azok mennyit bírnak
egységek jellemzői
hp: egység állapota
initiative: meghatározza, ki-mikor lép
méret: normál/óriás
támadás módja: elérhetőt, bármelyiket, mindegyiket
külön felszerelhetőek, zsák?
xp/level: minden egység fejődik
rang?
normál és óriás egységek
Felszerelés
nem lehet végtelen sok dolgot vinni egyszerre
felszerelés: fegyver, pajzs, ammo, stb
minden egység kaphat felszerelést, nem csak a vezér
Csata
csatamenet a klasszikus Disciples játékmenetéből való, mivel elég egyszerű, de ötletes megoldások vannak benne
fontos szempont lehet, hogy a játékmenet legyen egyszerű (a sokféle paltf miatt)
Disciples csaták, ebből érdemes kiindulni, mert ez elég jól működhet a mi esetünkben is
felállás
csak 6+6 játékos tud egyszerre megküzdeni
játékosok egymás után lépnek, egy adott sorrendben amit az egységek gyorsasága határoz meg
védekezés, támadás, gyógyítás, eszköz használat
találta esélye
támadás típusai
visszavonulás
Disciples csaták átszervezése
Ami kimaradt
még nincs minden letisztázva
Fejlesztés
Egyelőre a projektnek csak bizonyos részein dolgozunk, mivel még nem tudtunk mindent letisztázni.
A cél az, hogy sikerüljön működőképes, tesztelhető részeket összehozni a projektből,
melyekre később építeni tudunk.
Konvenciók
- * A forrásállományokhoz és egyéb szöveges dokumentumokhoz az UTF-8 karakterkódolás használatos.
- * A fejlesztés során a Java SE JDK 1.6.0 vagy ennél újabb verzióját lehet használni.
- * A forráskódban angol kifejezések használandók, és be kell tartani a Java konvenciókat.
- * Kommenteket lehet magyar nyelven írni. A kommentekhez lehet használni a JavaDoc-os formát.
- * Az SVN commit-hez csatolt üzenet lehetőleg legyen angol nyelvű.
-
* Ügyelj arra hogy jól formázott, olvasható forráskódot tölts fel a repository-ba.
Ha a szerkesztő amivel dolgozol tud kódot formázni, akkor használd bátran ezt a funkciót
(simán egy jeggyel rosszabbat adok annak aki erre nem figyel).
Mivel a játékmenetben nem sikerült teljesen megállapodni, az alábbi feladatokat kéne megoldani:
Feladatok
Keretrendszer (framework)
- Server:
- * kommunikál a klienssel
- * működteti a játékot
- * számontartja a bejelentkezett felhasználókat
- * perzisztencia
- * adatbázisba kerülő adatok ellenőrzése
- * naplózás
- Client:
- * kommunikál a serverrel
- * minden platformon futnia kell ahol van JVM (java ME eszközeit használja?)
- * felületet biztosít az UI-nak a server felá
- Perzisztencia:
- * objektumok állapotát el kell tárolni egy adatbázisban
- * milyen csomagot használjunk a perzisztenciához (java persistence, hybernate, ...)?
- * fontos, hogy megfeleljen az igényeknek, ezen sok múlhat rajta
- Server-client kommunikáció:
- * server cliens közti kommunikáció megoldása
- * utána nézni meglévő megoldásoknak
- * TCP protokollra épül
Játék (Game) megvalósítása
- Egységek:
- * a játékban szereplő egységeknek egy osztályhierarchia kialakítása
- * egységek attribútumai, metódusai, stb.
- * egységek felszerelése
- Felszerelés:
- * a játékban szereplő egységeknek egy osztályhierarchia kialakítása
- * felszerelések kategorizálása
- * felszerelés attribútumai, metódusai, stb.
- Csata:
- * csata menetének és szabályainak implementálása
- * tesztkörnyezet kialakítása
Felhasználói felület (UI)
- Felület fejlesztése különböző platformokra:
-
A felhasználói felületet több platformra is el kell majd készíteni.
Egyéb feladatok
- Tesztesetek készítése:
- Az automatizált teszteléshez a jUnit 4.8.1-es verzióját használjuk.
- Fordítás:
- Egy ember foglakozhat fordítással.
- ANT:
- Projektet leíró ANT állomány karbantartása.
Adódó problémák
- Server-client elosztás problémája:
-
melyik osztály melyik oldalra kerüljön? utána nézni!
- On-line játék problémái:
- login/logout csalás
egy felh. 2 account
tétlen játékos
események szinkronizálása
- Játékmenetből, játékszabályokból eredő problémák:
-
körökre osztott problémák
ki haljon meg probléma
játékosok egymás utána lépnek
játékosok párhuzamosan lépnek (mi van a csatákkal pl?)
körökre osztott/valósidejű komb (platform probléma)
erre kell egy jó megoldás: valami kompromisszum vagy ilyesmi
események szinkronizálása
|