Logischer Netzaufbau für UDP Spiele
Übersicht

![]() |
DottakopfBetreff: Logischer Netzaufbau für UDP Spiele |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 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.. ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() *erstmal ne shi sha anmachen, da zerbricht man sich gleich viel gechillter den kopf* |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() Ich kann auch die kommende Version von LamaNet empfehlen diesbezüglich |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Chrise hats anscheinend geschafft: https://www.blitzforum.de/worklogs/353/
MFG |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() Danke ! Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Chrise |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() lg Chrise |
||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() *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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() *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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() 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 ![]() mfG, Christoph. EDIT: Sagmal Dotta, warum schreibst du noch immer im BeginnersCorner? Bist doch schon lang dabei und kein Beginner mehr ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, ist ne gute frage
Vielleicht habe ich die Materie unterschätzt ![]() (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! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group