Files
K-C-Multiplayer/README.md
2025-12-13 19:00:55 +01:00

71 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# KCM (Kingdoms and Castles Multiplayer)
Ez a repó egy *Kingdoms and Castles* multiplayer mod forrása. A mod Steam lobby + Riptide alapú hálózattal próbálja a világot és a játékosok akcióit több kliens között szinkronban tartani.
Ha a `output.txt` logban `Compilation failed` szerepel, akkor a mod **nem töltődött be**, és semmi nem fog szinkronizálódni (ilyenkor tipikusan C# szintaxis / runtime-kompatibilitási hiba van a forrásban).
## Mit szinkronizál a mod? (jelenlegi állapot)
**Lobby / kapcsolat**
- Játékos csatlakozás/leválás, player lista, ready állapot.
- Szerver beállítások (név, max players, seed, world opciók).
- Chat és rendszerüzenetek.
**Világ indítás**
- World seed szétküldése és world generálás a klienseken.
- (Beállítástól függően) keep elhelyezés csomagból.
**Gameplay alap**
- Épület lerakás események (alap meta: `uniqueName`, `guid`, pozíció/rotáció).
- Épület állapot frissítések “snapshot” jelleggel (`BuildingStatePacket`): built/placed, constructionProgress, life, stb.
- Néhány globális esemény: idősebesség változtatás, időjárás váltás, fa kivágás (repo verziótól függően).
**Mentés betöltés (host → kliens)**
- Host oldalon a mentés byte-ok chunkolva kerülnek kiküldésre (`SaveTransferPacket`).
- Kliens oldalon érkezés után `LoadSave.Load()` + `MultiplayerSaveContainer.Unpack()` fut.
- Ha a kiválasztott mentés nem multiplayer container (vanilla mentés), a host fallback-ként átadja a normál betöltést.
## Mi nincs (még) rendesen szinkronizálva? (gyakori desync okok)
Ezek okozzák a tipikus “farm termel, de nem látszik” / “resource nem frissül” / “animáció hiányzik” jelenségeket:
- **Erőforrás-logika és szállítás**: raktárkészletek, haul/cart routing, villager “viszem/lerakom” animációk nincsenek teljes állapotban szinkronizálva.
- **Villager/job részletek**: current task, target, carried resource, pathing cache, részfeladat-állapot.
- **Field/Farm belső állapot**: growth stage, harvest queue, field regisztráció edge case-ek.
- **UI / kliens oldali state**: beragadt menük, promptok (pl. “rakd le a kezdő épületet”), lokális UI state nem hálózati adat.
- **AI brains / nem-player rendszerek**: részben vagy egyáltalán nincs “szerver az igazság” modell.
## Mit érdemes még hozzáadni? (roadmap)
Ha cél a stabil “load utáni sync” és kevesebb vizuális desync:
- **Resource szinkron**: raktárak készlete, termelés/fogyasztás tick eredménye, szállítási queue események (event-based vagy periodikus snapshot).
- **Villager szinkron**: villager state machine + carried resource + célpont; vagy determinisztikus szerver oldali szimuláció és kliens “replay”.
- **Farm/Field szinkron**: field állapot (growth/ready/harvest), aratás események explicit hálózati üzenetként.
- **Robusztus reconnect**: kilépés egy sessionből → másik lobby csatlakozás restart nélkül (minden statikus állapot, observer, transfer state, player cache teljes resetje).
- **Debug eszközök**: desync detektor (hash/snapshot összehasonlítás), több log a load/sync pontokra.
## Telepítés
- Hostnak és **minden kliensnek ugyanaz a mod verzió** kell.
- Workshop verzió frissítés felülírhatja a módosításokat. Ajánlott:
- kimásolni a modot a játék `...\\KingdomsAndCastles_Data\\mods\\` mappájába egy külön névvel,
- és a mod menüben kikapcsolni a Workshop verziót.
- Változtatások után **teljes játék újraindítás** javasolt.
## Hibaelhárítás
**Log helye:** a mod mappájában gyakran van `output.txt`.
Nézd ezeket a kulcssorokat:
- `Compilation failed` → a mod nem fordult le, nincs multiplayer.
- `Save Transfer started/complete` → mentés átküldés/betöltés állapota.
- `Error loading save` / `LoadError` → sérült/rossz típusú mentés, vagy verzió eltérés.
Bug reporthoz küldd el:
- a hiba környéki 50100 sort a `output.txt`-ből,
- host/kliens szerep, játék verzió, mod verzió,
- új világban vagy mentés betöltés után jelentkezik-e.
## Fejlesztés
Repo-szabályok és szerkezet: `AGENTS.md`.