Skocz do zawartości

Multiplayer, od czego zacząć?


Jarkoz94pl

Rekomendowane odpowiedzi

Witam,

Od jakiegoś czasu bawię się w pisanie prostych gier ale w końcu przyszedł czas na coś bardziej skomplikowanego. Chciałbym stworzyć grę typu RTS. Wszystkie plany, założenia jak, co i gdzie, już mam. Problem w tym, że nigdy jeszcze nie robiłem gry wieloosobowej (do grania przez internet a nie na jednym kompie), i nie wiem dokładnie jak to ma wyglądać od strony programowania. Znalazłem 400minutory poradnik jak robić połączenie serwerowe w GM ale mam obawy co do pewnych rzeczy. Poradnik ten jest stworzony pod platformówkę a nie grę strategiczną. Może nie przedłużając opiszę w kilku punktach moje obawy, i pytania.

1-na co powinienem uważać przy tworzeniu jednostek tak by nie było jakiś głupich błędów w multi np. że bym mógł zaznaczać wrogie albo i sojusznicze ale nie moje jednostki. (mianowicie jak uniknąć tworzenia identycznych jednostek ale przypisanych innym graczom)

2- jak zrobić by do gry mógł dołączyć każdy kto ma kopię klienta a nie tylko osoby z ip. wpisanym ręcznie w serwer?

3-co robić bym widział tylko jednostki swoje i sojuszników a wrogie tylko na radarze w postaci kropek?

4- czy system GM udźwignie bez zacinania, grę w której będzie np. 300 jednostek na raz (czyli jakieś 500 obiektów wyświetlanych w jednym momencie)?

5- da się stworzyć taką grę dla jednego gracza a następnie w prosty sposób przenieść ją do multi czy prościej będzie jednocześnie wszystko wprowadzać w multi?

 

Oczywiście jeżeli coś w moich pytaniach jest nie jasne albo wymagają skonkretyzowania to postaram się to naprawić i jestem otwarty na propozycje, gdyż gry jeszcze nie zacząłem (również ze względu na to, że chciałbym sobie uprościć zadanie i nie musieć po miesiącach pracy czegoś poprawiać bo się okaże, że do multi trzeba było coś robić inaczej).

 

Za wszelką pomoc z góry dziękuje.

Odnośnik do komentarza
Udostępnij na innych stronach

No więc tak. Zacznę od podstaw: Nie da się najpierw napisać gry a potem dorobić do niej multiplayer. Ale w drugą stronę też to nie działa. Zadajesz naprawdę podstawowe pytania (o rozróżnianie jednostek, ilość obiektów) które świadczą o tym że gry RTS też nie robiłeś.

Zakładam że masz jeszcze przed sobą 4 lata zanim będziesz mieć działający prototyp multiplayer gry RTS, oczywiście o ile po drodze się nie poddasz.

 

Zacznij od obejrzenia całego tamtego tutorialu. I każdego innego jaki znajdziesz. Pomogą ci one zrozumieć w jaki sposób w ogóle zarządza się informacjami w grach multiplayer.

 

A teraz do pytań.

1 i 3. Każda jednostka kusi pamiętać kto jest jej właścicielem. To wszystko. Wystarczy jedna zmienna.

2. Potrzebujesz serwera lobby. Są chyba dwa sposoby:

Jeden to taki że gracze łączą się z jednym serwerem który zarządza komunikacją, ale wtedy serwer jest bardzo obciążony.

Drugi to taki że gra łączy się z serwerem a serwer jedynie pamięta adresy IP ludzi grających. Wtedy można z tej listy wybrać adresy i połączyć gracza do innego gracza który hostuje.

4. Mi się udało płynnie zasymulować 12000 obiektów używając Pentium 4. Ale to były proste obiekty które tylko latały, rysowały się i sprawdzały kolizje. Jeżeli każdy z twoich obiektów ma wyliczać patchfinding, AI strzelania i inne obliczenia to możesz mieć problemy z nawet 300 obiektami.

Wszystko zależy od optymalizacji, a to już odrębna dziedzina.

Odnośnik do komentarza
Udostępnij na innych stronach

A więc się da (: To dla mnie najważniejsze. A co do tego czy robiłem już RTS to nie, nie robiłem a jak dotąd zajmowałem się naprawde prostymi projektami na które nie miałem tak na prawdę pomysłu (: więc szybko je porzucałem, ale chociaż nauczyłem się trochę jak działa GM.

Ten projekt też nie będzie zbyt skomplikowany (z początku) zwykły RTS 2d widziany z góry w celu oszczędzenia sobie projektów 3d obiektów. I tak na prawdę przeraża mnie tylko programowanie tego multiplayera.

Odnośnik do komentarza
Udostępnij na innych stronach

No dzięki, nie ma to jak dobra motywacja ): ale czemu nie mogę po prostu stopniowo dochodzić do idealnego RTS-a. W teorii wiem jak co ma działać ( i to nie na zasadzie że ma strzelać a drugi ma otrzymywać obrażenia tylko bardziej programistycznie) a jeżeli nie wiem to dociekam tego wszędzie. Raczej się nie poddam jeżeli coś przez długi czas nie będzie wychodzić bo to mnie tylko bardziej determinuje do działania. (nie znoszę zostawiać czegoś zepsutego). A i w moim mniemaniu nie da się zrobić RTS-a w singlu więc nie widzę sensu w jego tworzeniu, nawet w celach naukowych. Wolałbym już w multi stopniowo naprawiać błędy lub rozwiązywać problemy.

Odnośnik do komentarza
Udostępnij na innych stronach

Tylko tu oto chodzi że do stworzenia multiplayera potrzebujesz mieć od samego początku przygotowany pełen szkielet gry. Nie możesz nagle w połowie projektu sobie wymyślić że jednostki będzie można ulepszać, albo że jednostki mogą się trasformować i z robić jedną dużą z kilku małych.

Przy projektach multiplayer nie ma też łatania bugów. Wszystko musi być zrobione za pierwszym razem, albo napisane od nowa.

 

I spokojnie, gdybyśmy chcieli cię zdemotywować to od razu powiedzielibyśmy ci że to jest niemożliwe do wykonania. Bo nie masz fizycznej możliwości teraz usiąść do tego projektu i za x lat go oddać. Nie ważne jak uparty będziesz to będziesz musiał go zaczynać od nowa poprawiając wszystko od nowa na podstawie tego co się przed chwilą nauczyłeś.

 

Jeżeli chcesz to zacznij od prostego design documentu w którym opisz najważniejsze zasady gier RTS. Nie twojej gry, ale jakiejś na której chcesz się wzorować. Jak buduje się jednostki? Jak kontroluje się jednostki? Jaki jest cel gracza? etc.

Jeżeli po odpowiedzi na jakiekolwiek pytanie pojawi się więcej pytań to też musisz na nie odpowiedzieć. I pisz tak długo aż nie będzie więcej pytań.

Jeżeli dasz to koledze a on przeczyta że "aby poruszać jednostkami trzeba je zaznaczyć a następnie wybrać ich cel" a nie opiszesz nigdzie co znaczy "zaznaczanie jednostek" i co znaczy "cel" to znaczy że nie potrafisz tego jeszcze zrobić bo nawet nie pomyślałeś o takim elemencie.

 

Tam wyżej w poprzednim poście napisałem

masz jeszcze przed sobą 4 lata zanim będziesz mieć działający prototyp
To się tyczy prototypu, nie gry. Prostego połączenia dwóch graczy gdzie będzie kilka obiektów z własnym HP i które będzie można poruszać i niszczyć.

Po pytaniach jakie zadałeś oceniam że aby ukończyć Multiplayer RTS potrzeba Ci ok 12 lat programowania po godzinach. Tak. To było demotywujace. Teraz udowodnij że się mylimy.

Odnośnik do komentarza
Udostępnij na innych stronach

No to do usłyszenia za 12lat (:

A tak na serio to na wypadek, gdybym otrzymał taką odpowiedź, że nie da się najpierw zrobić singla a dopiero później multi, nie zaczynałem jej jeszcze i właśnie planowałem spisać dokładnie cały ten szkielet gry. Na razie nie mam czasu ale ciągle myślę o różnych aspektach i tym jak je rozwiązać a jak go stworzę to chętnie się z wami nim podzielę (: Człowiek rzadko kiedy widzi jakie błędy popełnia a wy tu macie ogromne doświadczenie i cenię sobie wasze rady.

 

PS: Może znajdę sobie kogoś od pomocy.

Odnośnik do komentarza
Udostępnij na innych stronach

No właśnie to jest ta głupia sytuacja.

 

Nie da się napisać gry a potem przerobić ją na multiplayer.

Ale też nie da się napisać gry multiplayer jeżeli wcześniej się nie napisało takiej gry.

Odnośnik do komentarza
Udostępnij na innych stronach

Tym bardziej najpierw spróbuj singlowy RTS. Serio bardzo Ci to radzę.

 

Zrób prototyp, 5 budynków, 3 jednostki, 2 surowce, prosta walka. Wyjdą Ci dzięki temu pierwsze rzeczy o których wcześniej nie myślałeś.

Wstaw tą gierkę za miesiąc na GMClan :)

Odnośnik do komentarza
Udostępnij na innych stronach

Oczywiście że da się przerobić gotową grę na multiplayer. Niestety trzeba być już znacznie bardziej doświadczonym i od początku umieć budować kod tak by potem dało się go przerobić na multi( Choć mam tu oczywiście na myśli tak naprawdę sklonowanie gry w grze i budowanie multi w opraciu o to co już zakodziłeś tylko w logice multi ).

W takim przypadku GM jest jednak złym wyborem i w tym programie nie wyobrażam sobie innego podejścia jak od razu pisać pod multi.

 

Tak naprawdę napisanie bardzo prostego RTSa w wersji z multi może być w twoim zasięgu już teraz. Musisz jednak wszystko ograniczyć do minimum i potraktować to jako naukę jednocześnie multi i podejścia do gier rts. Gwarantuję Ci że nawet gdy będziesz zaawansowany to przy bardziej skomplikowanych projektach które nie są bardzo dokładnie rozplanowane czeka Cie wielokortne kasowanie projektów i przepisywanie ich od nowa. Takie życie : f

Odnośnik do komentarza
Udostępnij na innych stronach

Kiedyś usłyszałem takie powiedzenie, że 10min planowania zaoszczędza godzinę działania. Trzymam się tego sumiennie i już w poprzednich projektach zauważyłem, że dopuki nie obmyśli się całego projektu, nie ma co zaczynać. Moje projekty zawsze ograniczam do minimum, działa, to upgrade-uje o kolejne funkcje.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...