Jak funguje multiplayer ve Star Citizenu

Autor: walltar | Přidáno: 15.9.2013 Kategorie Mechaniky

V dnešním článku se blíže podíváme na na to, jak funguje Singleplayer, Multiplayer and instancing ve Star Citizenu.

Přeložili: Raven, Walltar

MultiAhoj všichni!

Dostávám mnoho otázek ohledně toho, jak celý persistentní vesmír funguje a také co mám na mysli, když řeknu bojová instance.

Nějaké otázky jsem již zodpověděl, ale jelikož se stále opakují, myslím, že bude dobré uvést podrobnější popis o tom, jak to celé bude dohromady fungovat.

Jeden z mých cílů ve Star Citizen byl vytvořit obrovský otevřený svět, který můžete objevovat sami, s přáteli, nebo s NPC.

Freelancer byl vytvořen pro 128 hráčů v multiplayeru, ale jak někteří víte, bylo to spíše teoretické maximum, než realita, obzvlášť v roce 2003. Když jsem začal pracovat na Freelanceru (částečně inspirován prací na Ultimě Online vyvíjené ještě když jsem byl u Origin), tak jsem chtěl přenést zábavu z multiplayeru u her jako Command & Conquer nebo Diablo a zkušenosti z Privateera do zcela nového světa multiplayeru. Moje původní vize pro Freelancer byla nejdříve vydat single player hru a až poté následovanou obrovským multiplayerem s dynamickou ekonomikou a světem, který reaguje a přizpůsobuje se hráčovu chování.

Nedostal jsem šanci dotáhnout tuto vizi do konce a i přesto, že Freelancer byla dobrá hra, byla jen částí toho, co jsem chtěl vytvořit.

Ve Star Citizen jsem byl odhodlán zkombinovat  to, co jsem kdysi chtěl u Freelancera se zkušenostmi z tvorby Wing Commandera a Privateera a jejich silnými stránkami.

Ale to bych nebyl já, chci zkombinovat věci, které mám rád u MMO, ale vyhnout se aspektům, které se mi moc nelíbí jako rozdělené hráčské skupiny, griefing nebo grinding. Také mě zaujal způsob, jak v Demons Souls zkombinovali zkušenosti singleplayeru s multiplayerem.

Tohle všechno mi pomohlo  při balancování mezi single a multiplayerem.

Všechny multiplayerové hry, ať už se jedná o MMO typu World of Warcraft nebo jiný online multiplayer jako Battlefield 3, mají omezený počet hráčů, kteří mohou být aktivní v určité lokalitě. Toto číslo je obvykle nepřímo úměrné k množství dat, která musí plynout mezi klientem a serverem. Pro hru se složitou fyzikou a kompletně zničitelným prostředím, jako Battlefield 3je počet hráču v jedné oblasti menší, než ve hrách jako WoW nebo EvE. Ale ve všech případech je vždy počet hráčů vyšší než kolik zvládne jeden server. Pro persistentní multiplayerový svět jako WoW je řešení rozdělit hráče do více skupin, tzv. shardů, které jsou stálými instancemi a starají se o určitý počet hráčů.

Jedna věc, kterou nemám rád u většiny MMO struktur je rozdělení hráčské základny mezi tyto shardy. Pokud se připojíte později než váš přítel, tak je možné, že v jeho instanci už nebude místo a vy se připojíte do jiné paralelní instance a tak nemůžete hrát dohromady. Tohle je dobře vyřešené v EvE Online – zde všichni hrají v tom samém vesmíru.

Ve Star Citizen bude jeden server persistentního vesmíru, na kterém se budou všichni nacházet. Takže nikdy nebudete odděleni od svých přátel a když budete chtít, budete hrát spolu. Kvůli reálnosti soubojů a fyziky však nejsme schopni pojmout tisíce hráčů do jedné lokality. I kdyby jste měli dostatečně rychlé připojení, které by zvládlo proud dat a super výkonný server, tak neexistuje PC, které by dokázalo vyrenderovat tolik lodí, ani kdybyste měli vícero grafických karet.

Takže ten trik multiplayeru Star Citizen tkví v tom, jak jsme schopni zkombinovat persistentní vesmír s tradičními dočasnými bojovými instancemi.

Způsob jak to funguje je, že server vesmíru, kterému říkáme Galaxy Server, stále sleduje pozici všech hráčů a skupin uvnitř SC vesmírů. Galaxy server se nestará o žádné realtime akce, ale je schopný zvládnout hráčskou základnu nějakých 45 000 hráčů, ale dokáže pojmout miliony, když bude třeba. Další důležitá věc, co Galaxy Server dělá, je dynamické rozmísťování hráčů, dle jejich pozice, skillu, zařazení a PvP preferencí, do různých bojových instancí. Pod bojovou instancí si představte například multiplayer Battlefieldu 3 nebo bitvu ve World of Tanks s tím rozdílem, že hráči jsou vybíráni transparentně.

 

Ilustrace tohoto systému je asi taková:

Svou cestu začnu na planetě Nový Pittsburgh. Koupím pár tun ocele, kterou chci převézt do loděnic na Teře. Nyní jsem v rukou galaxy serveru, který komunikuje s mým klientem a zařizuje nákupy a interakci na planetě, které nejsou až tak realtimové jako vesmírná akce. Na planetách taky budete moci komunikovat s ostatními hráči, pomocí chatu a budete se moci potkat v barech anebo v klubech. Kromě zalidnění baru NPC, hra přidá do baru taky hráče, pokud je na planetě víc lidí, než je maximální možné množství hráčů v baru, tak ti které uvidíte, budou vybráni z vašeho friend listu anebo vybráni dle relevance k vám – hráč, který hledá wingmana, hráč z podobné skupiny, nebo dokonce hráč, na jehož dopadení máte misi. Také budete mít možnost si prohlédnout úplný seznam hráčů. Standartní by bylo mít drop down menu, ale protože nemám rád věci, které ruší vaše ponoření do hry, pravděpodobně přijdeme s lepším systémem, jak si prohlédnout seznam hráčů – například říct barmanovi, koho hledáte, nebo se podívat na seznam u dveří.

Jamile koupím náklad, tak vzlétnu do vesmíru, pokud jsou hráči na orbitě, tak už je instance vytvořena. Pokud není plná, tak mě do ní server přidělí. Pokud plná je, server dynamicky vytvoří novou. Všechny instance rezervují sloty pro vaše přátele a pro zájmové osoby (POI), které mohou být NPC, nebo hráči, takže pokud jste vzlétli a na orbitě je víc instancí, tak budete v té s vašimi přáteli. Podobný systém bude uplatněn, i pokud chcete někoho plédovat, na planetě ho označíte jako POI a potom hra udělá vše pro to, abyste byli ve stejné instanci. Například pokud jste někoho označili, tak vám vaše PDA oznámí, pokud tento člověk vzlétne a dá vám tak okno, abyste se k němu připojili.

 

Na orbitě mohu zapnout svůj navigační počítač a nastavit kurz k mé destinaci. Pokud je to několik systému daleko, jako například Terra, navigace načrtne kurz relevantními jump pointy. Cestu budete moct upravit, tak jako na Google maps, pokud kliknete na jump point na mapě systému, tak se cesta přepočítá, na nejkratší trasu s tím, že vámi zvolený jump point bude prvním skokem.

Potom co si nastavím trasu, můžu zapnout autopilota a pokračovat k prvnímu waypointu na trase k mé destinaci. V téhle chvíli se připojím zpět ke galaxy serveru, který rozhoduje, zda se setkám s nepřáteli, s někým, kdo mě označil jako POI, nebo předurčeným encounterem na cestě, nebo s instancí, ve které probíhá bitva. Tyto encountery mohou být proti NPC, nebo hráčům a jsou uspořádány podle úrovně dovednosti a taky – což je důležité pro všechny, kteří radši single player a nechtějí se potýkat s griefery – podle vašeho PvP nastavení. Takže pokud jste nastavili svou hru na nízké PvP a jste v relativně bezpečné oblasti, je velká pravděpodobnost, že vaším nepřítelem bude NPC. Samozřejmě, že váš ranking a reputace, kterou dostanete, nebude stejná, jako při PvP encounteru. Doufám, že tohle dovolí hráčům začít hru spíše bezpečněji, ve stylu open-world singleplayer her a jak se rozkoukají, tak budou mít možnost lehce přejít k boji s ostatními hráči. Některé části vesmíru, ale budou vždy naplno PvP, ať už je vaše nastavení jakékoliv. Budou to systémy na okrajích vesmíru, ve kterém funguje policie, a budou známé pro svou pirátskou aktivitu. Zároveň to budou nejlukrativnější oblasti – pokud se vám podaří přežít.

Pokud cestujete s přáteli, můžete se propojit POI systémem a přátele budou vtaženi do instance, ať už PvP, nebo PvE, spolu s vámi.

Jakmile galaxy server rozhodne, že budete mít encounter na základě předešlých kritérií, buď dynamicky vytvoří bitvu, nebo vás připojí do už probíhající, pokud nějaká v místě encounteru existuje a instance má místo pro další hráče. Pro opuštění instance musíte buď porazit oponenta, domluvit se s ním, nebo uniknout. Jakmile se ocitnete v instanci, můžete vyslat SOS svým přátelům. Existují dvě možnosti, jak mohou lidé na vašem friend listu pomoci. Všichni vaši přátelé ve stejném systému budou mít rezervovaný slot v instanci, aby se mohli zapojit do boje. Pokud ve stejném systému nejsou, ale podaří se jim dostat se do vašeho systém u před koncem bitvy, mohou se připojit potom (ale můžou se připojit, až potom co se dostali do vašeho systému). Druhý způsob jak se přátelé mohou zapojit do bitvy je převzetím kontroly nad NPC. Toto funguje jen na větších lodích s více členy posádky, jako RSI Constellation. V tom případě nemusí být ve stejném systému, jen se připojí na vaši loď a budou se moct pohybovat v první osobě, ovládat střílny anebo skočit do P52, zatímco budete pilotovat loď (nebo mohou pilotovat loď, zatímco budete pilotovat p52)

Jakmile jsou boj, nebo události (někdy se může stát, že váš autopilot bude přerušen, protože narazíte na opuštěnou loď, nebo vesmírnou stanici a budete mít možnost je prozkoumat), které přerušili váš autopilot, vyřešeny, můžete opět zapnout autopilota a vrátit se na galaxy sever na kurz, který jste si nastavili.

Autopilot se taky vždy přeruší u planet a jump pointů, kde budete moct přistát, nebo provést skok do jiného systému.

Tenhle proces pokračuje, dokud nedorazíte na původní destinaci, kterou je v mém příkladu Terra, kde použiji komunikační systém ke sjednání přistávacího místa, což mě vezme dolů na planetu pomocí ingame cutscény. Na planetě budu moci prodat náklad, doplnit zásoby a prohlédnout si příležitosti skrz planetární interface.

Výhodou tohoto systému je, že dovoluje přizpůsobit zážitek hráče jeho preferencím – sólo, co-op, PvP. Taky vás nerozděluje do paralelních verzí Star Citizena, protože každý hraje na perzistentním serveru. Protože jsou naše bojové / orbitální instance dočasné, nikdy nebudete příliš dlouho se stejnými hráči, ale zároveň vždy bude místo, abyste mohli hrát s vašimi přáteli.

Stejný instancový systém používá i Squadron 42. Pokud hrajete off-line, váš počítač funguje jako server a klient, vaši přátelé se nebudou moci připojit a všichni ostatní budou NPC. Ale pokud hrajete Squadron 42 na galaxy serveru, i když jsou vaše mise a oblasti vesmíru pevně dané (v armádě si nevybíráte, kde ve vesmíru sloužíte), dovolíme, aby se vaši přátelé mohli připojit a převzít kontrolu vašich NPC wingmanů a pokud chcete extra hodnocení, můžete dovolit ostatním hráčům, aby se připojili jako nepřátelské esa. Tento systém je podobný, tomu z Demon Souls, kde se hráči mohli připojit jako modrý Fantom a pomoci hráči zabít bosse anebo jako černý fantom a pokusit se hráče zabít pro XP a ostatní odměny.

Klíčem je dovolit hráči aby si vybral – pokud chcete hrát sami, můžete, stejně tak můžete hrát co-op s vašimi přáteli, anebo si přidat výzvu v boji proti ostatním hráčům. Speciální na tom je, že se to vše může odehrávat ve stejném univerzu.

Doufám, že vám tohle pomůže porozumět, jak balancujeme aspekty multiplayeru a zároveň děláme hru zábavnou.

 Tento článek je překladem Chris Roberts on Multiplayer, Single Player and Instancing

  1. Autor: Raven | Přidáno: 15.9.2013, 21:09

    Ohledně článku od Robertse si nejsem úplně jist kdy hrál naposledy WoW (jestli někdy), ale situace je teď taková, že když dojdete do určité lokality později než vaši přátelé, tak je možné že vás server umístí na jiný shard. Nicméně jakmile se založí parta tak server všechny členy party přemístí na jeden shard.

  2. Autor: Net | Přidáno: 15.9.2013, 22:16

    Super překlad walltare! Jen doplním pár informací z komentářů (protože se mi je nechce překládat celé).

    – pomoc příteli tak, že převezmete kontrolu nad NPC v jeho lodi půjde, jen když sami nebudete ve vesmírné instanci
    – PvP nepůjde vyplnout úplně (alespoň prozatím, může se to změnit v budoucnu), ale aby člověk dynamicky ovlivňoval vesmírnou ekonomiku, musí hrát se zaplým PvP. Také tak získá víc peněz a reputace, protože PvP bude náhodnější a pravděpodobně těžší
    – profit bude větší v PvP okrajových soustavách (PvP nastavení tam téměř nebude fungovat), cílem je motivovat hráče k PvP hře, ale poskytnout jim čas, aby se k ní dostali svým vlastním tempem
    – jedním z kritérií pro společnou instanci bude ping
    – bude možnost nevyužívat autopilota k cestě mezi planetami, ale potrvá to 3-5 hodin v prázdném vesmíru. Cílem autopilota je přeskočit tuhle nudnou cestu a dostat se k místům zájmu – planetám, stanicím, asteroidům a tak dále
    – pokud jste v jedné instanci s nepřátelským hráčem nemusíte po sobě střílet, jakmile budete dost daleko od sebe, můžete zase zapnout autopilota
    – žádné obrazovky s loadingem, alespoň ne takové, o kterých by hráč věděl. CryEngine má dobrou technologii streamování a vše co člověk uvidí při autopilotu (nebopřistávání na planetě) bude animace obdobná z těm z předchozích Chrisových her (Wing Commander, Privateer, Freelancer). Přechod z animace do hry by měl být plynulý a hráč by si ho neměl být pořádně vědom, všechny objekty cílové lokace se načtou zatímco běží animace autopilota

Napsat komentář

Jak mít vlastní obrázek u komentářů

Zaregistrujte se na stránkách Gravatar.com, připojte si k účtu e-mail, který používáte na star-citizen.cz a nastavte si libovolný obrázek.

Snažte se v komentářích držet tématu, na rozsáhlejší diskuse je vhodnější naše fórum