Bad Goons játékmenet autoritatív Linux dedikált szervereken futtatva
Bad Goons · Konténerizált Linux dedikált szerverek · Unity 6 + FishNet

JÁTÉK BACKEND FEJLESZTÉS

Játék backend fejlesztés online játékokhoz.

A Sourcegarden Studio megtervezi, integrálja és telepíti a játék körüli online szolgáltatásokat: a session- és lobbyfolyamatokat, a dedikált szerverek telepítését, a kliens és a backend közötti szerződéseket, a perzisztenciát, valamint azt a monitorozást, amelyre egy csapatnak az éles meccsek üzemeltetéséhez szüksége van. A valós idejű hálózati kóddal kapcsolatos munkánkat a multiplayer oldalon mutatjuk be; ez a szolgáltatás azokat a rendszereket fedi le, amelyek a meccseket elérhetővé, megfigyelhetővé és karbantarthatóvá teszik.

Beszéljünk a játékod backendjéről

ÍGY MŰKÖDIK AZ EGYÜTTMŰKÖDÉS

Terjedelem, leszállítandók és felelősségi körök – még a munka kezdete előtt.

01

Hol kezdődik a backend, és hol ér véget a játékszerver

A legtöbb online játék több, eltérő felelősségű rétegből áll: a játékkliensből, a meccset szimuláló valós idejű játékszerverből, a session-öket, játékosokat és perzisztens adatokat kezelő alkalmazásszolgáltatásokból, egy adatbázisból, valamint a megfigyelhetőségi eszközökből, amelyek megmutatják az üzemeltetőknek, mi történik. A problémák akkor jelennek meg, amikor ezek a határok kimondatlanok maradnak, és minden réteg a többi belső részleteitől függ.

Először ezeket a határokat rajzoljuk meg a játékodra: mely állapot autoritatív a meccsen belül, mely adatnak kell túlélnie a meccset, milyen hívásokat indít a kliens, és mely műveleteket kell a csapatnak fejlesztő bevonása nélkül is el tudnia végezni. Az eredmény egy explicit szerződéseket tartalmazó architektúra-dokumentum, nem pedig egy olyan ábra, amelyet csak az eredeti készítője ért.

  • Kliens-, játékszerver- és szolgáltatáshatárok
  • Autoritatív és perzisztens állapot
  • Verziózott kliens–backend szerződések
  • A csapatod által karbantartható architektúra-dokumentum
02

Session-ök, lobbyk és csatlakozási folyamatok

A játékosok a backendet először a meccsbe vezető útként tapasztalják meg: session keresése vagy létrehozása, csatlakozás egy partyhoz vagy lobbyhoz, egy szervercím megkapása és csatlakozás a megfelelő buildverzióval. Ezeket a folyamatokat a játékklienssel és a dedikált szerverrel együtt integráljuk, így az olyan hibaállapotoknak, mint a megtelt szerver, a verzióeltérés vagy a megszakadt kapcsolat, meghatározott viselkedésük van.

Ahol egy bevált platformszolgáltatás már lefedi a folyamat egy részét, ott azt integráljuk, nem építjük újra. Ahol az egyedi szolgáltatások indokoltak, ott kicsinek, dokumentáltnak és tesztelhetőnek tartjuk őket. A session életciklusát mindkét esetben explicit módon modellezzük, hogy diagnosztizálható legyen, amikor a játékosok problémát jeleznek.

  • Session- és lobbyintegráció
  • Szerverkiosztás és csatlakozás-átadás
  • Verziókompatibilitási ellenőrzések
  • Meghatározott hiba- és újracsatlakozási viselkedés
03

Dedikált szerverek telepítése és üzemeltetése

Egy dedikált szerver, amely egy fejlesztő gépén fut, még nem üzemeltethető szolgáltatás. Ehhez reprodukálható build, konténer vagy image, környezetenkénti konfiguráció, health checkek, kontrollált leállítás, naplógyűjtés, valamint egy biztonságos módszer kell az új verzió élesítésére, miközben még futnak a meccsek.

A Bad Goons Unity headless buildeket futtat autoritatív Linux szervereken, konténerizált telepítéssel. Ugyanezt a fegyelmet alkalmazzuk ügyfélprojekteknél is: automatizáljuk a szerver buildet, megismételhetővé tesszük a telepítéseket, és őszintén dokumentáljuk a kapacitással kapcsolatos feltételezéseket, a költségeket és a korlátokat, ahelyett hogy nem tesztelt egyidejű játékosszámokat ígérnénk.

  • Headless Linux szerver buildek
  • Konténerizált, megismételhető telepítés
  • Health checkek és kontrollált leállítás
  • Verziók élesítése és visszaállítása
04

Monitorozás, hibakeresés és átadás

Az online problémák akkor drágák, ha senki sem látja őket. Strukturált naplókat, metrikákat és állapotjelzéseket építünk a session-ök, a szerverfolyamatok és a szolgáltatáshívások köré, majd ezeket olyan dashboardokhoz és riasztásokhoz kötjük, amelyek illeszkednek ahhoz, ahogyan a csapatod ténylegesen üzemeltetni fogja a játékot.

Minden együttműködés dokumentált átadással zárul: architektúra, telepítési lépések, runbookok a gyakori incidensekhez, ismert korlátok és az infrastruktúra költségtényezői. Ha további támogatásra van szükséged, annak terjedelmét és a válaszidőkkel kapcsolatos elvárásokat kifejezetten rögzítjük, nem hallgatólagosan feltételezzük.

  • Strukturált naplók és metrikák
  • Dashboardok és riasztások
  • Runbookok incidensekhez
  • Dokumentált átadás és opcionális támogatás
05

Játékosadatok, progresszió és gazdasági szolgáltatások

A fiókokat, a progressziót, az inventoryt, a játékon belüli gazdaságot, az analitikát és a LiveOps eszközöket gyakran kérik, és ezek valódi biztonsági, adatvédelmi és egyensúlyozási felelősséggel járnak. Nem kezeljük őket kipipálandó tételként. Minden játéknál először felmérjük, hogy egy meglévő platformszolgáltatás megfelel-e, majd az integrációt vagy az egyedi fejlesztést külön határozzuk meg.

A referenciáinkkal kapcsolatban egyértelműek vagyunk: dokumentált éles tapasztalatunk a dedikált szerverek, a telepítés, a session-folyamatok és a multiplayer integráció területén a legerősebb. Ha a projektednek olyan szolgáltatástípusra van szüksége, amelyet korábban még nem szállítottunk le, ezt az ajánlatban jelezzük, és a validálási munkát ennek megfelelően tervezzük meg.

  • Először a platformszolgáltatások felmérése
  • Külön meghatározott perzisztenciafejlesztés
  • Adatvédelmi és biztonsági felülvizsgálat
  • Őszinte referenciák minden ajánlatban

GYAKORI KÉRDÉSEK

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

Mi a különbség a multiplayer és a backend szolgáltatásotok között?

A multiplayer fejlesztés a meccsen belüli valós idejű szimulációt fedi le: autoritás, predikció, szinkronizáció és replikáció. A backend fejlesztés a körülötte lévő szolgáltatásokat: session-ök és lobbyk, szervertelepítés, kliens–backend szerződések, perzisztencia, monitorozás és átadás. Sok projektnek mindkettőre szüksége van, és ezeket külön határozzuk meg.

Tudtok egy meglévő backend platformot integrálni egyedi szolgáltatások fejlesztése helyett?

Igen, és általában azt javasoljuk, hogy először ezt vizsgáljuk meg. Felmérjük, hogy egy platformszolgáltatás illeszkedik-e a session-modellhez, az adatokhoz és a költségkorlátokhoz, majd integráljuk a klienssel és a dedikált szerverekkel. Egyedi szolgáltatásokat csak ott javaslunk, ahol azok indokoltak.

Telepítetek és üzemeltettek dedikált játékszervereket?

Elkészítjük, konténerizáljuk és telepítjük a dedikált szervereket, és kialakítjuk az üzemeltetésükhöz szükséges health checkeket, naplókat és élesítési folyamatot. Az átadás utáni folyamatos üzemeltetés opcionális, és külön megállapodás tárgya, a válaszidőkkel kapcsolatos elvárásokat is beleértve.

Garantálni tudtok egy adott egyidejű játékosszámot?

Nem. A kapacitás a játékszimulációtól, a szerverhardvertől, a hosztingmodelltől és a játékosok viselkedésétől függ. Terhelési szcenáriókat határozunk meg a játékodhoz, megmérjük őket, és őszintén beszámolunk az eredményekről és a korlátokról, ahelyett hogy nem tesztelt számokat ígérnénk.

Mire van szükségetek egy játék backend projekt becsléséhez?

A játék típusára és session-modelljére, a várható egyidejű játékosszám-tartományra, a meglévő engine- és szerverstackre, a már használt backend platformra, a szükséges szolgáltatásokra és az ütemezésre. Ezek alapján javasolni tudunk egy felmérést vagy egy körülhatárolt megvalósítási terjedelmet.

Mit kapunk az átadáskor?

Architektúra- és szerződésdokumentációt, automatizált build- és telepítési lépéseket, monitorozási dashboardokat, runbookokat a gyakori incidensekhez, az ismert korlátokat és áttekintést az infrastruktúra költségtényezőiről.

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