Logischer Netzaufbau für UDP Spiele

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Dottakopf

Betreff: Logischer Netzaufbau für UDP Spiele

BeitragDi, Jul 27, 2010 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Biltzer,

ich bastel seit einigen tagen mit der SimpleUDP2 rum. Hier muss man nochmal ein großes Lob an ToeB aussprechen, die lib ist wirklich mit wenigen handgriffen eingebaut und funktioniert super zuverlässig.

Ich bin nun mit meinem Projekt an einem Punkt angelangt, wo ich über Serverlisten nachdenken sollte.
Bzw. hätte ich wohl voher darüber nachdenken müssen... naja egal..

Ich möchte es ermöglichen, dass jeder Spieler meines Spiels ein "Internetspiel Hosten" kann, ohne ein port forwarding in seinem Router vorzunehem. Und natürlich diesen auch joinen kann.

Varriante 1:
Es gibt nur einen Dedizierten Server(Host). Dieser Host oder "Master Server" verwaltet alle Daten die irgendwie oder irgendwo anfallen.
Sollte nun jemand ein spiel erstellen, wird dies dem Master Server mitgeteilt und dieser stellt dann für andere Spieler diesen "Server" im Server zur verfügung.
Dadurch dass einfach jeder ein client ist, egal ob er nun ein "Spiel Hostet" oder nur Joint müssen keine Einstellungen im Router vorgenommen werden. --> Idiotensicher...

Kurz gefasst: Es gibt effektiv nur 1 Server(Maser Server) alle anderen sind die clients.

Leider hat dies den Nachteil, dass auf dem "Master Server" sehr viele Daten anfallen.(Positionsübertragung,Serverlisten abfragen... und co.)

Grafische darstellung
user posted image




Varriante 2: Wäre viel optimierter, braucht aber meines wissens eine konfiguration im Router
Auch hier gibt es wieder einen Dedizierten "Master Server". Allerdings speichert sich dieser lediglich die IPs der erstellten Server. Nun muss ein "Join-williger" lediglich 1x die IP liste der Server lesen, sich für einen Server entscheiden und zu diesen Verbinden. Somit läuft die Verbindung(Datenübertragung,Position ect..) nicht über den Master Server, sondern direkt zwischen den gegenspielern.

Somit viel optimierter, aber der Ersteller muss trotzdem ein Port Forwanding machen.. Evil or Very Mad

user posted image

Was nun Tun ? Denke ich evt. zu Umständlich ?... gibt es "offene" Ports die ich benützen kann ?
Wäre toll wenn Ihr mir dazu ein Feedback geben könntet.


Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Pummelie

BeitragDi, Jul 27, 2010 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde Variante 1 nehmen, da es viele Leute gibt, die zb. über eine WebStick verfügen, wo es dann allermeist nicht möglich ist port oder so frei zu schalten für Host.

Es kommt aber auch darauf an, wie Leistungsstark dein MasterServer ist. wenn dieser die Datenmenge von zb. 100 Clients nicht Gleichzeitig übernehemn kann, musst du Variante 2 nehmen.
It's done when it's done.

Dottakopf

BeitragDi, Jul 27, 2010 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
soweit ich weis läuft senden und empfangen bei der SimpleUDP2 über 1 port(8000), ich denke das könnte kritisch werden, wenn mehrere clients gleichzeitig ihre daten senden bzw. etwas empfangen wollen.

schwer zu sagen... darum auch mein Post Surprised
*erstmal ne shi sha anmachen, da zerbricht man sich gleich viel gechillter den kopf*
Rechtschreibfehler gelten der allgemeinen Belustigung!

Eingeproggt

BeitragDi, Jul 27, 2010 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat alles Vor-und Nachteile, da würde ich mich nicht so genau auf eine Variante festlegen, je nachdem was du machen willst. Wie die ganze Sache rennt und was diese Vor- und Nachteile sind weißt du ja schon.

Ich möcht aber noch was zu dem Freischalten von Ports anmerken:
@Pummelie:
Bei den Websticks braucht man eigentlich gar nichts freischalten. Wenn ich ein Netzwerkspiel teste dann bin ich mit meinem Funkmodem immer Host weil das immer funktioniert ohne dass cih was freischalten muss Wink

Ich kann auch die kommende Version von LamaNet empfehlen diesbezüglich
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

hazumu-kun

BeitragDi, Jul 27, 2010 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Für Variante 2 empfiehlt sich HolePunching, das ist aber wahnsinnig kompliziert umzusetzten in BB
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

Starwar

BeitragDi, Jul 27, 2010 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Chrise hats anscheinend geschafft: https://www.blitzforum.de/worklogs/353/
MFG

Dottakopf

BeitragDi, Jul 27, 2010 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh man.. FAIL... etz hab ich grad meinen "Master Server zum 90%" fertig und jetzt kann das die Lib schon ?

Hm.. aber wenn ich meinen eigenen Master Server schreibe, bin ich nicht auf ToeBs Master angewiesen.
Denke ich? Ah.. es ist Spät.. ich nerv da Toeb besser selber Very Happy


Danke !
Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Chrise

BeitragDi, Jul 27, 2010 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
LamaNet und der zugehörige Masterserver ist von mir ja, Toeb will daran atm soweit ich weiß noch arbeiten.
Holepunching ohne geöffnete Ports ist bereits jetzt möglich ja.
Kannst mir ruhig ne PM schreiben Wink

lg Chrise
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

ToeB

BeitragMi, Jul 28, 2010 2:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja mein MasterServer ist vis jetzt so weit, das er Serverlisten erstellen, abfragen und löschen kann. Das Holepunching kommt im Laufe der nächsten Tage, ich hab mir schon genaustens aufgemalt wie ichs machen werde Wink

*seh grad deine nachricht (en ?)*

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!

Dottakopf

BeitragMi, Jul 28, 2010 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach jetzt bin ich leicht hin und her gerissen...

Sollte der Master Server zur freien Verfügung stehen, würde ich da natürlich gerne darauf zugreifen. Sprich ich kann den Master Server auch bei mir erstellen.

Ich bin mir ziemlich sicher, dass der Erschaffer der SimpleUDP2 mit seiner eigenen Lib wohl einen leistungsstärkeren Master hinbekommt als ich Very Happy

*Edit* Noch eine frage zum HolePunching: wie ist da der genaue weg den meine Daten nehmen.

Ruft er wirklich nur 1 mal die Serverlisten vom Master ab. Und baut dann eine wirkliche 1zu1 Verbindung zwischen den "2-Spieler-Clients" auf.
Oder wandern die Daten immer erst zum Master und dann an zu den clients? (ich denke letzteres, sonst müsste man ja wieder Ports freigeben)


Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Eingeproggt

BeitragMi, Jul 28, 2010 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu deiner "Edit-Frage" Dottakopf:
Es wird tatsächlich eine 1zu1 Verbindung zwischen 2 Geräten hergestellt, das is ja der Trick. (Auch wenn die Ports NICHT geöffnet seind) Aus einer P2P-Kommunikation einen Umweg über einen Master-Server zu nehmen und somit wieder das Server-Client-Modell umzusetzen wäre ja keine Kunst Wink

Auf Wikipedia ist das ansatzweise erklärt (in Englisch besser als auf Deutsch).
Aber warte einfach bis Chrise sein LamaNet veröffentlicht, ich darf schonmal verraten dass bis jetzt alles super läuft Wink

mfG, Christoph.

EDIT: Sagmal Dotta, warum schreibst du noch immer im BeginnersCorner? Bist doch schon lang dabei und kein Beginner mehr Wink
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Dottakopf

BeitragMi, Jul 28, 2010 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, ist ne gute frage
Vielleicht habe ich die Materie unterschätzt Confused
(Wikipedia erklärt das recht dürftig... wollte gleich noch abklären ob es vll nicht irgendein pseudo bb-HolePunching ist )

Danke für eure Hilfe!

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group