2025-12-13 20:06:47 +01:00
2025-12-13 19:12:53 +01:00
2025-12-13 19:12:53 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 19:42:49 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 14:28:35 +01:00
syx
2025-12-13 18:35:44 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 19:12:53 +01:00
2025-12-13 19:20:41 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 14:28:35 +01:00
aha
2025-12-13 19:17:20 +01:00
asd
2025-12-13 18:53:45 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 14:28:35 +01:00
syx
2025-12-13 18:35:44 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 19:12:53 +01:00
2025-12-13 20:06:47 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 14:28:35 +01:00
2025-12-13 19:12:53 +01:00

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).
  • Host oldalon periodikus resource snapshot korrigálás (ha drift/desync van, visszahúzza a klienst).

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.

Gyors resync

A lobby chatben írd be: /resync a kliens kér egy resync-et a hosttól (resource + building + villager “teleport” snapshot).

Description
No description provided
Readme 7.2 MiB
Languages
C# 100%