Skocz do zawartości

Multiplayer i centrowanie ekranu


Rekomendowane odpowiedzi

Witam wszystkich :bye1:

 

Mój problem jest następujący : tworzę grę multiplayer ale nie wiem jak zrobić, aby ekran podążał za każdym z graczy osobno ( np. na moim komputerze miałbym kierowaną przez siebię postać w centrum ekranu a inny gracz w centrum widziałby swoją postać ). Przez vievs'y się tego na pewno nie da zrobić ( poprawka : Bigshark umie więc musi się dać ) - wszyscy gracze mają w centrum ekranu tylko jedną postać a nie swoje.

 

Bardzo proszę o pomoc, gdyż bez tej wiedzy nie mam jak dalej tworzyć gry ( trzeba najpierw znaleźć rozwiązanie a dopiero potem robić dalej ).

 

Pozdrawiam

 

Ps. Przeszukałem forum zarówno te jak i innne - i nir znalazłem niczego co by mi pomogło :(

Odnośnik do komentarza
Udostępnij na innych stronach

KŁOJTE " Przez vievs'y się tego na pewno nie da zrobić"

 

Nie bądz taki cfany, ja np. umiem to zrobić poprzez Viewsy. Mam conajmniej kilka takich przykłądów w uploaderze. Pamietajcie że zanim zakładacie temat z prośbą o pomoc najpierw przeszukajcie mój uploader

Odnośnik do komentarza
Udostępnij na innych stronach

"Ja ci mogę pokazać drzwi, sam musisz przez nie przejść" - tak, Bigshark nakierowałeś mnie na swój uploader ale jest mały problem - albo ja oślepłem albo tam rzeczywiście nie ma tam pliku który pomógłby rozwiązać mi mój problem. Są co prawda przykłady w kórych zastosowano śledzenie obiektu ale tylko jednego więc nie wiem jak może mi to pomóc w moim projekcie.

Odnośnik do komentarza
Udostępnij na innych stronach

Zasada jest prosta.. Tworząc gre multiplayer musisz zawsze rozdzielić kod odpowiedzialny za hosta i klienta/klientów. Dzięki temu będziesz mógł wydzielic kod odpowiedzialny za tworzenie lub wyszukiwanie dostepnych gier. Kiedy już to zrobisz pozostaje Ci ustawić "sledzenie" obiektu gracza. Jeśli umiesz to zrobić z jednym obiektem wystarczy tylko dodać prosty if.

if host { sledz_obj_gracz_nr1(); } else {sledz_obj_gracz_nr2(); }

Odnośnik do komentarza
Udostępnij na innych stronach

chosen to działa w przypadku dwoch graczy ale przy wiekszej ilosci juz nie, wtedy trzeba uzyc tak zwanych "lalek". Twoja postac, obojetnie czy to klient czy host, jest zawsze tym samym obiektem a przeciwnicy sa generowanie na zasadzietakich marionetek, po prostu kazdy z graczy wysyla swoje polozenie do servera a server przesyla to polozenie do kazdego gracza, ty odczytujac polozenie kazdego gracza z osobna ustalasz polozenie "lalek" ktore udają Twoich przeciwnikow.

Takze w skrocie, masz dwa obiekty, ten ktorym Ty grasz i ten ktory udaje przeciwnikow (dummy). Obiekt gracza zawsze jest w centrum a ilosc dummy i ich polozenia okreslasz na podstawie tego co Ci przesyla server lub gracze(jesli Ty jestes serverem).

Odnośnik do komentarza
Udostępnij na innych stronach

Quetzacotl: To czy uzywasz lalek czy oddzielych obiektow nie ma absolutnie zadnego znaczenia. W obydwu przypadkach musze okreslic którym jestem graczem zeby host wiedzial którą lalke przesunąc. Kiedy wiem juz którym jestem graczem mogę juz sobie wybierac czy wyslac polozenie dla 6'stej lalki czy tez stworzyc na poczatku gry obiekt gracz6 i wysylac jego polozenie..

 

pablo1517: Ja identyfikowałem graczy na podstawie aktualnie obecnych juz w grze. Stworzylem tablicę w ktorej trzymalem id gracy. Każdy nowy dołączający sprawdzał ile osob juz gra i dzieki temu wiedział ktore pole w tablicy do niego nalezy. Wysylal swoje id do hosta ktory wpisywal go do odpowiedniej tablcy.. ot cala filozofia ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Choosen jesli zrobisz tylko jeden obiekt, to rozumiem, ze innych graczy bedzie prezentowal ten sam rodzaj obiektu ktorym Ty grasz i oczywiscie mozna to zrobic uzywajac id. Tylko, ze wtedy ty wciskajac jakis klawisz bedziesz ruszal nie tylko swoim obiektem ale i wszystkimi innymi na tym ekranie.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale możliwości jest całe mnustwo...

1) Mogę stworzyc oddzielne obiekty dla każdego gracza

2) Mogę stworzyć zmienną nr_gracza którą bede sprawdzał przed wykonaniem ruchu

3) Mogę odwoływać się do id obiektu

...

 

P.S. dawałem komus kod moich literaków ? Ma to jeszcze ktos ? Trudno o lepszy przykład do tego wątku...

Odnośnik do komentarza
Udostępnij na innych stronach

Mozna sie tak bawic, ale prawda jest taka, ze dummies to najrozsadniejsze rozwianie i jest w tej chwili uzywane w kazdym mmorpgu. Po prostu duzo mniej pamieci to zżera niz jakbys mial miec 20 obiektów i kazdy z tych obiektow mase zdarzen ktore i tak nigdy nie zachodzą bo zachodzą jedynie na obiekcie ktorym ty sterujesz.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Quetzacotl: Mała podpowiedź, tłumaczysz Choosenowi coś co zapewne wie, a wątek raczej dotyczy prostych i łatwych do zrozumienia technik w grach multiplayer, gdzie graczy jest maksimum 4 czy 8, a nie setki jak w mmorpg'ach, więc statyczne tworzenie paru obiektów będzie miało mały wpływ na wydajność (choć w gm, to może być jednak inaczej) a i dla typowego gm nooba bardziej logiczne. ;)

 

Poza tym co szkodzi zrobić jeden obiekt z systemem generatora w create, który tworzy z tego obiektu albo gracza albo "lalkę" zależnie od sytuacji? W sumie najlepsze by było dziedziczenie na zasadzie - obiekt online -> gracz / laleczka, czyli 3 obiekty, lub obiekt laleczka -> gracz.

Odnośnik do komentarza
Udostępnij na innych stronach

Nazbierało się trochę tych odpowiedzi.Wielkie dzięki za tak liczny odzew :)

 

Ranmus : "dla typowego gm nooba" - temu nie zaprzeczę, jeżeli chodzi o multiplayer to jestem całkowitym nowicjuszem dopiero zaczynającym się tym zajmować.Tworzyłem najpierw w singlu a potem postanowiłem na przerzucenie się na multi ( na singlu nawet fajne gierki zaczęły powstawać, choć tak naprawdę żadna z nich nie została nigdy opublikowana szerokiej publiczności - wszystkie służyły mi jako "chomikowanie" doświadczenia i wykorzystania go w jednym projekcie który miał być już porządną grą.Teraz te doświadczenia będą wykorzystywane w multi choć sporo mi ich jeszcze brakuje ).

 

Stwierdziłem też, iż nie ma na razie sensu porywać się z motyką na Słońce - na dzień obecny nie zrobię multi na kilkanaście/dziesiąt osób a nie będę wymagał, by ktoś inny zrobił kod do takiej gry ( z tego co słyszałem to trzeba dużo roboty w to włożyć - ale wszyscy zaawansowani pewnie od dawna o tym wiedzą więc to nie nowość ).

 

Prostego multi uczę się z przykładu Tymona ( nowicjuszom bardzo się przydaje na początek ), ogólnie cały projekt gry bazuje na tym kodzie.Jednak wciąż nie umiem zrobić tego centrowania ekranu na każdym z graczy - nawet w multi tylko na 2 osoby ( jakie to noob-owskie ).Prosiłbym każdego kto ma czas i chęci aby zajrzał do oryginalnego przykładu Tymona ma multiplayer ( przykład Tymona ) i powiedział mi gdzie trzeba wstawić odpowiedni kod.

 

Z góry dziękuję ( i za ten odzew i za kod jeżeli ktoś takowy postanowi dorobić do tego przykładu ) :)

 

Ps. Aha jeszcze jedno - w tym przykładzie nie było potrzeby robienia centrowania ekranu, ale w moim projekcie bazującym na kodzie tego przykładu jest mapka takich rozmiarów, że bez tego centrowania ani rusz ( został praktycznie sam kod na multi, reszta pozmieniana ).

Odnośnik do komentarza
Udostępnij na innych stronach

Temat można zamknąć, znalazłem już sposób na rozwiązanie mojego problemu :) . Wielkie dzięki dla tego ( nie pamiętam nicka ) kto podał w jakimś temacie o mmorpg 2 linki do przykładów z zagranicznego forum - w jednym z pliczków znalazła się też strzelanka z lotu ptaka na multi i to z niej podpatrzyłem sposób w jaki zrobione jest centrowanie ekranu na każdym z graczy osobno.Podziękowania też dla osób które starały mi się pomóc - ale nie pomogło mi to tylko dlatego, że jeżeli chodzi o multi to jestem nowicjuszem a nie dlatego, że wskazówki były błędne :) . Jak znajdę linka do tego posta z przykładami to tu wkleję, będzie bardzo przydatny dla osób zaczynających z multi.

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ę...