Avatar
tomekmichalhu:

Dobrý den, chtěl bych udělat primitivní multiplayerovou hru (neplánuju to publikovat, jen na tom chci získat zkušenosti které pak budu moct někde aplikovat). Nevím však na jakém principu by takový multiplayer měl fungovat, tak bych chtěl poprosit o nakopnutí správným směrem.

 
Odpovědět 8.3.2015 10:33
Avatar
Odpovídá na tomekmichalhu
Vojtěch Pospíchal:

Jde to dvěma způsoby. První, architektura klient-server-klient je o něco náročnější na uvedení do provozu (musíš pořídit dedikovaný server), ale je o poznání stabilnější a eliminuje spoustu problémů (o nich později). Druhá metoda je klient-klient (peer2peer). P2P je ale v dnešní době problém aplikovat - především kvůli příliš restriktivním firewallům a antivirům - stejně je tedy potřeba nějaký "prostředník-server", který bude vědět o všech přítomných hráčích. Co se týče Unity, nejsnažší je pro začátek využít PUN. Jedná se o službu třetí strany (Exit games), která funguje jako dedikovaný server, ale tento server ti poskytne tato společnost. V podstatě se připojíš na dedikované servery této společnosti a založíš místnost. V této místnosti pak provádíš všechny síťové metody pomocí jejich API (synchronizace, inicializace atp...). Jednoduché a elegantní. Ale pro větší projekty také pěkně drahé.
PUN -
https://www.exitgames.com/en/Realtime

EDIT:// 500 v jednu chvíli připojených hráčů vás bude stát zhruba 90$ (2240Kč).
20 najednou připojených hráčů je v plánu zdarma.

Editováno 8.3.2015 12:01
 
Nahoru Odpovědět 8.3.2015 11:58
Avatar
tomekmichalhu:

tohle vypadá zajímavě, zjistím co všechno to umí a uvidím. Mě mezitím napadlo udělat nějakou databázi všech objektů ve hře (otázkou je v čem aby si to mohli uživatelé nainstalovat na svoje počítače bez instalace žádných dalších věcí a taky aby to stíhalo) kam by client posílal pozici hráče a objektů co hráč vytvořil a ta by vracela broadcastem pozice všech objektů objektů

 
Nahoru Odpovědět 8.3.2015 13:29
Avatar
Odpovídá na tomekmichalhu
Vojtěch Pospíchal:

To by možná nebyl takový problém, ale jedině za předpokladu, že se bude pozice měnit jen jednou za delší dobu, jinak by byla zátěž sítě příliš velká a způsobovala by desynchronizaci. Obvykle se žádný seznam objektů neřeší, prostě je u všech hráčů načtena stejná scéna a objekty které se pohybují nebo jinak synchronizují přes síť se inicializují dynamicky. + Tabulkou s objekty by se špatně řešila třeba synchronizace animací atp..

 
Nahoru Odpovědět 8.3.2015 14:03
Avatar
Gramli
Redaktor
Avatar
Odpovídá na Vojtěch Pospíchal
Gramli:

Kdyz je rec o multiplayeru a exitgames, mel bych dotaz:D Stahl jsem si photon SDK a pisu si vlastni server. Pricemz pri pri pripojeni hrace se vytvori trida pro daneho hrace a te je predan list<OnlinePLa­yers>. Tedy kazdy hrac ma svuj vlastni list<OnlinePlayers> Pokud se nekdo odpoji, tak aktualizaci listu provadim pres delegaty. Je tohle dostacujici reseni pro napr. 20 hracu online?? Nebo se to da vyresit nejak jinak?
(Tohle bude moje prvni aplikaci tohoto typu, takze s tim nemam moc zkusenosti)

Editováno 8.3.2015 15:21
Nahoru Odpovědět 8.3.2015 15:20
Kdo to říká ten to je...
Avatar
Odpovídá na Gramli
Vojtěch Pospíchal:

Těžko říct pro kolik hráčů je to dostačující řešení. Při komunikaci přes síť to záleží vždy na mnoha faktorech - ping, packetloss, rychlost připojení...
Nikdy jsem se síťovou komunikací moc nezabýval, takže si nejsem jistý. Ale teoreticky by to mělo stačit.

 
Nahoru Odpovědět  +1 8.3.2015 15:27
Avatar
tomekmichalhu:

já ten PUN vůbec nechápu, jejich stránky jsou děsně nepřehledný a moje angličtina na to nestačí

 
Nahoru Odpovědět 8.3.2015 16:12
Avatar
Odpovídá na tomekmichalhu
Vojtěch Pospíchal:

Pokud na tutoriály v PUN nestačí tvoje Angličtina, tak se do toho prosím nepouštěj. Přehlednější tutoriály nenajdeš a v jiném jazyce už vůbec ne.
A používej prosím tlačítko odpověď.

 
Nahoru Odpovědět  +1 8.3.2015 17:43
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.