[Multiplayer] Der Client braucht keinen Port...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Myn

Betreff: [Multiplayer] Der Client braucht keinen Port...

BeitragSo, Jan 16, 2011 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Tag,

ich bin seit meheren Tagen dabei für mein Spiel einen MultiplayerModus zu schreiben.
Es müssen 2 Variablen(mit Zahlen) übertragen und jeweils ausgelesen werden.
Mein Problem, ich suche eine Möglichkeit, bei der man (wenns geht) keinen Port freigeschaltet
haben muss. So dass man ganz einfach ein Spiel eröffnet und jemand anderes joint dann dazu,
ohne das sie was freischalten müssen, soll bei jemdem gehen.

Ich habe das schon mit TCP versucht, aber dortz muss man ja nen Prot freigeben....außerdem
ist es relativ langsam ...


Ein weiteres Problem ist, ich weiß nicht wie ich mit einer Verbindung 2 Variablen empfange
und sende... Wie soll das Programm wissen welche sie gerade empfängt..?

Vll. kann mir ja jemand hier ein Beispiel oder vll das Ganze schreiben....^^



mfg
Myn

grafe

BeitragSo, Jan 16, 2011 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
such mal im forum nach SimpelUDP2.
ich glaube das ist was du suchst

mfg grafe

Pummelie

BeitragSo, Jan 16, 2011 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du keinen Port freigeben willst, brauchst du einen Server, zu dem sich alle Verbinden...

Zu dem Variablenproblem...
Entweder du regelst dir das, das das Programm an genau einer stelle auf eine bestimmte variable wartet, und du versuchst es mal mit ein paar mehr Infos Wink

Bei UDP kannst du zb, vor der Variable ein Byte senden, dann überprüft der Client welches Byte das ist, und handelt die Variable entsprechend...
It's done when it's done.
 

Myn

BeitragSo, Jan 16, 2011 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Mhmm, dann könnte ich ein Server Programm schreiben, wenn man dann Multiplayer spielen möchte
connectet man dann auf den Server...

@SimpleUDP: Habe ich mir schonmal angeguckt, aber mir fehlt da irgentwie ne Art Funktionssamlung, die im Forum
ist ja nicht fertig...

@Info´s: Jeder Spieler(erstmal nur 2 ) sendet seine x+Y Koordinate und empfängt vom 2ten Spieler die Koordnianten... mehr nicht... (erstmal muss ich das hinbekommen^^)

Kann mir da jemand vll. weiterhelfen, bzw. nen Beispiel machen oder so?

Pummelie

BeitragSo, Jan 16, 2011 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Pseudo:

Senden:
BlitzBasic: [AUSKLAPPEN]
Function WriteX(udp,ip,x)
WriteByte(udp,1) ; byte 1 heißt obsofort, ein int (x) wert folgt)
WriteInt(udp,x)
SendUDPMsg(udp,ip)
End Function
Function WriteY(udp,ip,y)
WriteByte(udp,2) ; byte 2 heißt obsofort, ein int (y) wert folgt)
WriteInt(udp,y)
SendUDPMsg(udp,ip)
End Function

Empfangen:
BlitzBasic: [AUSKLAPPEN]
If RecvUDPMsg(udp)<>0 Then 
Select ReadByte(udp) ;das byte auslesen, und je n nach Inhalt empfangen...
Case 1
playerX=ReadInt(udp)
Case 2
playerY=ReadInt(udp)
End Select
EndIf
It's done when it's done.
 

Myn

BeitragSo, Jan 16, 2011 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey danke ;D

Dann versuch ich mal damit weiter zu arbeiten Very Happy

(Bin auf dem Gebiet halt nOOb ^^)

//EDIT: Muss bei UPD auch der Client einen Port freigeschaltet haben? Wenn er empfangen und senden muss..?

//EDIT: Also kann ich einen UPD Server starten OHNE den Port anzugeben. Der Client sendet einfach an die IP und braucht auch keinen Port dabei an zugeben... Umgekehrt genauso, also der Server sendet einfach an die IP des Clientes OHNE einen Port zu wissen.....??? ^^

ozzi789

BeitragSo, Jan 16, 2011 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei Blitzbasic, und auch in anderen Programmiersprachen ist es meist so wenn man keinen Paramter angibt, dass der Standardwert genommen wird.

Der wird bei Client und Server der gleiche sein....

mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

ToeB

BeitragSo, Jan 16, 2011 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Myn hat Folgendes geschrieben:

@SimpleUDP: Habe ich mir schonmal angeguckt, aber mir fehlt da irgentwie ne Art Funktionssamlung, die im Forum
ist ja nicht fertig...


https://www.blitzforum.de/foru...hp?t=35315

Was daran ist nicht Fertig ?
Die Lib ist wriklich genau das was du suchst, sie kann :
Arrow Spiel erstellen / eintreten / beenden
Arrow Lanspiel oder Onlinespiel wählbar
Arrow Holpunching (keine Portfreigabe beim Server)
Arrow Spieler Kicken / bannen


Und noch vieles mehr ( les am besten die beschreibung bei dem oben genannten link 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!
 

Myn

BeitragMo, Jan 17, 2011 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sie fertig und gut ist weiß ich auch xD

Mir fehlt eine Funktionssammlung, in der alle Funktionen mit Erklärung stehen, die im FOrum hier ist nicht FERTIG..^^

Lord Stweccys

BeitragMo, Jan 17, 2011 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
...und nur aus diesem Grund verschmäst du eine grandiose Bibliothek? Manchmal muss man sich halt an Gegebenheiten anpassen.

ToeB

BeitragMo, Jan 17, 2011 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, die Hilfe wird noch erstellt... ich schiebe das nur immer vor mich hin... blöd sowas Embarassed


Aber du kannst die Lib ja anhand der Beispiele benutzen, falls fragen sind einfach mich anschreiben 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!
 

Myn

BeitragMo, Jan 17, 2011 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich guck mir das noch genauer an ;D

Dottakopf

BeitragDi, Jan 18, 2011 8:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habs auch irgendwie geschafft anhand der mitgelieferten Beispiele den kompletten Netzwerkpart meines aktuellen Projekts auf die SimpleUDP2 zu schaufeln. Wenns mal läuft ist es ein segen!

Das keine Hilfe oder eine Funktionssamlung da ist, nervt schon ein wenig, aber dann schick ich halt einfach ne Mail an Toeb und dann wird mir geholfen.

(Und um so mehr leute Toeb mit PMs nerven um so eher wird er die Hilfe implementieren) Wink
Rechtschreibfehler gelten der allgemeinen Belustigung!

Hubsi

BeitragDi, Jan 18, 2011 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Anhand der Beispielcodes und dank der einleuchtenden Funktionsnamen ist das einarbeiten in die SimpleUDP2 eine Sache von ein paar Stunden. Um die Daten von A nach B zu bringen braucht es nicht wirklich viel Code (bzw. Funktionen. Was die alles erledigen kann einem ja primär erstmal egal sein Very Happy) und von daher... Just my two cents Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

tft

BeitragDi, Jan 18, 2011 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

SimpleUDP ist wirklich Simple ...... aber bei mir funktioniert sie nicht richtig ..... ich weis nicht warum. Daher mache ich auch gerade etwas mit UDP. Bitte nicht bö^se sein Smile

Gruss TFT
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Dottakopf

BeitragMi, Jan 19, 2011 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
tft es muss nicht unbedingt an deinem Rechner liegen, sondern auch am Router oder sogar Netzwerkkarte.
Mit meinem Zyxcel Router Model weis ich jetzt gerade nicht, funktioniert ums verrecken einfach kein Hole punshing, während es bei meinen kollegen ohne Probs funzt...

Auch Toeb ist dran verzeweifelt.... also läuft bei mir alles dediziert über die SimpleUDP.
Rechtschreibfehler gelten der allgemeinen Belustigung!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group