Kalandjáték dokumentáció
Sándor János
Kalandjáték dokumentáció Követelmény feltárás 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
Kalandjáték dokumentáció
Sándor János
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
Kalandjáték dokumentáció
Sándor János
Előfeltétel: Utófeltétel:
3
Kalandjáték dokumentáció
Sándor János
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
Kalandjáték dokumentáció
Sándor János
Osztálymodell Játékmenet Sztereotípia: összefoglaló egysége az aktuális játéknak: konténer Ős: 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 Sztereotípia: vezérlő Ős: Példány: [absztrakt] Feladat: a különböző felhasználói inputok kezelése
Karakter Sztereotípia: információhordozó Ős: 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 Ős: Példány: Feladat: különböző felszedhető tárgyak listázása
Esemény Sztereotípia: vezérlő, határ Ős: Példány: [absztrakt]
5
Kalandjáték dokumentáció
Sándor János
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 Ős: 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ó Ős: Példány: [absztrakt] Feladat: a játéktér elemeinek osztályát képviseli
Helyszínváltás Sztereotípia: vezérlő Ő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 Sztereotípia: vezérlő Ő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 Sztereotípia: vezérlő Ő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
Kalandjáték dokumentáció
Sándor János
Sztereotípia: vezérlő Ő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
Kalandjáték dokumentáció
Sándor János
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ó Sztereotípia: vezérlő Ő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
Kalandjáték dokumentáció
Sándor János
Adatbázis terv
Dinamikus működés
9
Kalandjáték dokumentáció
Sándor János
Felhasználói-felület modell
Részletes programterv
10