Hilfestellung zu MMORPG...?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Kryan

Betreff: Hilfestellung zu MMORPG...?

BeitragDo, Sep 28, 2006 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich mache derzeit ein MMORPG, doch es funktioniert alles sehr ruckelig. Naja, und ich wollte von euch, zumindest die von euch, die bisschen Ahnung haben, mal fragen, wie ihr den Datentransfer geregelt habt...
Ihr könnt mich auch gerne anchatten via ICQ: 326400608 Smile

MfG
Kryan
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

Dreamora

BeitragDo, Sep 28, 2006 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Grundlage dafür ist prinzipiell UDP.

TCP ist für Echtzeitnetzwerk leider genau so wenig eine Lösung wie DirectPlay (das taugt bestenfalls für Matchmaking und Chat). Grund bei TCP ist, dass das gesamte Programm stehen bleibt, bis die Daten per TCP gesendet und korrekt angekommen sind ... was natürlich zu unschönen ruckeleinlagen führt ^^

Aus ruckelig schliesse ich das du wohl eines der beiden letzteren verwendet hast, weil sie befehle bieten für Server erstellen und so? Die Servertypen die damit zu erstellen sind taugen jedoch leider nicht viel für ein MMO
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am Do, Sep 28, 2006 17:16, insgesamt einmal bearbeitet

Kryan

BeitragDo, Sep 28, 2006 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
ok,
da liegt dann mein Problem, stimmt, hab TCP genommen Very Happy

eine Frage: wie ermittle ich die IP-Adresse am eigenen PC??

aso...und macht es Sinn bei jeder kleinsten Aktion gleich SendUDPMsg zu schreiben??
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Justus

BeitragDo, Sep 28, 2006 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit einem PHP-Skript, das dir die IP-Adresse zurückliefert. Um einen PHP-Teil wirst du - sofern es mehrere Server zur Auswahl geben soll - wohl eh kaum herum kommen.

Kryan

BeitragDo, Sep 28, 2006 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
ach, eigentlich brauch ich die IP gar nicht wissen....erstmal zumindest noch nicht
aber eine Sache stört mich:
Mit meinem Server und mit meinem Clienten erstelle ich auf den Ports 8094 und 8095 einen UDP-Stream. Doch wenn das eine läuft, funktioniert das andere nicht, weil sonst zwei mal ein UDP-Stream auf dem selben Port erstellt worden ist.

Also kurz: Wie sorge ich für eine Verbindung zwischen Server und Client?
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

StepTiger

BeitragDo, Sep 28, 2006 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
mit 2 computern Smile

anders glaube ich nicht möglich
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

BIG BUG

BeitragDo, Sep 28, 2006 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfach verschiedene Ports verwenden...
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Hummelpups

BeitragFr, Sep 29, 2006 9:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Eben, dann kannst du den Server auch überall gleich als Prozess
laufen lassen und nebenbei auf ner LAN oder so auch an dem PC zocken
und musst nicht nur wegen dem Server einen Rechner über haben.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

D2006

Administrator

BeitragFr, Sep 29, 2006 11:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein UDP Stream zwischen Server und Client reicht doch.
Und nun kommt mir ja nicht mit Robs Tut. Ist mir immernoch ein Rätsel, warum er da zwei Streams verwendet.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Kryan

BeitragFr, Sep 29, 2006 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
wie D2006, du meinst ein Stream zum schreiben UND lesen??
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

D2006

Administrator

BeitragFr, Sep 29, 2006 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja natürlich. user posted image
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Kryan

BeitragFr, Sep 29, 2006 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, hab mal n problem:
also der Client macht folgendes:
Code: [AUSKLAPPEN]
 WriteLine wGame,name$
 WriteLine wGame,MD5$(pass$)
 SendUDPMsg wGame,ip,oport
 RecvUDPMsg wGame
 status=ReadInt(wGame)
 Return status


So jetzt meine Frage: also erstmal ist status 0, obwohl vom Server eine 1 versandt wird. Möglicher Fehler: Vllt, dass ich bei SendUDPMsg und RecvUDPMsg wGame benutze??!!

MfG
Kryan
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

JanK

BeitragFr, Sep 29, 2006 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
mhh also ich würde es so machen
Code: [AUSKLAPPEN]

If RecvUDPMsg (wGame)<>0 then
 status=ReadInt(wGame)
End if


Den dann würd nur der Status ausgelesen wenn eine Nachricht vorhanden ist.
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de
 

Dreamora

BeitragSa, Sep 30, 2006 1:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Da kommt noch ein weiterer Faktor hinzu: UDP hat keine Versandgarantie. Die Daten können also gerade so gut verloren gehen.

Schau ma nach GNET, TNET und so, sofern du dir nicht das gesamte Datenhandling via UDP Protokoll programmieren willst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Sebastian

BeitragMo, Okt 02, 2006 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Da kommt noch ein weiterer Faktor hinzu: UDP hat keine Versandgarantie. Die Daten können also gerade so gut verloren gehen.


Deshalb bin ich ein Tcp-Anhänger, da hab ich das Problem nicht.
Aber für für ein MMO würd ich auch zu UDP tendieren, wobei Tcp gar nicht so schlimm ist , wenn man den Code richtig anlegt.



mfg
Sebastian
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf !
  • Zuletzt bearbeitet von Sebastian am Di, Okt 03, 2006 11:29, insgesamt 4-mal bearbeitet
 

Dreamora

BeitragMo, Okt 02, 2006 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja TCP kann ganz brauchbar sein. aber nicht in Blitz

In Blitz wartet alles explizit bis der TCP Call zurück kommt. Wohingegen UDP weiter geht.

Wenn man wirklich effizient netzwerken will nimmt man meist eh eine der bekannten UDP Libraries die Versandgarantie, Ordering etc haben (RakNet zb).
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

HamsterTrainer

BeitragDo, Okt 19, 2006 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist TCP wirklich so schlecht mit Blitzbasic ??

Eins meiner Projekte ist nämlich ein "GENERISCHER" Online RPG-Gameserver
( in Delphi )

und der basiert nur auf TCP !!!

hmm ... das heisst dann wohl das man keine Clients dafür in BB schreiben kann Sad .... schade


mfg
Hamster
 

Dreamora

BeitragDo, Okt 19, 2006 15:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Schlecht nicht.
Aber da Blitz single threaded ist und die "Versandgarantie" bei TCP drin ist, bleibt das Blitz Programm leider stehen.
Deswegen greift man da dann gerne auf externe DLL basierende Libraries zurück, da die ihre eigenen Threads haben und man somit keine Probleme hat.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group