Quetzacotl
-
Postów
255 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez Quetzacotl
-
-
gdzie wy macie tego screena? oO
-
Ranmus robiłem gre w stylu globulosa, ale z kolizjami GMa mozna sobie darowac. Ciagle cos sie blokowalo, zacinalo. Nawet napisalem wlasny skrypt odpowiadajacy za kolizje i odbijanie sie we wlasciwe strony, wykorzystujac przy tym rozne sinusy,cosinusy itd. Ciagle byly problemy w tym, ze cos sie gdzies blokuje.
-
no mozna na obiektach, ale wtedy tekst skladajacy sie z 200 znakow oznacza 200 obiektow i komp nam wybuchnie :D
-
Jeśli jest max dwoch gracyz to nie uzywasz zadnych player find, po prostu w miejscu gdzie bedzie mplay_create_session dasz, global.player=1; a tam gdzie sie dolacza czyli mplay_join_session bedzie global.player=2;, jesli chcialbys wiecej playerow to musialbys zrobic wlasny system identyfikacji kazdego nowego playera. Tzn taka petla ktora by wyszukiwala najmniejszy wolny id i nadawala go graczowi.
I pamietaj, ze na mapie gracza ktory dolaczal nie ma byc zadnych obiektow ustawionych na poczatku, bo one beda sie tworzyc dopiero jak powstana na serverze, zgodnie z funkcja.
Aha jeszcze jest taka sprawa, ze klient musi ciagle wysylac polozenie swojej postaci do servera a server ja odczytywac.
Co do image_single, ja mam GM6.1 i działa image_single jak i zarowno image_index.
-
BigShark patrzac na Twoje poprzednie projekty 3D typu Cairo to jestem wrecz pewien, ze nie bedzie ;d
-
tez nie mam pojecia jak to zrobic
-
to nie jest problem, pytanie czy gra jest tego warta, a jakos watpie
-
pewnie bym umiał ale srednio widze pilke nozna w fpp
-
gdybys mial slownik z wyrazami ktore sa dostepne w literakach to mysle ze to jest spokojnie mozliwe do zrobienia, z tym, ze musialbys sam aktualizowac plansze w tym programie tak aby odpowiadala tej z gry.
-
Little Fish zbdury gadasz, wlasnie w tej chwili wchodzi moda na robienie gier opartych na javie, czemu? bo chociaz, ze jest wolniejsza od c++ to jest duzo bardziej funkcjonalniejsza i wygodniejsza, a jako, ze komputery ciagle sie rozwijaja i procesory sa coraz szybsze to pisanie w jezyku wolniejszym nie bedzie robilo roznicy.
Dużo jest dobrych silników. Zassaj Ogre3D i pokaż jak łatwo robić gry pod gotowym engine.wiesz co to jest proownanie? sprobuj zrobic gre od podstaw a gre na gotowym silniku. Zreszta zrobienie gry/moda na silniku Half Life 1 trudne nie jest, oczywiscie zalezy to od tego jaka chcesz gre zrobic.
-
jesli masz przeszkadzajki to zrob tak, aby if host=1, czyli server, wysylal informacje o polozeniu kazdej z nich. Problemem jest to, ze wszystkie one sie tworza praktycznie jednoczesnie na poczatku gry, jesli ich ilosc jest stała to wteyd nie ma problemu bo i host i klient mają takie same id dla kazdego obiektu, ale jak sadze w Twojej grze sa przeszkadzajki ktore czyms strzelają, a to są dodatkowe obiekty ktore rowniez musza byc brane pod uwage. Wtedy jest b. proawdopodobne, ze id sie zgadzac nie beda.
Jak to zrobic: kazdemu rodzajowi przeszkadzajki dajesz w event create wyslanie message do klienta. Message ten musi zawierac 5 wartosci: x, y, id, object_index i image_single, Jako, ze normalnie jedna wiadomoscia mozesz wyslac jedna wartosc to proponowalbym uzycia kompresji o ktorej juz moiwlem, ale jesli nie chcesz to musisz wyslac 5 wiadomosci pod rzad. Nadajesz tym wiadomosciom dajmy na to id 1, ktore bedzie oznaczalo, iz powstal nowy object. Klient musi miec obj ktory ma w stepie ustawione sprawdzanie nowych wiadomosci i jesli wiadomosc ma id=1 to znaczy ze powstal obj. Wtedy taki klient zaleznie od tego czy wysylasz 5 wiadomosci pod rzad czy skompresowales odbiera wszystkie te 5 wartosci, nastepnie idd=instance_create(x z wiadomosci,y z wiadomosci,object_index ktory pobrales z wiaodmosci), potem
idd.image_single=image_single ten ktory pobrales;
idd.idd=id ktory pobrales;
I w tej chwili masz stworzony object w tym miejscu w ktorym stworzyl sie na serverze, masz rowniez id tego objectu.
Trzeba zaznaczyc, ze akcja w CREATE z wysylaniem wiadomosci zachodzi tylko wtedy if host=1
Skoro mamy juz stworozny obiekt to teraz trzeba ciagle odczytywac jego polozenie. Takze dla tego obiektu w akcji STEP
if host=1
najpierw wysyla wiadomosc z id obiektu (dajmy na to, ze ten message bedzie mial id=2) do klienta a nastepnie
wysyla wiadomosci z 3 wartosciami: x,y i image_single.
teraz akacja dla obiektu ktory bedzie u klienta
if host=0
odbiera pierwsza wiadomosc, sprawdza czy id wiadomosci=2 jesli tak to jesli mplay_message_value=idd
oznacza, ze jest to wiadomosc od naszego obiektu i wtedy odbieramy dalsze wiadomosci. Wiadomosci ktore odbierzemy czyli x, y i image_single oczywiscie od razu aktualizujemy i obiekt ma dzieki temu nowe polozenie i aktualny sprite. I tak w kolko obiekt u hosta bedzie wysylal swoje dane a obiekt u klienta ciagle odczytywal. W ten sposob kazdy zrobisz z kazdym obiektem. CZyli:
w akcji CREATE
if host=1
wysylasz 5 wartosci: x,y, id, image_single i object_index.
w akcji STEP
if host=1
wysylasz id a nastepnie 3 wartosci: x,y, image_single
if host=0
odczytujesz pierwsza wiadomosc, sprawdzasz id wiadomosci, jesli id=2 to odczytujesz value i sprawdzasz czy pasuje do twojego idd, jesli tak to odczytujesz reszte wartosci i apdejtujesz.
: D
-
Jak juz jest gotowy silnik typu np Source to nie jest problemem zrobic gre. Bo praktycznie caly fundament masz gotowy, zmieniasz tylko kod rozgrywki na swoje potrzeby, mapy robisz w VHE a wszelkie potrzebne moduly typu Multiplayer masz gotowe i tylko je dodajesz.
-
a od kiedy wszystkie pliki map sa w bsp, bsp to rozszerzenie dotyczace silnika Quake 2, Half Life i Source. Do ich edycji sluzy Valve Hammer Editor, GMem tego nie otworzysz, choc teoretycznie to mozliwe.
-
do tego uzywa sie tak zwanych dummy, generalnie w mmorpgach.
Jest obiekt ktory ma tak jakby symulowac innego gracza, gdy doalcza nowy grasz to ten obiekt zostaje tworzony i w stepie sobie odczytuje pozycje non stop. Dummy ma przypisane id gracza lub jego name i odbiera wiadomosci tylko od tego konkretnego gracza.
Nie wiem jak ma wygladac Twoja gra, jezeli ma byc rozna ilsoc graczy, np od 2 do 10. TO radze uzywac tego sposobu, jesli tylko dwoch to lepiej zrob to tak jak jest w przykladzie na gamemaker.nl
-
na win98 nie ma tego problemu
-
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
-
to moze najpierw przeczytaj podstawowe komendy dotyczace multi a potem sie pytaj jak je wykorzystac
-
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.
-
nie zrobisz rtsa nie znajac podstaw, zreszta znajac podstawy tez rtsa nie zrobisz
-
wszystko sie da, tylko trzeba sie nauczyc. Przeczytaj HELP'a a jesli nie znasz ang no to... nic nie poradzimy, bo nie mozna do konca zycia Ci dyktowac komend.
-
Jak stworzyć grę typu MMORPG?
Naucz się najpierw robić platformera.
-
Jest tam pare efektow, wydaje mi sie nie jego autorstwa. Po za tym sterowanie jest wg mnie strasznie uciazliwe, jak wyrzucilem bron na sciane to bylem bezbronny ;d wpisywanie kodu zrobione w zbyt banalny sposob.
-
ja bym sie jednak upieral przy tym, ze dzieki dobrej znajomosci kodu praca jest duzo latwiejsza i co najwazniejsze szybsza.
-
4) Za pomocą specjalnych funkcji (poszukaj w help) czyść pamięć z zasobów już nieużywanych.
z tego co czytałem to da sie wyczyscic pamiec tylko z soundow
Zaznaczanie tekstu
w Pytania początkujących
Opublikowano
Ty chyba nie wiesz o czym mowa