Wpis z mikrobloga

#unity #programowanie
siema. Załóżmy, że chce zrobić prostą gierke multiplayer która polegała by na budowaniu i rozwijaniu miasta z pewnymi interakcjami miedzy graczami (handel, proste automatyczne walki między graczami). Idealnie by było gdyby możliwy był crossplatform PC/mobile.
Mam już pewne doświadczenie z unity, robiłem singleplayerowe gierki, jednak multi jest dla mnie totalnie świeżym tematem i nawet nie wiem od czego by tu zacząć.

Nie potrzeba mi jakiejś super dokładnej synchronizacji, raczej docelowo wygladałoby to coś w stylu:
1. klient chce postawić budynek, klient wysyła zapytanie do serwera, serwer sprawdza czy można do zrobić, daje odpowiedz klientowi.
2. klient A atakuje miasto klienta B, serwer oblicza wynik walki i daje odpowiedz klientowi A i B.

Jak najprościej do tego podejść? Które rozwiązania wybrać? Czego musze się nauczyć? W unity i C# poruszam się w miare swobodnie ale to by było na tyle.
z góry dzięki
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Klamczuszek:

Może, żeby rozjaśnić troche dalej chciałbym sprobować zrobić gre w stylu starych przeglądarkowych gier online typu plemiona, ogame itd. gdzie rozgrywka dzieje się non stop - posiada "wspólny" czas dla wszystkich graczy.

wybacz jeśli głupie pytania zadam, ale jest to moje pierwsze podejście do tematu i zdaje sobie sprawe, że nie rozumiem pewnych fundamentalnych kwesti
  • Odpowiedz
@psyhatog: nie jestem jakimś fachowcem w dziedzinie multi, coś tam próbowałem rozkminiać kiedyś i z tego co wiem wszystkie rozwiązania p2p z jednym graczem jako hostem są bardzo podatne na cheaty i gra przestaje działać jak host opuszcza pokój (można to rozwiązać przez migrację hosta - oferuje to np PUN).
Najlepszym i najbardziej optymalnym rozwiązaniem wg mnie jest stworzenie serwerowego builda gry (tylko ze skryptami, bez grafiki, muzyki itp.), gracze
  • Odpowiedz
@zibizz1: dzieki, zajrze co ma do zaoferowania ten gamespark :)
@buhubuhu: thx, to mi troche rozjasnia, nie bylem pewny czy moge taki serwer napisac samemu w unity i c# czy musze uzywac jakis innych jezykow/engine.
@Klamczuszek: dzieki za odpowiedz - w takim razie steam raczej nie obsluzy tego co mam w głowie.
  • Odpowiedz
@psyhatog: możesz napisać sam, nawet musisz sam. Nie licz na żadne tutoriale z YouTube, wszystkie są słabe.
Chociaż na Twoim miejscu bym się jeszcze wstrzymał bo Unity pracuje nad jakimś multiplayerowym rozwiązaniem opartym na DOTS także niedługo może się pojawić jakiś gamechanger w tym temacie.
  • Odpowiedz
@psyhatog: Nie pakuj się w GameSparks. Już sami ich inżynierzy mówią, że od czasu przejęcia przez Amazona nie jest rozwijany prawidłowo. Osobiście proponuję następujące BaaS, w kolejności: Firebase, Playfab, ChilliConnect. Ekspertów wyżej nie słuchaj, bo nie doczytali co faktycznie chcesz zrobić, więc nie pakuj się w żadne Mirrory, Bolty i tym podobne. Potrzebujesz jedynie napisać klienta gry jak zwykłą grę Unity, która będzie się komunikować z jedną z powyższych usług,
  • Odpowiedz