Zajmuję się wieloosobowej gry fabularnej (Nie, nie jest to MMORPG;).Smooth MultiPlayer ruch
Moja obecna konfiguracja jest w takim stanie.
Klient mówi serwerowi "Chcę iść do przodu"/"Chcę się cofnąć", serwer aktualizuje następnie Twój podmiot i informuje wszystkich klientów w okolicy o zmianie. Serwer aktualizuje również każdą jednostkę co 20ms i wysyła aktualizacje co 100ms do klientów, aktualizacje te zawierają pozycję, prędkość, obrót itp.
Jak dotąd tak dobrze, jednak nie mam nic w zanadrzu do wygładzenia ruchu między pakietami po stronie klienta, i muszę powiedzieć, że nie mogę go uruchomić. Czytałem o przewidywaniu, interpolacji, martwym odrobieniu, ale wszystko to było dla mnie wielkim bałaganem.
W tej chwili robię coś w rodzaju "Position = Packet.Position", co powoduje bardzo ruchy jąkania.
Potrzebuję pomocy, jak uzyskać bardziej płynny ruch? Przyglądałem się próbce predykcji XNA, ale nie mogłem tego naprawić.
Dzięki // F
Czy chcesz, aby ruch gracza był płynniejszy, czy też inne przedmioty? Czy klient zna aktualną prędkość gracza? – ssmir
Cóż, obecnie mam tylko gracza, więc to jest mój główny problem. Klient wie o prędkości, jest zawarty w status-package z serwera. Właściwie to mam fajną odpowiedź na IRC, spróbuję jutro i jeśli jej się uda, to się podzielę. –