TCP Multiplayer - Pong
Übersicht

ZecksBetreff: TCP Multiplayer - Pong |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo liebe Community,
nachdem ich mich nun durch einige Tutorials gegraben und mit Hilfe dieser mein erstes Spiel programmiert habe, versuche ich mich nun an einem Multiplayer Modus via TCP. Dieser Funktioniert lokal ("127.0.0.1") auch wunderbar. Teste ich das Ganze nun aber wirklich über eine Netzwerkverbindung, kommt es leider zu kleinen Ungereimtheiten. Mein Programm arbeitet folgendermaßen: Der Host des Spiels steuert sein "Paddel" und berechnet die Flugbahn des Balls, seine Paddelposition übergibt er dann dem Client und sendet danach die Koordinaten des Balls. Der Client wiederum sendet nur seine Paddelposition an den Host. Kurz gesagt, die gesamte Balllogik (Flugbahn und Kollisionsabfragen) errechnet der Host und überträgt diese an den Client. Mein Problem ist nun, das auf Clientseite zwischen Ball und Paddel nur eine Kollision errechnet wird, wenn sich das Paddel bereits ca. 1 Sekunde dort befindet wo der Ball gerade hinfliegt. So vermute ich, dass die Daten welche der Host zum Berechnen benötigt, nicht schnell genug übertragen werden. Liegt dies nun (falls man eine solche Vorhersage überhaupt sicher treffen kann) an der Logik meines Programms (Host ist für die gesamte Berechnung zuständig) oder an falsch programmiertem Quellcode (was ich eher vermute). Hat bezüglich meiner Netzwerklogik jemand hilfreiche Erfahrungen oder gar Wissen auf diesem Gebiet, um mir zu erklären, wie eine solche Kommunikation zwischen Rechnern bezüglich eines Multiplayermodus, stattfinden sollte? (Ist mein Weg einer der Richtigen oder gibt es noch eine bessere Lösungsmöglichkeit) Das war jetzt ziemlich viel auf einmal und ich habe mit Absicht, meinen Quellcode, nicht auch noch dazu gepappt (da ich wissen möchte ob die Logik hinter meinem Code, die Richtige ist). Um alles nochmal auf eine Frage zu kompensieren: "Ist die Realisierung eines Multiplayers (welcher Echtzeitwerte zur Berechnung benötigt) via TCP möglich, indem ich Werte an den Host schicke, mit diesen etwas berechne, um diese Berechnungen dann wieder zurückzusenden. Oder dauert es so einfach zu lange, sodass es nicht funktionieren kann." Ich bedanke mich bereits im Voraus bei allen, die die Zeit auf sich nehmen, um sich mit meinem Problem zu befassen. Ebenfalls möchte ich anmerken, das es eine Gabe ist, sein Problem in kurze Worte zu fassen... Mir wurde diese Gabe anscheinend nicht zuteil ![]() |
||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich gehe mal davon aus das du zu langsam updates zu den Paddelkoordinaten vom Client zum Host schickst, da bietet sich eigentlich wunderbar UDP an, sehr schnell, und wenn ein Paket flöten geht macht es nichts.
Als Datenrate solltest du vielleicht 20 abfragen pro sekunde einrichten, jeweils nur 2 Koordinaten. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
Fobsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich empfehle dier SimpleUDP schau dier das mal an, das könnte dier weiter helfen. ![]() lg F. |
||
Zecks |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank euch beiden, dann werde ich das ganze mal auf die Verwendung von UDP umschreiben. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group