Skocz do zawartości

Gra przez Internet


Rekomendowane odpowiedzi

Potrzebuje pomocy... i to sporej... wciąż nie umiem pojąć jak sie robi gry do neta... a konkretnie to che te moje Mario & Luigi przerobić tak zeby dało sie grać na necie... bo wiadomo... skoro jest tylko na dwóch.... tak więc czy jest ktośtak mądry i dobry kto podjął by sie tego zadania (ciekawy cytacik "O każdej porze Bigshark zawsze wam pomoże") prrosze

Jeszcze raz mi któryś nazwie temat "help", "pomocy" albo jakoś podobnie, to wlepię warna i wywieszę delikwenta na rynku za... nogi.

Patrysław

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz uruchomić gre na stronie www ściągnij G-Jave masz ją na www.gmxxl.ovh.org

Jeśli chodzi o multiplayer to na oficjalnej stronie GMa (www.gamemaker.nl)masz przykład gry internetowej,ale wtedy musisz postawić serwer.

Odnośnik do komentarza
Udostępnij na innych stronach

teraz mi mówisz jak juz ściągam jakiś plik z tamtej myśląc że to Gjava xD

 

ee... mam w tym błąd "system error... brak modułu" jakoś tak

 

Chwilunia ale to jest jak zrboić gre online w sensie że na stronach html... a nie ze multi przez net!! To dowaliłeś wiesz...dzięki... :/

Odnośnik do komentarza
Udostępnij na innych stronach

bobo... ten przykład to największa lipa jaka jest... owszem dowiedzialem sie z niego jak zrobić zeby se dwie kulki lazily... a nawet postaci... ale jak przychodzi do tworzenia obiektów w czasie gry czy nawet zsynchronizowania chodzących wszędzie przeszkadzajek to jest d...a za przeproszeniem :/

 

Na gmclan jest przykład dotyczący jak zrobić gre przez neta!

BTW. A co to strony HTML? :huh: Ja takiego czegoś nie znam lol:P

 

Lol.. o strony www mi chodzilo chyba logiczne...

 

Kurde dalej nikt mi nie odpowiedział na pytanie... a czy wie ktoś z was jak zrobić żeby gra kontrolowała sychronizacje przeszkadzajek i np jak cos wystrzeliwuje to zeby to sie też u inncyh graczy tworzyło...

Odnośnik do komentarza
Udostępnij na innych stronach

Jesli gra dzieje sie ciagle w jednym roomie, a zakladam, ze tak bo to mario. To server (czyli ten kto zaklada gre) musi non stop zapisywac polozenie wszystkich obiektow ktore sie poruszaja do mplay_data lub wysylac message do drugiego playera z tymi danymi. Bedziesz tutaj potrzebowal jakiejs funckji archiwizujacej dane aby w jednej wiadomosci zmiescic wszystko:

Pakuje dane, np data=pack(1)+pack(2)+pack(6)+pack(253)

i dzieki temu pod zmienna data bedziesz mial 4 wartosci

var byteA,byteB; 
byteA = (argument0 div 255)+1; 
byteB = (argument0 mod 255)+1; 
return chr(byteA) + chr(byteB);

 

Odczytujesz to w ten sposob:

dat=unpack(data,1) tutaj dat=1

dat=unpack(data,4) tutaj dat=253

Po prostu pierwszy argument to zmienna w ktorej sa zarchiwizowane dana, a druga to numer wartosci ktora chcesz wyciagnac, numery sa przyznawane w tej kolejnosci w ktorej pakowales dane.

var byteA,byteB; 
byteA = ord(string_char_at(argument0,argument1*2-1))-1; 
byteB = ord(string_char_at(argument0,argument1*2))-1; 
return (byteA*255)+byteB

Oczywiscie zakldamy ze skrypt do pakowana ma nazwa pack, a do rozpakowywania ma nazwe unpack.

Odnośnik do komentarza
Udostępnij na innych stronach

zebyśtak nie mędrkował a wymyślił jak zrobić te gre multi... ooo to byś sie popisał.

 

Troszke słąbo kumam... jak mam archiwizować dane? Jak zrobić zeby P1 - serwer - zapisywał dane o pozycji wszystkich ruszających si rzeczy oprocz gracza 2 i wysyłąte pozycje do P2 - klienta - a te przeszkadzajki odpowiednio czytały swoje pozycje :|

 

Sorka ale ja w sprawach multi to umiem nie wiele... tylko tyle żeby było dwóch graczy co se chodzą... coś w stylu ponga tylko umiem zrobić :(

 

EDIT:

Może niech ktoś zrobi przykład prostej platformówki net play ale cos wiecej niz tylko postaci... zeby było jeszcze cos czym sie nie steruje co porusza sie samo...

Odnośnik do komentarza
Udostępnij na innych stronach

To naprawde dużo umiesz. Pomyśl, to bardzo łatwe.

 

mplay_message ...

 

EDIT

No powaga :) To są tylko podstawy (chodzi o mplay_data_write i read) i do tego komplenie nie przydatne w grach gdzie obiekty (więcej niż 2) zmieniają swoją pozycję. Weź kartkę i rozpisz sobię wszystko, tylko naucz się GMLa :P

Odnośnik do komentarza
Udostępnij na innych stronach

To naprawde dużo umiesz. Pomyśl, to bardzo łatwe.

 

To sarkazm czy powaga??

 

cos z messegami? zaraz odpale GM i obadam troche xD

 

EDIT:

 

no to fajnie... umiem GMla jeśli chodzi o gry na pojedyńczym kompie... ale jeśli chodzi o net to cienko.

 

no to mam taką funkcje

mplay_message_send(player,id,val) służy do wysyłania jakichś danych... jak używać w niej ID? to ma być id obiektu czy jakies inne? playyer?? nazwa gracza? no a val no to wiem akurat xD

o co biega w tej samej opcji ale guaranteed??

 

mplay_message_receive(player) - odbiera wiadomość ok...

wszystko ładnie ale...

ja nadal nie wiem jak tu użyć tych funkcji :(

Odnośnik do komentarza
Udostępnij na innych stronach

Czytaj dokładnie helpa :)

for(n=0;n<mplay_message_count(0);n+=1;)
{
    mplay_message_receive(0);
    
    m_id = mplay_message_id(); //Identyfikator wiadomosci
    m_value = mplay_message_value(); //Wartosc
    m_player = mplay_message_player(); //Numer gracza
    
    //Tu wykonanie kodu na podstawie odebranych wiadomosci.
    switch (m_id)
    {
        case 1: x+=1; break;
        case 2: y+=1; break;
        
        default: break;
    }
}

mplay_message_clear(0);

Chyba się nie pomyliłem.

 

EDIT

Quetzacotl, to tylko taki mały przykład :P Nie podam mu całego, gotowego kodu :]

Odnośnik do komentarza
Udostępnij na innych stronach

ja bym to zrobił inaczej w stepie dajesz sprawdzanie czy sa wiadomosci jak sa, to sprawdzasz jakie mają id (dzieki id wiesz jakie informacje maja dla ciebie), jesli np id=2 co dajmy na to bedzie oznaczalo u ciebie przyjscie wiadomosci z chata to wtedy robisz akcje dodania tej wiadomosci do swojego okna chata

Odnośnik do komentarza
Udostępnij na innych stronach

No oki trocszeczke załapuje... ale jak zrobić żeby każda postać (nawet tego samego rodzaju (np goomba)) wysyłała swoją pozycje do tej drugiej gry i zeby odpowiedni goobma dawał pozycje odpowiedniej goombie w grze nr2 cos z funkcją for??

 

 

EDIT:

ech... Przydałby sie przykłąd :(

 

Co to jest chr() i string_char_at()

Odnośnik do komentarza
Udostępnij na innych stronach

no to biore sie za kombinowanie z twoim kodem tymon... choc słabo go rozumiem... doskonale czaje w tym odbieranie messagów ale te wysyłanie cos nie wchodzi mi :/

 

EDIT: I zastanawia mnie dlaczego jest to wszystko w for(n=0;n<mplay_message_count(0);n+=1;) ... po co to ma liczyc ilosc wiadomosci ;|

Odnośnik do komentarza
Udostępnij na innych stronach

Wystarczyło przejrzeć helpa, żeby wydedukować do czego służy każda linjka ;) Pozwoliłem sobie dodać komentarze do kodu Tymona:

for(n=0;n<mplay_message_count(0);n+=1;)//używając pętli for, definiujemy zmienną n równą zero, sprawdzamy czy n jest mniejsza niż liczba wiadomości przesłanych przez użytkownika, a jeżeli warunek jest prawdzimy, zwiększamy n o 1. Jeśli warunek jest fałszywy, wykonujemy instrukcje w nawiasach klamrowych.
{
    mplay_message_receive(0); // odbieramy wiadomość od gracza
    
    m_id = mplay_message_id(); //Identyfikator wiadomosci
    m_value = mplay_message_value(); //Wartosc
    m_player = mplay_message_player(); //Numer gracza
    
    //Tu wykonanie kodu na podstawie odebranych wiadomosci.
    switch (m_id) // jeśli zmienna m_id wynosi:
    {
        case 1: x+=1; break;// 1, do pozycji x obietu dodajemy 1 
        case 2: y+=1; break;//2, do pozycji y obietu dodajemy 1 
        
        default: break;
    }
}

mplay_message_clear(0);

Odnośnik do komentarza
Udostępnij na innych stronach

dlaczego ma sie dodawać po 1 do X??
Z prostej przyczyny: aby wkonane zostały instrukcje w nawiasach, n musi być większe lub równe od liczby wysłanych wiadomości ( mplay_message_count(0) ). Początkowa wartość n to 0, więc musimy stopniowo ją zwiększać :)

Co do wysyłania zapraszam do helpa :) Dział The Game Maker Language (GML) -> Multiplayer games -> Messages. Dla przykładu: aby wysłać wiadomość używamy komendy:

mplay_message_send(nazwa_gracza-0 aby wysłać do wszystkich graczy,id_wiadomości,wartość)

Odnośnik do komentarza
Udostępnij na innych stronach

LoL... ładnie ładnie ale... Dark Maximal nie zrozumiałeś pyatania. Ja pytałem dlaczego ma sie po 1 do X dodawać a nie do n... to akurat rozumiem ale po co te x+=1; i y+=1; ja nie che by u drugiego gracza obiekt przesówał sie po skosie w prawo i w góre tylko zeby miał taką samą pozycje jak w mojej grze :P

Odnośnik do komentarza
Udostępnij na innych stronach

Lol wiem ze wysyłać trzeba mplay_message_send(player,id,val) - to czaje ale jak ma wyglądać to żeby brało oddzielnie pozycje każdej postaci nawet tego samego rodzaju i dawało ją dla odpowiedniej jednostki? chodzi mi o to zeby np nie pobrało pozycji goomby z końca planszy i dało tą pozycje tej goombie która jest na początku czaicie!!??

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Warto by było wysłać unikalne id obiektu, nieprawdaż? :) A potem klient sprawdza czy obiekt o danym id istnieje i jeżeli tak, to przypisuje mu pozycję. :) Nigdy nie robiłem gier sieciowych, więc dokładniej to nie powiem.

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