Multiplayer harc a Bad Goons hálózati voxeles világában
Bad Goons · Autoritatív Linux szerverek · Hálózati voxel terep

MULTIPLAYER JÁTÉKFEJLESZTÉS

A játékmenethez igazított multiplayer fejlesztés.

A Sourcegarden Studio lefedi a játékhálózatok, az autoritás, a predikció, a munkamenetek (session-ök) és a dedikált szerverek fejlesztését. Referenciáink között szerepel a négyszemélyes VR co-op, a kliensoldali predikciót használó kompetitív mobil VR, és a hatalmas, változó hálózati terepet felvonultató PC-s FPS is.

Beszéljünk a projektről
01

Autoritás, replikáció és reszponzív harcrendszer

A multiplayer architektúra megtervezése ott kezdődik, hogy eldöntjük: mely akcióknak kell azonnalinak hatniuk, és mely állapotoknak kell feltétlenül hitelesnek maradniuk. Rendszerenként határozzuk meg az autoritást, eldöntjük, mit fogunk predikcióval kezelni, miként szinkronizáljuk a hibákat, és kiszámoljuk azokat a sávszélességi és frissítési korlátokat, amelyeket a játék még elbír.

Egy pörgős harcrendszer, egy valódi testmozgásra épülő VR-interakció és egy módosítható voxelcsatatér teljesen más replikációs stratégiát igényel. A fejlesztés során valós hálózati késleltetéssel, csomagvesztéssel és ingadozással tesztelünk, így a játékélményt valódi körülmények között vizsgáljuk, nem csak alacsony késleltetésű helyi hálózaton.

  • Szerver- és kliensoldali autoritási modellek
  • Predikció és szinkronizáció
  • Replikáció és sávszélesség tervezése
  • Késleltetés és csomagvesztés tesztelése
02

Session-ök, matchmaking és hibakezelés

Egy meccs nem ott kezdődik, amikor az első képkockát szinkronizáljuk. A játékoscsoportok, a munkamenet-keresés, a szerverkiosztás, a kapcsolati tokenek, a verziókompatibilitás és a visszacsatlakozási szabályok mind meghatározzák, hogy a játékosok egyáltalán eljutnak-e a meccsig, és ott is maradnak-e. Ezeket az állapotokat tudatosan tervezzük meg, ahelyett, hogy mindent egy egyszerű „Csatlakozás” gomb mögé rejtenénk.

A matchmaking (meccskereső) szabályoknak egyensúlyt kell teremteniük a tudásszint, a késleltetés, a csapatösszetétel, a várakozási idő és az elérhető kapacitás között. Amikor egy projektnek szüksége van erre a rétegre, láthatóvá tesszük a mérhető kompromisszumokat és kiépítjük a finomhangoláshoz szükséges üzemeltetői eszközöket, miután az első valós játékosok megérkeznek.

  • Játékoscsoportok és munkamenet-állapot
  • Játékostársítási feltételek
  • Verziókompatibilis kapcsolatok
  • Visszacsatlakozás és hibakezelés
03

Dedikált játékszerverek és üzembe helyezés

Az autoritatív szimulációhoz olyan szerver buildre van szükség, amely biztonságosan elkészíthető, telepíthető, megfigyelhető és cserélhető. Szétválasztjuk a játékklienst, a valós idejű szervert, a perzisztens szolgáltatásokat és az infrastruktúrához kapcsolódó feladatokat, majd automatizáljuk azokat a buildelési és telepítési folyamatokat, amelyeket a csapat üzemeltetni fog.

A Bad Goons Unity headless Linux szervereket és konténerizált telepítést használ a fejlesztési architektúra részeként. A kapacitást, a leállást, a szerveregészséget, a logokat és a verziófrissítéseket is a játék szempontjából kritikus tényezőként kezeljük, mert az infrastruktúra közvetlen hatással van az aktív meccsekre és a játékosok visszajelzéseinek kivizsgálására.

  • Headless Linux szerver buildek
  • Konténerizált telepítés
  • Egészség, logok és diagnosztika
  • Kapacitáskezelés és verziófrissítések
04

Multiplayer tesztelés és éles megfigyelhetőség

A hálózati hibákat szinte lehetetlen reprodukálni, ha a buildek nem teszik láthatóvá a hiba okozóját. Ezért diagnosztikát építünk a kapcsolat állapotára, az autoritásváltozásokra, a replikációs terhelésre, a szerver teljesítményére és a hibás útvonalakra, majd megőrizzük azokat a szcenáriókat, amelyek regressziós tesztekhez használhatók.

A terheléses teszteket a valóban számító terhelések köré tervezzük: aktív szimulációk, változó világállapotok, tömeges újracsatlakozások vagy szolgáltatásfüggőségek. A cél nem egy fiktív egyidejű-játékosszám felmutatása, hanem annak bizonyítása, hogy az architektúra kiszámíthatóan terhelhető, és elegendő információt ad az üzemeltetőknek a beavatkozáshoz.

  • Hálózatszimuláció és regresszió
  • Szerverteljesítmény profilozása
  • A játékmenethez kötött terheléses tesztek
  • Üzemeltetői dashboardok és folyamatok

GYAKORI KÉRDÉSEK

Amit a csapatok kérdezni szoktak indulás előtt.

Hozzá tudtok adni többjátékos módot egy meglévő Unity-játékhoz?

Néha igen, de a megfelelő első lépés mindig az architektúra és a központi játékmenet vizsgálata. Az állapotok felelősségi köre, a determinizmus, a fizika, a tartalmi feltételezések és a kliens architektúrája határozza meg, hogy a többjátékos mód fokozatosan bevezethető-e, vagy célzott újraírásra van szükség.

Építetek dedikált játékszervereket is a kliensoldali hálózati kód mellé?

Igen. Dokumentált munkáink közé tartoznak a grafikus felület nélküli Unity Linux-szerverek, a konténeres üzembe helyezés, a kliensoldali predikció és a szerver által hitelesített szimuláció is. A tartós backend-szolgáltatások és a hoszting pontos terjedelmét minden játéknál külön határozzuk meg.

Milyen hálózati keretrendszert használtok?

A keretrendszer mindig a játéktól, a célplatformtól, az autoritási modelltől és a csapat tapasztalatától függ. A Bad Goons FishNetet használ, míg korábbi projekteknél más megoldásokat alkalmaztunk. Nem kényszerítünk bele minden projektet egyetlen hálózati sablonba.

KEZDD EL A BESZÉLGETÉST

Játékfejlesztő partnert keresel?

Hozz a Sourcegarden Studiónak egy ötletet, egy prototípust, vagy egy már folyamatban lévő fejlesztést. Segítünk meghatározni a megfelelő irányt és feladatkört.

Beszéljünk a játékról