Network langsam?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Network langsam?

Beitrag von sen-me »

Ist das Network von PB geeignet für MMORPGS?
Kein 3D oda so wie WoW oder Everquest, eher Textadventure + Bilder und so, also wie Browsergames.

Wenn da 100 Spieler online sind und Daten senden, lagt es nicht dann nicht?

Also mit nem Chat hab ich die erfahrung gemacht (user schreibt -> server schickt an alle Clients den Text) (2 User warn online) das es laggen kann wenns aufm Privat-PC läuft.
Bild
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Wenn de UDP verwendest schon, aber du willst ja nicht auf PB4 updaten...
Bild
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

Doch hab mir weil es nicht anders ging 4 geholt

wasn der unterschied zwischen UDP und TCP?
Also in geschwindichkeit, was macht es aus bei denen?
Bild
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

sen-me hat geschrieben:Doch hab mir weil es nicht anders ging 4 geholt

wasn der unterschied zwischen UDP und TCP?
Also in geschwindichkeit, was macht es aus bei denen?
Grob gesagt TCP hat Verbindungen, dessen Nachrichten sicher übermittelt werden und UDP hat keine Verbindung, dessen Nachrichten auch nicht sicher übermittelt werden, dafür ist es aber schneller als TCP.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Nicht ganz so grob gesagt:
TCP garantiert dir, dass deine Daten fehlerfrei und in der Richtigen Reihenfolge eintreffen; Sendefehler werden automatisch korrigiert. Empfängt nur angeforderte Daten.

UDP sendet einfach so Daten und hat keinerlei Fehlerkorrektur. Dafür geht das senden halt schneller. Habe auch mal gehört, dass man mit UDP auch einfach so an einen x-beliebigen Rechner Daten schicken kann, und er sie annimmt, obwohl er sie nicht engefordert hat.

Tipp: Nimm UDP. Eine einfache Fehlerkorrektur kannst du dir ja selber bauen, indem du deiner Zeichenkette, die du übermittelst, z. B. einen CRC32 Code anhängst. Dann kann der Server prüfen, ob die Daten korrekt angekommen sind. Die meisten Spiele, z. B. Tactical Ops und Gouda Strike benutzen ebenfalls UDP. Das ist auch der Grund, weshalb ich mit OB3.94 nicht auf einen Server connecten konnte :roll:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Sowas wie ein Browsergame sollte wirklich kein problem sein.

Bei "richtigen" MMORPGs ist es eher eine Frage, ob man den Netzverkehr intelligent genug aufbaut und ob man mehrere Server hat. Du kannst davon ausgehen, dass ein WoW Realm nicht auf einem einzigen Server läuft.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Und was ist mit so einer Maschiene ;)?
http://www.amdboard.com/iwill_h8502_8way.html

Mit Opteron Double Core wären das 16 Prozessoren in einem Server...
Bild
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

wenn das teil nicht nur eine netzwerkkarte hat ^^

das problem ist ja weniger die rechenleistung ;)
RaVeN99
Beiträge: 310
Registriert: 29.08.2004 15:26
Wohnort: Weiden i.d.OPF
Kontaktdaten:

Beitrag von RaVeN99 »

Stimmt, also an Rechenleistung hängts sicher ned:
Der UO-freeshard "Schattenwelt" lief lange Zeit auf nem PIII 1GHz mit 512MB Ram... Und da waren zu stoßzeiten schonmal so 300 Leutz locker online...
Allerdings hatten die ne ganz andere I-net Anbindung ;)

Wenn du das ganze privat machen willst, solltest du dir vllt. überlegen ob die Bilder nicht offline verfügbar sind, sprich auf jedem client vorhanden. Das würde schonmal n haufen zeit sparen, was bliebe wäre der Text. Ich kann mir nur irgendwie grade etwas schlecht vorstellen dass n Chat bei zwei usern lagt. Das wäre sogar für TCP/IP etwas krass.
Sogar bei DSL 1000 haste im Schnitt nen Upstream von ca 16KB/s, was für des bissel text allemal ausreichen sollte. N paar millisekunden kannste auch noch mit Fastpath rausholen.

Die versessenheit auf UDP kann ich übrigens nicht ganz verstehen, da es durchaus online games gibt die damit laufen, und das mit durchschnittlichen latenzzeiten. Es kommt eben auch immer auf den netzwerkcode an. Eine bescheiden programmierte UDP basierte network engine kann um ein x-faches langsamer sein als ein gut durchdates TCP/IP pendant.


Aber zu deiner eigentlichen Frage ob es denn geeignet sei:
Ich hab bisher gute Erfahrungen damit gemacht mit n paar kleineren Projekten, da gabs auch nur wirklich hohe latenzen wenn irgendwo im code mal n absoluter käse stand ;)

Meine 5 cent.


Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

Also immer lagte es nicht
Der Client sendete ne Nachricht und wartete auf ne antwort vom Server (der sendet dann an alle Clients die Nachricht, sprich wenn du deine Nachricht nicht erhälst sofort, dann lagt es)

Und es lagte auch nur wenn man schnell ein paar Sätze schreibt (beide Clienten)

Aber ich frage mich, ob das so klug wäre.
Denn es gibt ja ne Warteschlange wo die Daten bearbeitet werden er kann ja nicht 2 Clients gleichzeitig behandeln, vor allem wenns 100 sind.
D.h. für ein Spiel (meins nich) das Ego-Shooter oder so hat wäre das doch tötlich wenn man nur 1 Programm hat was Daten verarbeitet O.o
Bild
Antworten