Sodelovalna arhitektura & načrt razvoja projekta

Sodelovalna arhitektura & načrt razvoja projekta

Sodelovalno inženirstvo in načrt razvoja projekta

Klasični naslovi strategij in RPG iz poznih 90. in zgodnjih 2000. let so imeli bodisi krhko IPX/DirectPlay omrežje bodisi so multiplayer izločili tik pred izidom. Good Old Games Dev zamenja zastarelo omrežje z enotnim, determinističnim transportom za sodelovalni način na vseh štirih portih.

Primerjava načina sodelovanja v vseh 4 prenosih

Ime igreŠtevilo igralcevArhitektura sodelovanjaPodpora kampanji in shranjevanjaKupi izvirno igro
Jagged Alliance 21–6 igralcevSkupna kampanja Arulco, skupna financa, dodelitev ekipe in sinhronizirani taktični poteziPolna kampanja Arulco Revisited 1.4 + obnova shranjenih datotek .cocometaGOG.com
Warlords III: Darklords Rising1–8 igralcevSodelovanje na istem napravu (hotseat) in zavezniško sodelovanje (SetupScr.pcx upravljalnik mest, vtičnik GUID za kontrolerje in deterministični boji)Popolna (v1.0.0) — Polne kampanje, 43+ scenarijev, naključni zemljevid in prenosljive shranitveGOG.com
Anno 1503 A.D. — Royal Edition1–4 igralcevObnovljen večotski načrt z več otoki + Sodelovalno cesarstvo v kooperaciji pri 20 Hz sinkroniziranem taktuNeprekinjeno igranje & scenariji (v teku)GOG.com
Arcanum1–4 igralcevPolna kooperativna kampanja z zgodbo, deljeni potovalni svetovni zemljevid & sinhroniziran bojevanje na potezeGlavni modul zgodbe Arcanum + Vormantown (v teku)GOG.com

Pravila medplatformske determinističnosti

Ker lahko ena sodelovalna seja združi macOS ARM64, Linux x86_64 (MSI Claw / Steam Deck) in Linux ARM64 (Khadas VIM1S), se vsa koda simulacije drži stroge medarhitekturne determinističnosti:

  1. Brez nesejanega rand() ali odzivov z lebdečo vejico: Vsi meti, reševanja izenačenih poti AI in gospodarski koraki uporabljajo eksplicitno celoštevilčno aritmetiko s fiksno vejico in sinhronizirane tokove PRNG.
  2. Sinhronizacija ukazov + posnetki potez: Po mreži se prenašajo le ukazi igralcev (premik, streljanje, gradnja, izbira dialoga), spremljajo pa jih CRC32 hash vrednosti stanja na vsakem koraku za takojšnjo zaznavo morebitnih odstopanj.
  3. Samodejno ponovno povezovanje & sinhronizacija shranjevanja: Na vsaki meji poteze se zapiše par kontrolnih točk .sav + .cocometa, da se lahko odklopljen prenosni naprava ali TV konzola ponovno priključi v nekaj sekundah.