Követelmény feltárás Kalandjáték dokumentáció A program grafikus interfészen keresztül kommunikáljon a felhasználóval. Egyszerű, érthető irányítási funkciók segítsék a játékost. Meg kell teremteni az egyensúlyt a játék által nyújtott logikai fejtörők nehézségi szintjében. A grafikai megvalósítás ne váljon a játékélmény rovására, legyenek jól látható, elkülönülő objektumok, mégis illeszkedjen a környezetébe. A játék fő motívumát a történet, a cselekmények adják. Egyéb logikai, kalandjáték stílust felvonultató programok által vázolt konvenciókat érdemes megismerni, használni. Célkitűzés, projektindító dokumentum A cél egy lehetőleg egyedi, logikai játék elkészítése. A program rendelkezhet nyílt forráskóddal a későbbiekben. Fejlesztési környezet a Java Standard Edition virtuális gép, ezáltal valamennyi ezt futtatni képes operációs rendszertől független lesz az implementálás. Szakterületi fogalomjegyzék Karakter: a főszereplőt, illetve egyéb szereplőket reprezentáló osztály Háttér: az adott környezet, szín (scene) háttere, annak elemei Egyéb mozgó objektumok: Kattintható objektumok: Kapcsoló: valamilyen eseményt indít el Tárgy: felvehető tárgyak, eszközök Ajtó: egy másik helyszínre átvivő (helyszín változás eseményt kiváltó) objektum Alrejtvény: bizonyos kisebb logikai feladványok Események: Mozgás, mozgatás: adott objektum mozgatása valamilyen pályán, valamilyen sebességgel Helyszín változtatása: a háttér és a hozzá tartozó objektumok megváltoztatása Szöveg kiíratása: monológ szöveg, dialógus 1
Használatieset-modell, funkcionális követelmények A használati eset neve: Játék Leírás: az adott program egy úgynevezett point & click stílusú, logikai számítógépes játék. Ennek a stílusnak a főbb tulajdonságai a következők: a felhasználói interakció az egér kurzorral történik, általában nincs meghatározott határidő egy-egy feladat elvégzéséhez, hosszú gondolkodást is igényelhet, esemény orientált. A megjelenítés külső nézetes, két dimenziós, oldal nézeti, általában statikus hátterű (a háttér nem mozdul meg a karakterrel együtt). A felhasználó a Játék elindulását követően tudja beállítani a játék bizonyos paramétereit ha számára szükséges (nem tetszik neki az alap beállítás). Az elindulást követően létrejönnek a szükséges objektumok, a grafikus felületet szolgáltató ablakon kirajzolódnak a megfelelő helyeken a megfelelő képek. A Játék figyeli a kurzor kattintásának pozícióját és aszerint hoz létre eseményt, amely lehet mozgás, szöveg kiírása vagy a helyszín megváltoztatása. 2
Előfeltétel: Utófeltétel: 3
Szakterületi követelmények Lehetőség szerint a szoftver vonultasson fel valamilyen módon egyéni stílust is, illetve legyen kiemelkedő abban, amiben megegyezik egy már létező csoporttal. Futása legyen hibáktól mentes a lehető legtöbb célplatformon. Nem követelmény a játék logikai és grafikai részének zárolása, lehet nyílt forráskódú. Nem funkcionális követelmények Fejlesztési módszertan: Egységesített Eljárás A fejlesztéshez szükséges hardver: CPU: AMD 3400+, RAM: 2GB, 64MB vagy annál több videómemóriával támogatott grafikus gyorsító, 1280x1024 pixel felbontású kijelző A fejlesztéshez használt szoftverek: Operációs rendszer: Debian 6.0 (Squeeze) x86_64 GNU/Linux alapú operációs rendszer, 3.2.0-0.bpo.3-amd64 kernellel Követelmény elemzés: OpenOffice.org Writer szövegszerkesztővel, dokumentum sablonok használatával CASE eszköz: ArgoUML v0.34 Java fejlesztőeszköz: NetBeans IDE 7.2 A futtatáshoz szükséges operációs rendszer: Tetszőleges operációs rendszer, melyhez létezik JRE 6 futtatókörnyezet A futtatáshoz szükséges hardver: Operációs rendszerek szerint megadva Egyéb követelmények: Intuitív felhasználói felület, könnyű kezelhetőség, egyéni grafikai megjelenés, logikai összetettség Tervezés A program architektúrája 4
Osztálymodell Játékmenet Sztereotípia: összefoglaló egysége az aktuális játéknak: konténer Példány: játék1 Feladat: egyetlen logikai egységbe foglaljon egy játékmenetet, esetlegesen később implementálni lehessen játékos profilokat, pontszámokkal, egyedi mentésekkel, elért eredményekkel input_figyelése Példány: [absztrakt] Feladat: a különböző felhasználói inputok kezelése Karakter Sztereotípia: információhordozó Példány: főszereplő (+ egyéb játékban megjelenő karakterek [npc] adatait tartalmazó objektum is) Feladat: a főszereplőt, vagy más karaktert reprezentál inventory_items <enum> Sztereotípia: egyéb Példány: - Feladat: különböző felszedhető tárgyak listázása Esemény, határ Példány: [absztrakt] 5
Feladat: játékbeli események objektumként történő megvalósítása a könnyebb kezelhetőség érdekében Szoba Sztereotípia: konténer Példány: szoba1, szoba2, szoba3... stb. Feladat: a játékban található különböző helyszínek, játékterek elemeinek gyűjteménye Megjelenő objektumok Sztereotípia: információhordozó Példány: [absztrakt] Feladat: a játéktér elemeinek osztályát képviseli Helyszínváltás Ős: Esemény Példány: pl.: következő_szoba, előző_szoba Feladat: a Játéktér megváltoztatásárért felelős objektum Mozgatás Ős: Esemény Példány: pl.: főszereplő_elmozdul Feladat: az adott játéktéren lévő mozgatható objektumok valamelyikéhez egy új pozíciót rendel Szöveg_kiírása Ős: Esemény Példány: pl.: intro Feladat: adott játékmenethez, történethez hozzátartozó szöveges információ kiíratása Menü_kirajzolása 6
Ős: Esemény Példány: pl.: main, load, save... stb. Feladat: megállítja a játékmenetet, és előhoz egy ablakot, gombokkal Háttérkép Sztereotípia: információhordozó Ős: Megjelenő objektumok Példány: pl.: scene1 Feladat: háttér- és díszítőelemek objektuma Kattintható Sztereotípia: vegyes Ős: Megjelenő objektumok Példány: [absztrakt] Feladat: adott játék(tér) eseményeit elindító objektum Mozgatható Sztereotípia: információhordozó Ős: Megjelenő objektumok Példány: pl.: főszereplő_alak, tolható_szekrény Feladat: megadja a mozgó objektumokat Felszedhető Sztereotípia: információhordozó Ős: Kattintható Példány: pl.: kulcs1, használati_tárgy1, bónusz... stb. Feladat: a játék során megszerezhető dolgok reprezentációja Kapcsoló Sztereotípia: vegyes Ős: Kattintható Példány: pl.: villany, ajtó_nyit, stb. 7
Feladat: csak és kizárólag eseményeket indít el a játékban Alrejtvény Sztereotípia: konténer, vegyes Ős: Kattintható Példány: pl.: 15-ös játék, stb. Feladat: előhoz egy új ablakot, melyben a korábbiaktól eltérő képet kapunk egy logikai rejtvényről Ajtó Ős: Kattintható Példány: pl.: ajto1, ajto2, bejárat, kijárat Feladat: valójában egy speciális kapcsoló, ami helyszínváltoztató eseményt hív meg 8
Adatbázis terv Dinamikus működés 9
Felhasználói-felület modell Részletes programterv 10