Skip to content

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 a user:// könyvtárban.
  • Betöltés: adatok visszaállítása a Stats és Inventory 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.