Skocz do zawartości

Quetzacotl

Użytkownicy
  • Postów

    255
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Quetzacotl

  1. gdzie wy macie tego screena? oO
  2. 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.
  3. no mozna na obiektach, ale wtedy tekst skladajacy sie z 200 znakow oznacza 200 obiektow i komp nam wybuchnie :D
  4. 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.
  5. BigShark patrzac na Twoje poprzednie projekty 3D typu Cairo to jestem wrecz pewien, ze nie bedzie ;d
  6. tez nie mam pojecia jak to zrobic
  7. to nie jest problem, pytanie czy gra jest tego warta, a jakos watpie
  8. pewnie bym umiał ale srednio widze pilke nozna w fpp
  9. 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.
  10. 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. 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.
  11. 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
  12. 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.
  13. 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.
  14. 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
  15. Quetzacotl

    Głupawy problem...

    na win98 nie ma tego problemu
  16. 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
  17. to moze najpierw przeczytaj podstawowe komendy dotyczace multi a potem sie pytaj jak je wykorzystac
  18. 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.
  19. nie zrobisz rtsa nie znajac podstaw, zreszta znajac podstawy tez rtsa nie zrobisz
  20. 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.
  21. Quetzacotl

    Robimy FAQ

    Jak stworzyć grę typu MMORPG? Naucz się najpierw robić platformera.
  22. 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.
  23. ja bym sie jednak upieral przy tym, ze dzieki dobrej znajomosci kodu praca jest duzo latwiejsza i co najwazniejsze szybsza.
  24. z tego co czytałem to da sie wyczyscic pamiec tylko z soundow
×
×
  • Dodaj nową pozycję...