rzepek
-
Postów
7 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez rzepek
-
-
Dołączę się do tematu, sam chciałem identyczny założyć i ten rozwiązał mój problem. i takie pytanie...
Czy jak ja robię grę, gdzie UDP jest mi potrzebne tylko do wysyłania z serwera do klientów, to nie będę mógł zagrać jako klient nie mając publicznego IP ?
Bo z tego co widzę to trzebabyłoby przekierować porty, z czym ja nie mam problemu, ale są przypadki gdzie to dostawca internetu daje wewnętrzne IP.
Jest jakaś możliwość żeby tacy też mogli zagrac ? jakieś porty UDP co dostawcy internetu zawsze przekierowują albo coś (przepraszam za moją niewiedzę na ten temat jak cos :P)
Piszesz o zmianie priorytetu. Ale z tego co widzę jak w TCP przesyłam co step, to skutki są jakie są, nie nadąża :D chyba że to się da jakoś ominąć ? wysyłanie rzadziej nie wchodzi w gre. musi być jakiś sposób. Przecież tyle gier jest przez TCP i działa ładnie.
Z góry dzięki za odpowiedź.
-
move_towards mi nie robi, moze i skokow nie bedzie, ale w przypadku laga obiekt dalej zostanie w miejscu.
Wytłumacz mi dlaczego on właśnie w miejscu zostaje skoro ma speed=odebrane_speed, wedlug mnie powinien jechac z predkoscia ktora ma.
przy wyjsciu klienta z gry to samo, powinien jechac z predkoscia speed.
Jakas rada ?
"Pamiętaj tylko, żeby odebranej pozycji nie zapisywać w zmiennych X i Y bo będzie Ci ten obiekt przeskakiwać."
jesli to ma pomóc to powiedz mi dokladniej o co ci chodzi...
-
GMLif global.my_player=object_player
{
ruch();
//wysylanie
if global.alarm1>0
{
global.alarm1 -= 1;
}
else if global.alarm1 = 0
{
global.alarm1 = 10;
// Tutaj wysyłamy pozycję obiektu
mplay_data_write(1+(10*object_player),direction);
mplay_data_write(2+(10*object_player),x);
mplay_data_write(3+(10*object_player),y);
mplay_data_write(4+(10*object_player),image_angle);
}
mplay_data_write(0+(10*object_player),speed);
}
else
{
//odbieranie
speed=mplay_data_read(0+(10*object_player));
direction=mplay_data_read(1+(10*object_player));
x=mplay_data_read(2+(10*object_player));
y=mplay_data_read(3+(10*object_player));
image_angle=mplay_data_read(4+(10*object_player));
mam taki kod, i pytanie...
obiekt mi skacze zamiast plynnie sie poruszac
zrobiłem se mój alarm zeby nie wysyłać wszystkiego co jeden krok, ale speed wysyłam w kazdym kroku.
jesli usune calkiem x i y to bedzie w porządku, nie skacze, plynnie obiekt jedzie, no ale wiadomo ze tak nie mozna bez x i y, bo latwo o buga.
Moim celem jest zeby w przypadku laga obiekt sie nie zatrzymywał tylko jechal caly czas.
Jakaś rada ?
-
ale jak zrobic zebym mial mape osobno a plik exe osobno i zeby zaladowac ta mape do programu ?
-
panowie ale tu chyba nie chodzi o to ile zajmuje tylko o ilosc pikseli, bo jak zmniejszyłem rozmiar (zmniejszylem detale) w jpg, i teraz mi zajmuje 800 kb, to teraz dalej mi muli na tym rozmiarze mapy.
a musi byc wszystko w exe czy moze byc osobno, i zeby sie ladowalo jak program tego zapragnie ?
-
mapa ma rozmiary 2000x8000 co daje 18MB i jak próbuje ją wrzucic to zmula a potem wyskakuje błąd.
jest jakas rada czy musze ja pomniejszyc ?
jesli gdzies juz to bylo omawiane to przepraszam, szukalem i nie znalazlem.
Problem z przesyłaniem pozycji za pomocą UDP.
w Pytania zaawansowanych
Opublikowano
Dzieki za zainteresowanie tematem.
Mam zrobione że klient przesyła stan klawiszy przez TCP, a serwer odsyla pozycje, kierunki postaci i musi to robic przez UDP, bo postac sie ma plynnie poruszac. I calkiem nieźle to chodzi przez UDP. Ale z tego co widze to nie ma sensu, bo nie bedzie kazdy gracz sobie przekierowywal portów, bo to nie ma sensu.
Więc jak zrobić zeby bylo plynnie przez TCP, jak w nim trzeba przesyłać rzadziej bo nie nadąża (troche zszedlem z tematu przepraszam).
Jak sie to robi zeby to było dokładne i płynne ?