UDP-Netzwerk-Library

Übersicht BlitzBasic DLLs und Userlibs

Neue Antwort erstellen

Xaron

Betreff: UDP-Netzwerk-Library

BeitragMi, Jul 13, 2005 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

da ich momentan auch ein kleines Multiplayerspiel schreibe, allerdings nur eine Linux-Kiste als Server habe und diesen eh in C++ programmiere, habe ich nach einer Möglichkeit gesucht, eine allgemeine UDP-Netzwerklibrary zu verwenden, die sowohl unter Windows (mit Blitzbasic und C++) als auch Linux (mit C++) läuft. Wink
Sowas geht natürlich nur mit einer Userlib. Also habe ich eine kleine Lib programmiert und möchte sie euch hier mit anbieten.

Basis der Lib ist übrigens die freie ENet-UDP-Netzwerklibrary, die speziell auf Multiplayer-Spiele (FPS Cube) hin ausgerichtet ist.
Wer genaueres wissen möchte, was ENet so alles kann, schaue bitte hier:

http://enet.cubik.org/Features.html

Kurz: Ihr habt die UDP-Geschwindigkeit in Verbindung mit der TCP-Verlässlichkeit. Wink


Die Lib inklusive eines kleinen BB-Client/Server-Beispiels könnt ihr euch hier runterladen:

http://www.leidel.net/dl/bbenet.zip

ACHTUNG: Das ist die allererste Version, Fehler sind gut möglich! Außerdem hab ich noch nicht so die Userlib-Schnittstellenerfahrung, möglicherweise geht da einiges noch eleganter, als über Bänke, so wie ich das jetzt gemacht habe...

Mit einer richtigen Doku kann ich auch noch nicht dienen, die Funktionen habe ich "grob" beschrieben. Ansonsten schaut euch die Beispiele an, die dürften eigentlich selbsterklärend sein...

Falls es Fragen gibt, oder irgendwas nicht funktioniert, lasst es mich bitte wissen! Wink

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
  • Zuletzt bearbeitet von Xaron am Do, Mai 31, 2007 11:11, insgesamt einmal bearbeitet

Jan_

Ehemaliger Admin

BeitragMi, Jul 13, 2005 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Klingt interressant.

Ich hätte dafür sicherlich Bmax verwendet.
Aber wers nciht hat, kanns nciht nutzten.
Auf jeden fall erstmal respekt, scheint zu funktionieren.
between angels and insects

Xaron

BeitragMi, Jul 13, 2005 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ui, das ging ja schnell. Smile

Naja, im Prinzip hab ich ja nur den Wrapper geschrieben, die ENet-Lib selbst ist "rocksolid". Wink

Blitzmax hab ich eben leider nicht, außerdem wollte ich den Server eh in C/C++ schreiben...

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

Mr Hopp

BeitragMo, Dez 11, 2006 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm der Link ist tot.....könnte das bitte mal jemand beheben? Ich wäre nämlich sehr interessiert. Danke schonmal
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

AcidRain

BeitragMo, Mai 14, 2007 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ähm...ist zwar schon lange her,aber könnte mir einer diesen link nochmal anwerfen...ansonsten sollte dieser Thread am besten sofort gelöscht werden(steht ja nicht besonders viel erhaltenswertes Wissen drin,ohne den Link^^),da sich sonst beim vorbeiscrollen immer eine sabberfütze unter meinem Tisch bildet..

Xaron

BeitragDo, Mai 31, 2007 11:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja verdammt, hat sich doch die Domain geändert. Sorry. Ich editier's gleich mal im ersten Posting. Danke für den Hinweis! Smile

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

Apprauuuu

BeitragDi, Jul 24, 2007 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
WOW das ist ja cool!

Die Verlässlichkeit hat mir in UDP nämlich ziemlich gefehlt...
Ich werd es mal versuchen innerhalb der nächsten Woche bei mir in LOL³Fighters einzubauen und sehn, ob sich da das Problem, das ich zuvor hatte, besitigt...
Arbeitsstand:
Umprogrammierung von LOL³Warriors und LOL³Fighters in Bmax...
LOL³Fighters wird spielerisch noch mal ordentlich aufpoliert, um es Ligatauglich zu machen (zumindest für private Funligen von mir ^^)
 

Sebe

BeitragDi, Jul 24, 2007 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Was hat es denn mit der sNetData Struktur auf sich?
Und wird die DLL noch weiter dokumentiert? Ich finde die nämlich grade extrem genial Smile

Xaron

BeitragMo, Sep 03, 2007 11:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, sorry für die späte Antwort, ich sollte hier doch öfter mal reingucken. Wink

Was es mit dieser sNetData-Struktur genau auf sich hat, ist mir jetzt auch unklar. Ich hab da auf der offiziellen Seite auch nichts gefunden:

http://enet.bespin.org/index.html

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

Apprauuuu

BeitragSo, Okt 14, 2007 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Unterstützt Enet überhaupt Peer to peer??
Ist ja eigentlich auch eins der Hauptmerkmale von UDP...
Arbeitsstand:
Umprogrammierung von LOL³Warriors und LOL³Fighters in Bmax...
LOL³Fighters wird spielerisch noch mal ordentlich aufpoliert, um es Ligatauglich zu machen (zumindest für private Funligen von mir ^^)
 

Guillemot

BeitragSa, Nov 17, 2007 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
ich würde Enet auch gern nutzen, aber leider verstehe ich absolut nicht wie man damit Daten empfangen kann.
Desweiteren ist mir beim Senden von Daten unklar, was es mit dieser ClientID auf sich hat.
Gibts da eine feste ID oder kann man sich eine ausdenken?
Ich hoffe Ihr könnt mir weiterhelfen.
 

Guillemot

BeitragMo, Nov 26, 2007 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem Datenempfang hat sich erledigt.
Habs jetzt hinbekommen, lag wohl daran, das ich von Banks keine Ahnung hatte.
Das Problem mit der ClientID habe ich aber immer noch.

The_Nici

BeitragMo, Nov 26, 2007 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs mit einer IP?

Noobody

BeitragDi, Nov 27, 2007 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Die IP braucht man nur zum Verbinden.
Ich würde mir zuerst die Dokumentation durchlesen, bevor ich hier irgendwas poste Wink

Die PeerID bzw. ClientID wird bei jedem Event von Enet in einer Bank ( im Sample heisst sie 'PeerID' ) abgelegt.
Mithilfe von PeekInt kannst du diese auslesen und so später Daten versenden.
Dies wird nur beim Server benötigt, da beim Client sowieso eine 0 beim Peer angegeben werden muss, da ein Client nur eine Verbindung offen haben kann.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

Guillemot

BeitragDi, Dez 04, 2007 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group