Netcode
Übersicht

TillBetreff: Netcode |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Jungs,
ich werkle schon seit einer ganzen Weile an einem Multiplayer Puzzle herum. Ich bin inzwischen SEHR weit und optimiere nur noch am netcode herum. In Game übertrage ich NOCH!!! 30mal pro sec die x,y coord. des Mauszeigers der anderen 3 Spieler. Nun möchte ich das ganze natürlich herunter bringen und denke das ich da bewegungsinter- polation brauche, wenn ich z.b. nur 10 mal pro sec daten schicke. Leider habe ich NULL ahnung was interpolation angeht und wollte nachfragen ob jemand so etwas coden kann ODER mir nen kleines Beispiel coden könnte von dem ich lernen könnte..... Bitte keine Englishen TUT's zwar bin ich recht fit was englisch angeht aber ich habe schon teilweise die Tuts von surial gelesen und null kapiert |
||
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wieso sendest du die Mauspositionen ? Send doch einfach wo welcher Spieler ein Ding erfolgreich plaziert hat. | ||
![]() |
Alpha |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht möchte er den Mauszeiger den anderen anzeigen... ich fänd das nicht schlecht bei nem 3d puzzle | ||
Till |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
weil gerade das anzeigen der mauszeiger von den anderen spielern
das ganze so interessant macht!!!! BITTE KEINE WEITEREN POST's dieser art das Game ist schon fertig und das gameplay sehr weit entwickelt...ich möchte lediglich den netcode besser machen und müsste wie oben getippt die mausbewegungen interpolieren um so bandbreite zusparen. |
||
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Lineare oder Quadratische Interpolation ? | ||
Till |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tjo ich hab mir eben ne mini demo von verschiedenen methoden
angesehen...bei der demo war "Hermite_Interpolate" irgendwie die beste methode für soetwas...jedenfalls sahen die kurven relativ "natürlichaus" wie gesagt ein großes problem finde ICH ist folgendes: wenn ich z.b. 10 mal pro sek die x,y coor. der mauszeiger sende müsste ja der andere Rechner (andere spieler) bis zum nächsten packet die bewegung interpolieren ABER!! da müsste ja noch mit timings gearbeitet werden...da ja die rechner nicht alle mit der selben speed zb. rennt ein rechner mit 70fps und müsste in dieser zeit die bewegung/strecke auf 70 frames verteilen. Genau so als wenn er mit 30 fps laufen würde ![]() naja aber vieleicht habt ihr ja nen klareren kopf ![]() ![]() |
||
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm so würde ich das dann machen (wobei man dadurch dann leider zusätzlich zum Ping noch eine Verzögerung hat):
Immer wenn eine neue Position reinkommt (alle 100ms) setzt du den Zeiger nicht auf diese Position sondern speicherst die aktuelle und die empfangene Position in Variablen. Nun kannst du Anhand dieser 2 Positionen in den Variablen einfach Zwischenschritte berrechnen.Theoretisch geht das so: Du nimmst die Distanz zwischen den beiden Positionen und dividierst sie durch die Anzahl der Schritte die du berrechnen willst (wieviele das sind hängt natürlich von den FPS und der Senderate ab). Dann addierst/subtrahierst du diese dividierte Distanz zur aktuellen Position (also brauchst du insgesamt 3 Positionsvariablen: die Position die beim Empfangen war, die empfangene Position und die aktuelle Position). Ob du addieren oder subtrahieren musst kannst du ermitteln in dem du einfach die größe der beiden Positionen vergleichst. Ist die empfangene größer musst du addieren, ansonsten subtrahieren. Das ganze musst du für X und Y seperat machen. Ich hoffe das war jetzt halbwegs verständlich ![]() |
||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
Till |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dc: jo so etwas hatte mich mir auch schon überlegt....obwohl man dann
nur "gerade strecken" hätte sieht vieleicht etwas zu eckig aus...aber ich werde das mal weiter bedenken. |
||
Till |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nebenbei würde das nicht eigendlich extrapolieren sein was ich machen
will?!?! bin total verwirrt ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group