Hilfestellung zu MMORPG...?
Übersicht

![]() |
KryanBetreff: Hilfestellung zu MMORPG...? |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() MfG Kryan |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok,
da liegt dann mein Problem, stimmt, hab TCP genommen ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit 2 computern ![]() 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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Einfach verschiedene Ports verwenden... | ||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie D2006, du meinst ein Stream zum schreiben UND lesen?? | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja natürlich. ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() mfg Hamster |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group