Anfang von TCP/UDP

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

GearTechDE

ehemals 'KillerJo96'

Betreff: Anfang von TCP/UDP

BeitragMo, Jun 06, 2011 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
[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

BeitragMo, Jun 06, 2011 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Ich würde die Ports Variable halten, also beim joinen über UDPMsgPort abfragen.
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 eine While-Wend schleife - Dadurch schließen sich verzögerungen beim Senden fast vollständig aus Wink

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!

GearTechDE

ehemals 'KillerJo96'

BeitragMo, Jun 06, 2011 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Jun 09, 2011 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group