4. Rendszertervezés¶
4.1 Bevezetés¶
Ez a dokumentum a “Túlélés a Szocializmusban” című túlélő-szimulációs játék rendszertervezését tartalmazza. A cél, hogy bemutassa a játék technikai architektúráját, moduláris felépítését, adatkezelési folyamatait, komponenseit és azok kapcsolatait.
4.2 Áttekintés¶
- Játékmotor: Godot Engine (verzió: 4.x)
- Célplatform: PC (Windows/Linux)
- Grafikai stílus: 2D (többségében), 3D low-poly az autószerelő minijátékhoz
- Fejlesztői eszközök: Blender, GitHub, GIMP/Krita, VS Code
- Adatformátumok: JSON, CSV (események, munkák, párbeszédek), PNG/JPG (grafikák), WAV/OGG (hang)
4.3 Rendszerarchitektúra¶
4.3.1 Moduláris Felépítés¶
+----------------------+
| Főmenü / UI |
+----------------------+
|
v
+----------------------+
| Játékmenet Engine |
| - Időkezelés |
| - Eseményrendszer |
| - Döntéslogika |
+----------------------+
|
v
+----------------------+ +----------------------+
| Munkamodulok | <--> | Karakterstátusz |
| - Autószerelő (3D) | | - Éhség, stressz |
| - Bolti eladó (2D) | | - Reputáció, függőség |
+----------------------+ +----------------------+
|
v
+----------------------+
| Családrendszer |
| - Éhség, események |
| - Szükségletek |
+----------------------+
4.4 Főbb Modulok¶
4.4.1 Játékmenet Vezérlő¶
- Nap-idő rendszer (reggel 8 – este 8 óra ciklus)
- Döntési pontok kezelése
- Napi események triggerelése
- Mentési/pályaállapot kezelése
4.4.2 Karakterstátusz Rendszer¶
- Játékos adatok:
- Éhség (0–100)
- Stressz (0–100)
- Alkoholfüggőség (0–100)
- Reputáció (pozitív/negatív skála)
- Hatások különböző tevékenységekből és eseményekből
- Állapotváltozás logikája
4.4.3 Munkahelyek¶
- Autószerelő (3D):
- Jármű azonosítás, alkatrészcserék minijáték formában
- 3D interakciók (alkatrészkijelölés, csavarozás, időalapú hibák)
- Bolti eladó (2D):
- Vásárlók kiszolgálása, készletkezelés, döntések (visszaadás, ellopás stb.)
4.4.4 Eseményrendszer¶
- Véletlenszerű és scriptelt események
- JSON/CSV alapú eseménytáblázat
- Eseménytípusok:
- Morális döntések
- Hatósági ellenőrzés
- Betegségek
- Sztrájkok, leállások
4.4.5 Családrendszer¶
- Minden családtaghoz külön éhség- és egészségérték tartozik
- Reakciók eseményekre (pl. gyerek megbetegedése)
- Cél: a család életben tartása
4.5 Adatmodellek¶
4.5.1 Játékos.json¶
{
"player": {
"name": "Piotr",
"stats": {
"hunger": 0,
"stress": 0,
"alcohol": 0,
"reputation": 50,
"money": 100
},
"inventory": {
"items": {
"bread": 2,
"medicine": 1
}
},
"family": {
"members": 3,
"hunger_levels": [0, 1, 2]
},
"day": 1
}
}
4.5.2 Esemény.csv¶
id,típus,leírás,opció1,opció2,következmény1,következmény2
E001,Hatósági ellenőrzés,"Megérkezik az ÁVÓ...","Kifizeted a bírságot","Tagadsz", "-100 pénz", "Reputáció -30"
4.5.3 Adatmodellek véglegesítése és funkcionális modell¶
Az alábbi adatmodellek a játék legfontosabb logikai egységeit és állapotait reprezentálják. Ezek JSON-struktúraként vagy osztályszinten is implementálhatók a Godot játékmotorban (GDScript / C#).
{
"name": "string",
"hunger": 0.0,
"stress": 0.0,
"reputation": 0.0,
"alcohol_addiction": 0.0,
"money": 0,
"inventory": [],
"job": "string",
"family": {
"members": 3,
"hunger_levels": [0.2, 0.3, 0.1]
},
"day": 1
}
{
"job_id": "string",
"name": "Autószerelő",
"mechanics": "3D minijáték",
"reward": 150,
"stress_gain": 0.2,
"reputation_effect": 0.05,
"corruption_opportunity": true
}
{
"event_id": "string",
"description": "Hatósági ellenőrzés",
"type": "morális / gazdasági / egészségi",
"consequences": {
"reputation": -0.1,
"money": -50,
"stress": +0.3
}
}
{
"item_id": "string",
"name": "Konzerv",
"type": "food",
"hunger_restore": 0.3,
"value": 50,
"tradable": true
}
A játék fő funkcióit az alábbi modulokra lehet bontani: Statuszkezelő modul – A játékos és családtagjai állapotát (éhség, stressz, addikció) kezeli és frissíti napi szinten. Eseménymotor – Véletlenszerű és szkriptelt események kezelése a nap végén, különféle következményekkel. Munkarendszer – Foglalkozások logikája, teljesítmény, stressz, pénzkereset és korrupciós lehetőségek számítása…
Felhasználói folyamatok (User Flows): a játékos belép a főmenübe, új játékot indít vagy mentést tölt be. Napi szinten tevékenységeket választ: munka, család, bolt, piálás stb. A nap végén történik az állapotfrissítés, eseménygenerálás és statisztikák frissítése. A játék különböző módokon érhet véget: börtön, halál, külföldre szökés, teljes rendszer túlélése stb.
4.6 Felhasználói Interfész (UI)¶
4.6.1 Képernyők¶
- Főmenü
- Munkaválasztó térkép
- Munkafelület (autószerelő / bolti eladó)
- Karakterstátusz panel
- Családstátusz panel
- Döntési esemény képernyő
- Játék vége képernyő (pontszám, statisztika, befejezés típusa)
4.6.2 UI Funkciók¶
- Egérrel történő navigáció
- Tooltip rendszer (státuszleírások)
- Felugró eseménydobozok, gombos választási lehetőségekkel
4.7 Mentési és Betöltési Rendszer¶
- A játékállás mentése JSON formátumban történik.
- Mentés tartalmazza: játékos statisztikái, inventory, család állapota, nap száma, események.
- Mentés:
savegame.json
auser://
könyvtárban. - Betöltés: adatok visszaállítása a
Stats
ésInventory
modulokból. - Hibakezelés: ha fájl sérült vagy hiányzik, új játék indul.
4.8 Funkcionális Követelmények¶
Azonosító | Leírás |
---|---|
F01 | A játékos kiválaszthatja napi munkáját |
F02 | A státuszértékek folyamatosan változnak |
F03 | Események jelennek meg, amik döntést követelnek |
F04 | A család éhségértékeit is kezelni kell |
F05 | A játék többféle befejezéssel zárulhat |
F06 | A döntések hatással vannak a karakterre és világra |
4.9 Nem-funkcionális Követelmények¶
Azonosító | Leírás |
---|---|
NF01 | A játék 30 FPS mellett is zökkenőmentesen fusson |
NF02 | Kis memóriahasználat és alacsony gépigény |
NF03 | Könnyen lokalizálható szövegfájlok |
NF04 | A rendszer modulárisan bővíthető legyen új munkákkal és eseményekkel |
4.10 Tesztelési Stratégia¶
- Egységtesztek: státuszfrissítések, eseménylogika
- Integrációs tesztek: UI és játékállapot szinkronizáció
- Felhasználói tesztelés: különböző végkimenetelek próbája
- Teljesítményteszt: régebbi gépeken való futás
4.11 Verziókövetés és Fejlesztési Módszertan¶
- GitHub: privát repó, főág és fejlesztői ágak
- Branch Policy: feature branch-ek, pull request, review kötelező
- Issue Tracking: GitHub Issues / Projects
- Dokumentáció: Markdown formátumban, repóban tárolva
4.12 Biztonság és Mentési Mechanizmusok¶
- Mentés titkosítás nem szükséges, de backup javasolt
- Hibakezelés: exception-logging, fallback értékek
- Hiba esetén automatikus visszatérés az utolsó stabil mentéshez
4.13 Jövőbeli Bővítések¶
- Harmadik munkalehetőség (irodai adminisztrátor)
- Statisztikai és naplózási rendszer
- Steam integráció (achievementek)
- Android/iOS port
- Multiplayer támogatás (későbbi verzióban)
4.14 Zárszó¶
A “Túlélés a Szocializmusban” nem csupán egy játék, hanem társadalmi és etikai reflexió is. A rendszerterv célja, hogy egy jól strukturált, modulárisan bővíthető és hosszú távon fenntartható alapot biztosítson ehhez a különleges játéktípushoz.