TCP Datenübertragung(koordinaten)
Übersicht

![]() |
GearTechDEehemals 'KillerJo96'Betreff: TCP Datenübertragung(koordinaten) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Halle liebe Community, ich habe mal wieder ein kleines Problem. Undzwar möchte ich mit Blitz3D ein eigenes Programm schreiben sowas wie ein TCP Server. Meine sag ich mal "kleine 3d engine" ist ja noch nicht fertig. ich will nämlich jetzt noch einbauen, dass ich dort so einen kleinen Chat unten Links in der ecke habe. wenn ich dann mit der engine da was rein schreibe soll der den Text an den Server senden und der sendet sowieso alles an alle Clients weiter. wisst ihr was ich meine? einfach nur ein Chat aber halt in meiner engine. Falls das nicht so schwer sein sollte komme ich schon direkt zur nächsten Frage. wie mache ich am besten den multiplayer Modus? Vllt. einfach per TCP die Koordinaten der Position einer entity senden und diese weitergeben? wenn ja wie geht das und wie nehmen andere Clients dann diese Koordinaten auf und setzen die entity dahin?
das ist wahrscheinlich schwerer als ich mir das vorstelle. hoffe hier auf ein paar antworten. LG Killerjo96 |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im Multiplayer, vor allem im "Action"-Genre, wie z.B. Renn-Spiele oder Shooter, würde ich von TCP allgemein Abraten, da es doch sehr Langsam ist bzw. das Programm für jede einzellne Nachricht solange anhält bis diese Vollständig geschickt wurde, UDP ist das geeigneter für. Entweder, du schreibst dir selber alles mit UDP, wobei ich dir jetzt schon sagen kann das es viel Arbeit ist (aus erfahrung), oder du nimmst meine Netzwerk-Lib, Link ist in meiner Signatur (SimpleUDP2), damit kannst du schnell und einfach Spieler erstellen und diesen Beitreten, als auch Nachrichten (wie z.B. deine Positionsdaten) schnell und einfach senden, und für Chat-Nachrichten z.B., also Nachrichten die auf jeden Fall ankommen müssen bei den anderen, gibt einen Sende-Modus mit dem das sichergestellt wird.
Viel Spaß ![]() 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 ![]() |
---|---|---|
wow danke, ich probiers mal, kannst du mir denn dabei helfen`? also wenn ichs net hinkriege. BIn ja blutiger anfänger aber ich kapiere scnell XD..
edit: der download Link von der simpleudp ist inaktiv. bitte reuppen. danke Naja danke schomal |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
also ich würde dir empfehlen das du dir zumindest mal ein kleines mini Beispiel selbst mit den UDP Befehlen von Blitz schreibst. Das hilft dir zu verstehen wie der Netzwerkkram funktioniert. Ein Beispiel in dem du positionen von kästchen über das Netzwerk überträgst sollte da reichen... Dabei kann dir auch das Forum toll helfen. Aber erst immer selber versuchen! Danach kannst du dir die tolle Lib von ToeB ansehen. Wobei man sagen muss, das bald die SimpleUDP V3 von ToeB rauskommt. Wenn du Fragen zur Lib hast, kann dir hier das Forum natürlich auch weiterhelfen. Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke werde das mal versuchen
edit: Könnte mir vllt jemand ein UDP Beispiel programmieren. Ich weiß ich erwarte viel von euch. Ich meine so das ich damit dann lerne was gemeint ist. Ich habe hier mal mein Projekt hochgeladen xD Wäre echt nett. Es tut mir leid wenn ich hier vllt. vielen Leuten auf die Nerven gehe weil ich immer nur haben will, aber ich bin halt so und so lerne ich. Sorry an die Leute die es so sehen. Hier mein Projekt: http://www.file-upload.net/dow...e.rar.html edit2: Hier ein Virus Link falls den jemand möchte...:http://www.virustotal.com/file...1304681855 Ich möchte einfach, dass ihr mir einbaut, das jeder Player ein Cube ist. So und ich möchte jetzt einen Server der die Koordinaten und Chat Daten annimmt und weiter sendet(an die anderen Clients). Denn ich weiß auch nicht wie ich es anstellen soll das wenn jetzt mehrere Leute darum laufen(Als Würfel xD), wie man die dann erstellt. Also wie man dann einen neuen CUbe erstellt z.B. Hoffe das ist nicht zu viel und das kriegt einer für mich hin. Ich wäre bereit dafür zu zahlen wenns nötig ist. danke im voraus... Gruß Killerjo96 |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
faeX |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guck bei ToeB in die Signatur, lade dir SimpleUDP2 runter, guck dir die mitgelieferten Beispiele an. Wenn du immer noch erwartest, dass wir dir Beispiele liefern, glaube ich kaum, dass du bereits mit dem richtigen UDP etwas Stabiles zum Laufen bringst. Also => Onlinehilfe / Forumsuche nach UDP, du bist garantiert nicht der erste der Probleme damit hat. | ||
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo ![]() Habe mal ein Beispiel gemacht. Nicht in deiner Engine aber einzeln, ohne SimpleUDP. Zuerst das Serverprog starten, danach den Client. Wenn sie sich erfolgreich verbunden haben (eigener PC, IP 127.0.0.1) werden die Mauszeigerbewegungen übertragen. Einfach mal die Fenster nebeneinander machen und probieren... Server:BlitzBasic: [AUSKLAPPEN] ;Server Client:BlitzBasic: [AUSKLAPPEN] ;Client Wichtig ist zu beachten, dass beim Verschicken von UDP Paketen(SendUDPMsg ![]() D.h. die globale gegnerIP enthält die Integer IP und die globale gegnerDOT$ die "normale". Kannst das ja einfach noch duch mz und gegnerZ ergänzen, diese mitübertragen und schon hastes. (Und halt noch Cubes statt Rects ![]() Die Kommandos in UDPUpdate() kannst du natürlich auch ergänzen, z.B. für Ping oder Ausloggen oder mit mehrere Clients pro Server per Type ![]() lg, count-doku |
||
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube ich bin noch nicht weit genug um das zu kapieren... Ich habe mich noch nie damit befasst. Die Befehle kkommen mir so fremd vor. Und die ganzen Variablen und so ich weiß garnicht richtig was da passiert. | ||
Mit freundlichen Grüßen: GearTechDE |
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Möglich, Netzwerk ist auch nicht das einfachste...
Trotzdem, die Befehle kannst du ja einfach durch anklicken in der Hilfe ansehen. Und die Variablen sind halt so wenige wie möglich. -Die Position der Spieler mx,my : gegnerX,gegnerY -Die IP und der Port für das Netzwerkzeugs -Stream ist die Verbindung - und sonst noch einige lokale Rückgabewerte. Ich bau dir das heute noch in die Engine ein, vllt. verstehst du es dann. Kann aber auch zur SimpleUDP raten, echt ne gute Lib ![]() Count-Doku EDIT: Habs jetzt eingebaut. Programm 2Mal starten einmal als host (Anfangs 1) und einmal als Client (Anfangs 0) Zuerst Host starten (eigentlich logisch ^^) Dann den Client. Hier als IP 127.0.0.1 eingeben für eigenen PC. Danach bewegt sich dann ein Cube jeweils dahin, wo die Kamera beim anderen Programm ist. Ich nutze dafür die gleiche Funktion wie in dem 2D Beispiel nur mit 3 Koordinaten. Auch hier kann man es wieder um mehrere Spieler ergänzen oder Daten sparen in dem man nur die Richtung und die Geschwindigkeit überträgt. Aber ich glaube so ist es für die am Einfachsten. (zu verstehen!) Code (einfach deine Main.bb der Engine) BlitzBasic: [AUSKLAPPEN] ;ReadConfig.ini |
||
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
WoW das ist echt cool von dir Count Doku...
Wirklich danke ich werde versuchen den Code zu lernen und mir das erstmal als genug von UDP aneignen. Lg Killerjo96 PS: Danke, echt ein sehr tolles Forum hier. |
||
Mit freundlichen Grüßen: GearTechDE |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group