Anfang von TCP/UDP
Übersicht

![]() |
GearTechDEehemals 'KillerJo96'Betreff: Anfang von TCP/UDP |
![]() Antworten mit Zitat ![]() |
---|---|---|
[Begrüßung]
Hallo Liebe Community, ich bin jetzt schon mit meiner wirklich sehr kleinen 3D-Engine was wirklich nichts besonderes ist xD sehr zufrieden und ich finde, es sollte langsam mal ein Multiplayer Game drauswerden. Da ich mich mit TCP sowie auch mit UDP überhaupt nicht auskenne, würde ich hier gerne mal so Fragen, wie ich die Grundstruktur aufbauen soll. Es gibt hier ja die SimpleUDP von Toeb und die LamaNet etc. aber ich würde es wirklich gerne ohne externe fremde Hilfe selbst programmieren. Ich stelle mir das so vor. [Aufbau] Ich habe einen Server, der ständig läuft, und Daten von gejointen Client abfragt und an alle anderen Clients weitersendet. -> Extern!!! Nicht in der Engine drinn. Und ich habe den Client, welches das eigentliche Spiel ist, wo man am Anfang mit Input z.B. die IP Adresse des Servers eingibt, und dann für jeden Player der joined ein Cube erstellt wird. Dann besteht zwischen Server u. Client die ganze Zeit Datenübertragung der verschiedenen Koordinaten der Player(Cubes). Leider habe ich noch garkeine Ahnung und ich bin froh wenn ich gerade mal einen Chat programmieren kann, der dann auch nur halbwegs funktioniert. [Was ich jetzt noch sagen möchte] Ich erwarte hier keinerlei komplette Codes, da ich es ja alles selber machen will. Ich möchte jetzt nur wissen, wie ich das ganze umzusetzen haben, dass mir vielleicht mal jemand beibringen kann, was ich beachten muss, wie die ganzen Protokolle aufgebaut sind, und das mal von jemanden der meine Sprache spricht, nämlich Deutsch für Noobs xD. Die meisten Seiten wie z.B. Wikipedia oder so, sind meiner Meinung nach für Leute die mehr Ahnung haben als ich, ich möchte es einfach mal von Leuten lesen, die reden wie ich^^. Ich benötige einfach einen kleinen Einblick in die Programmierung von TCP/UDP und die Befehle näher erklärt etc. Mit Freundlichen Grüßen Killerjo96 |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Ich würde die Ports Variable halten, also beim joinen über UDPMsgPort![]() 2. Musst du berücksichtigen, das UDP Nachrichten nicht zu 100% immer ankommen, allerdings benutz BlitzBasic ein UDP-Protokoll welches Nachrichten, die nicht vollständig angekommen sind (also Fehlerhaft) direkt ausortiert und erst gar nicht über RevUDPMsg angefragt werden kann. Also entweder eine Nachricht kommt oder kommt nicht an, halbe oder zerstückelte Nachrichten gibt es nicht (Ist nur wichtig wenn du dir ein "Modul" basteln möchtest, mit dem du Nachrichten über UDP versenden kannst, die auf jeden Fall ankommen) 3. Musst du gucken mit den Daten. Du kannst nämlich nicht unendliche Datenmengen in eine Nachricht packen und auch nicht unendlich viele Nachrichten auf einmal senden. Versuche daher, die Byte-Menge auf ein minimum zu reduzieren (Ich habe in der SimpleUDP3.0 pro Nachricht 12 extra Bytes für das Modul, und selbst die sind schon so gut es ging zusammengerafft, ich hätte es auch auf 24 lassen können) 4. Vorallem im Netzwerk bereich solltest du vorher Planen, was du versenden musst, wie du es versendest und wann. Wenn du hier ohne Planung dran gehst, verliert man schnell den Überblick und vertieft sich im Spaghetti-Code (Und ich sprech da aus Erfahrung : Ich schreibe die SimpleUDP schon zum 5. mal neu, und immer habe ich ein neues Konzept und eine neue Herangehensweise). 5. Einen Tipp noch (Ist ein sehr häufiges "Missverständnis" wenn man das erste mal ein Spiel bspw. übers Netzt lauffähig machen will) : Benutze für die Abfrage von RecvUDPMsg ![]() ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Okay, danke ToeB. Das war schonmal sehr hilfreich.
Aber wie fange ich am besten an...? Wie ist so eine Struktur aufgebaut? Wie realisiert man sowas? Wenn ich ins Forum bei anderen gucke verstehe ich nur Bahnhof! Ich benötige am besten ein verdammt ausführliches Tutorial. lg Killerjo96 |
||
Mit freundlichen Grüßen: GearTechDE |
MacroMan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ein Tutorial zu diesem Thema gibt es hier. In dem Zip-Archiv findet sich die HTML-Datei "12multiplayer.htm". Dort kannst du mal reinschauen... Das Kapitel DirectPlay solltest du allerdings überspringen, da DirectPlay veraltet ist. | ||
I hacked 127.0.0.1. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group