Autor Wątek: Rozwiązania multi dla gier  (Przeczytany 2355 razy)

Offline komorra

  • Użytkownik
    • Blog naszego teamu (o grze Voxelfield)

  • +1
# Luty 04, 2015, 08:37:36
Załóżmy, że tworzę projekt nowej gry multiplayer. Nie będzie to MMO, tylko multi (wiele toczących się gier, po kilkadziesiąt max graczy per gra). Gra powiedzmy, że będzie pisana w Unity.

Jak byście rozwiązali kwestię stworzenia multi tutaj? Czy korzystać z Photon Networking for Unity (na start mam 20 graczy max za free, po zapłaceniu bodajże 99$ mam 100 graczy max, a za abonament mam jakieś tam większe liczby)?

Czy może napisać swój własny serwer i niech community sobie stawia?

A jeżeli pisać własny serwer, to trzeba pomyśleć pod kątem wdrożenia - czyli np. nie piszę w .NET (bo jedynie na Azurze widzę sensowne wdrożenie) a piszę w Javie? (bo pójdzie na wszystkim, nawet w czystym shellu z javą?). Cz może nie pisać, tylko użyć gotowców - są jakieś gotowe serwery, które można postawić sobie na maszynie lub na PaaS ? (serwery dla gier oczywiście).

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline pawlaks1

  • Użytkownik
    • wolf in game

# Luty 04, 2015, 13:18:12
Tu masz link do master servera Unity (http://unity3d.com/master-server). Zarządza grami i takie tam. Będziesz potrzebować prawdopodobnie jakiegoś serwera, żeby to postawić. Na testy możesz użyć serwera Unity, który chyba ciągle jeszcze działa.

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Luty 04, 2015, 15:32:08
photona sam obczajałem jakiś czas temu ale nie było dla mnie jasne czy tam aby nie płaci się dodatkowo za server?

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Luty 04, 2015, 16:01:24
Cytuj
Jak byście rozwiązali kwestię stworzenia multi tutaj?
Jak dla mnie to tylko peer-to-peer albo serwer powstaje u gracza zakładającego grę. W przeciwnym wypadku dodajesz sobie koszty utrzymania.

Offline komorra

  • Użytkownik
    • Blog naszego teamu (o grze Voxelfield)

# Luty 05, 2015, 08:31:11
Bo w sumie większość gier z jakimi miałem styczność oferuje jakiś tam programowy serwer i się go stawia samemu. Pytanie jeszcze w czym go napisać, żeby koszty wdrożenia (zakupu serwera fizycznego lub platformy która to odpali pod publicznym IP) były małe.

Offline lethern

  • Użytkownik

# Luty 05, 2015, 09:58:23
Tu masz link do master servera Unity (http://unity3d.com/master-server).
Nie wiem kto ten kod pisał, ale miał kurcze poczucie humoru.. uśmiałem się w tym miejscu
// LightweightDatabaseServer.cpp @ 913
inBitstream->Read(hasPassword);
if (hasPassword)
{
if (stringCompressor->DecodeString(password, _SIMPLE_DATABASE_PASSWORD_LENGTH, inBitstream)==false)
Log::error_log("Error: Table password info not found\n");
return 0;
if (databaseTable->queryPassword[0] && strcmp(password, dbPass)!=0)
{
(...)
Log::error_log("Incorrect table password given, banning client\n");
return 0;
}
}
else if (dbPass[0])
{ (...)
« Ostatnia zmiana: Luty 05, 2015, 10:00:15 wysłana przez lethern »

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Luty 05, 2015, 13:42:51
Bo w sumie większość gier z jakimi miałem styczność oferuje jakiś tam programowy serwer i się go stawia samemu. Pytanie jeszcze w czym go napisać, żeby koszty wdrożenia (zakupu serwera fizycznego lub platformy która to odpali pod publicznym IP) były małe.
zależy od gry, czasem klient i server mogą być u graczy a Ty masz tylko master server który ich razem łączy. jeżeli hakowanie i cheaterzy mogą rozwalić grę to powinieneś hostować i gry i master server u siebie ale wiadomo że wyjdzie drożej.
a język pewnie jakiś natywny, nie przez przypadek master server unity jest w c++.

W tej chwili robimy z kumplem coś podobnego czyli klient w unity, gry hostowane u nas. żeby zaoszczędzić na czasie game server też jest w c#, czy to dobry pomysł to się jeszcze okaże :P
natomiast server do matchmakingu jest w fpc bo już taki miałem w miarę gotowy z poprzedniego projektu

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Luty 05, 2015, 14:22:11
Cytuj
Bo w sumie większość gier z jakimi miałem styczność oferuje jakiś tam programowy serwer i się go stawia samemu. Pytanie jeszcze w czym go napisać, żeby koszty wdrożenia (zakupu serwera fizycznego lub platformy która to odpali pod publicznym IP) były małe.
Tak jak pisałem:
- serwer jest częścią gry i odpala się przy zakładaniu gry,
- albo gra jest peer-to-peer i obowiązki serwera są dzielone między graczy

W takim przypadku jedyne czego potrzebujesz, to publiczny master serwer który by trzymał listę gier dostępnych publicznie + ewentualnie obsługiwał jakiegoś chatrooma. A do tego to wystarczy nawet PHP+MySQL które możesz postawić praktycznie wszędzie.

Offline yarpen

  • Użytkownik

# Luty 05, 2015, 18:45:20
Nie tak prosto.. Jezeli ma to byc P2P to wypada jeszcze dostarczyc przynajmniej posrednika do NAT punchingu.

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Luty 05, 2015, 21:08:05
Nie tak prosto.. Jezeli ma to byc P2P to wypada jeszcze dostarczyc przynajmniej posrednika do NAT punchingu.
Też fakt. Ale nie wymaga to żadnej szczególnej mocy obliczeniowej.