World of Gothic Archiv > NWN-Hilfe
Projekt: Neverwinter
Seite 2 von 2  1  2 
18.07.2002, 10:57 #26
Orschel
Beiträge: 22

Also Forgotten Book für Lighthawks Datei sollte unbedingt weiter behalten werden.

Weltenschmiede sagt doch eigentlich alles oder ????

Aber ich will mich da nicht aufdrängen, schaun mer einfach mal wie sich das jetzt weiter entwickelt.

Gruß
Orschel
18.07.2002, 11:09 #27
Levi
Beiträge: 43

Also nochmal zur technik: DSL hat einen Upstream von 128 kbit, mehr geht nicht!!!
Wenn ihr mehr gemessen habt, dann war das ein Messfehler! Beim Downstream kann ich das auch ganz leicht erklären, da hat das programm vorher mehr runtergeladen als es angezeigt hat, und diesen Messfehler später ausgeglichen. Tatsächlich mit 160 kb/sec runterladen bei einem downstream von 768kbit ist nicht möglich, und wenn euch das programm das hundertmal erzählt.

Wer mir nicht glaubt, lese doch bitte mal diesen Thread: http://nwn.bioware.com/forums/viewt...=76655&forum=49
Da sind einige Leute mit Messungen auf das gleiche Ergebnis gekommen wie ich mit meiner Schätzung: Mehr als 3-4 Spieler mit 128kbit upsream ist nicht drin.
Was mir aber eingefallen ist: Vielleicht dated der Server die Spieler nur mit solch hohen Raten up, wenn sie sich im gleichen Gebiet aufhalten, wenn also alle in unterschiedlichen Gebieten ist, werden weniger Updates benötigt, also auch weniger Upstream. Spätestens wenn ihr aber zusammen rumlauft und evtl. sogar gegeneinander Kämpft, ist mit lagfrei nichts mehr...

@LightHawk: Das was ich sage einfach als Blödsinn abzustempeln sehe ich wohl als angriff an, das würde wahrscheinlich jeder andere auch. Und: Ja, ich habe alle Beiträge sorgfältig gelesen und ja: ich glaube ihr fallt damit auf die Schnauze, aber ich wünsch euch trotzdem viel glück.
18.07.2002, 11:56 #28
LightHawk
Beiträge: 100

@Orschel:

Ich meinte für das Projekt: Neverwinter.


@Levi:

Ich hab ISDN und konnte D2 und DS meist Lagfrei mit meheren Spielen.
18.07.2002, 13:04 #29
Levi
Beiträge: 43

quote:
Zitat von LightHawk

Ich hab ISDN und konnte D2 und DS meist Lagfrei mit meheren Spielen.



Als Server???
Und wieviel ist "mehrere"?
Und hast du kanalbündelung oder nicht?
Und ich hoffe du redest nicht von einem Closed-BNet-Game, denn die werden eh nicht auf deinem Rechner gehostet!

Wie gesagt, ich stelle diese Behauptung nicht in den Raum, es geht hier um technische Machbarkeit.
18.07.2002, 13:15 #30
LightHawk
Beiträge: 100

Als Server und Client.
D2 und DS bis ca. 8.
Keine Kanalbündlung.
Open B.Net.

Vieleicht irrst du dich in der hinsicht, welche Dsten übertragen werden...
Schlislich sinds nur Positions, Item und Angriffsangaben (ungefähr glaub ich)...
18.07.2002, 13:50 #31
Levi
Beiträge: 43

Naja, so leicht nachrechnen kann man das nicht, weil ich, wie du schon sagtest, nicht weiß wieviel ein Server-Paket enthält.
Aber schätzen wir halt mal:
Für die Postition brauchste schonmal 2*8 Byte schätz ich, dazu nochmal 2*8 Bytes für den Bewegungsvektor. Für Health und Mana dürften je 2 Byte reichen, für Schaden und Armor auch je 2. Für Experience nochmal 4 Byte, für die attribute nochmal 4*1 Byte, für den Skilltree auch ca. 4 Bytes, wenn sies gut anstellen. Dazu brauchst du noch 1 Byte, das den Status des Spielers angibt (Zaubert, Läuft, Kämpft).
Dann sind wir bei 53 Bytes. Pro Item kommen nochmal locker 8 Byte dazu, die das Item eindeutig definiert, aber ich bezweifle dass die jedesmal übertragen werden, also lass ichs sie weg. Dadrauf kommt nochmal 1/4 Paritätsbits, damit fehler erkannt werden. Ohne Items, ohne Chat, ohne Fehlübertragungen die wiederholt werden müssen und ohne Items (die ja doch von Zeit zu zeit upgedated werden müssen) wären wir also bei ca. 66 Bytes. Und ich bin mir sicher dass das oben nur ein Teil der Infos ist die übertragen werden müssen, da kommen sicher noch Spezialeffekte dazu die auf dem Spieler liegen usw.
100 Bytes ca. sind also absolutes Minimum.

Soo, du hast ISDN, also theoretisch 8KB upstream. 8KB/8 Spieler sind 1KB pro Spieler und Sekunde. Das heißt du kannst pro sekunde allerhöchstens 10 Updates fahren, glaubst du damit ist flüssiges Spiel möglich? Wenn du 10 Updates auf dem Bildschirm hast (sprich 10 fps), ist das flüssig? Und die 100 Bytes oben sind eine eher lächerliche Näherung, weil diese imaginäre Paket keinerlei Struktur hat.
Normalerweise geht fast nochmal soviel für Struktur drauf.
Ich schätz mal ca. 250 Bytes sind wahrscheinlich wesentlich näher an der Wahrheit als 100.
Das heißt du bist bei 4 Updates/Sekunde. Als wünschenswert werden 20 Updates/Sekunde angesehen.
18.07.2002, 13:55 #32
Orschel
Beiträge: 22

Das Forumzum Projekt : Neverwinter ist Online

zu finden hier -->Forum des Projekt : Neverwinter

Gruß
Orschel
18.07.2002, 13:58 #33
Paleswift
Beiträge: 154

Also.. mien Senf..

Du hast bei DSL mac´ximal 128 kb upstream, das ist richtig. Parallel dazu hast du aberauchnoch den Downstream! Das heisst, dass die Daten die Spieler an den Server schicken nicht de nUpstream beeinflussen. Angenommen, (optimale Bedingungen) der Client schickt dem server ebensoviele Daten wie er benötigt, was zwar nicht ganz stimmt, aber auch nicht ganz falsch ist, und pro client auf nem 56k Modem 28k konsumiert werden, dann sind das 28k komplett rauf und runter.Auf die 28k komme ich ,da Bioware gesagt hat, dass man über 56 k 2 Clients hosten kann.
Also.. Bei DSL ist das Nadelöhr bekanntlich der Upstream, deswegen betrachten wir mal nur den.. Ein Client braucht einen konstanten Upstream von 14 k (1,75 KB / sekunde) und per dsl schaffen wr im optimum 16kB - konstant erreicht man aber eher nur 14kB abzüglich etwa 1 kB Paketempfangsbestätigungen, kommen wir auf 13 kB pro Sekunde.
Das wiederum geteilt durch die 1,75kB = 7,5 Spieler. Also.. mit 6 sollte man durchaus in der Lage sein einigermassen Lagfrei zu spielen.. und mit 8 Spielern kanns bei guter Verbindung auch noch grade so gehen.
18.07.2002, 14:09 #34
Levi
Beiträge: 43

Äh, so ganz versteh ich die Rechnung nicht, denn
1. Ist der Downstream ist wurscht, denn alle Pakete die der Server empfäng (Downstream) muss er auch an die Spieler wieder abschicken (Upstream), sonst hat die ganze Sache ja nix gebracht. Wenn nur der Server weiß wo die Spieler stehen, die Spieler selbst aber nicht, dann bringt das nicht viel, oder?
2. Mit 2 Spieler spielen meinte Bioware 1 Server und 1 Mitspieler, d.h. der Upstream geht komplett für den einen Mitspieler drauf, der der den Server macht wird direkt versorgt.
3. wieso kommst du von 28k auf einmal auf 14k? wenn jeder Client einen konstanten Upstream von 14k bräuchte könnte ein 56k-Modem ja 4 Spieler versorgen, nicht 2!


Übrigens hab ich natürlich im meiner rechnung oben einen fehler gemacht, denn ich bin beim Paket nur von einem Spieler ausgegangen. Da aber in jedem Paket die Position aller anderen Spieler enthalten sein muss, nicht nur die von einem, kannst du alles was ich oben berechnet habe nochmal mal die Anzahl der Spieler-1 nehmen.
Dann wären aber meine 250 byte übertrieben, ich nehm mal an, dass nicht alle infos von oben ständig übertragen werden. trotzdem denke ich, dass ein Paket in einem 8 Spieler-spiel weit über 300 byte groß sein dürfte, also sogar weniger als 4 Updates/Sekunde für ISDN.
18.07.2002, 14:36 #35
Paleswift
Beiträge: 154

quote:
Zitat von Levi
Äh, so ganz versteh ich die Rechnung nicht, denn
1. Ist der Downstream ist wurscht, denn alle Pakete die der Server empfäng (Downstream) muss er auch an die Spieler wieder abschicken (Upstream), sonst hat die ganze Sache ja nix gebracht. Wenn nur der Server weiß wo die Spieler stehen, die Spieler selbst aber nicht, dann bringt das nicht viel, oder?


Nein.. der server empfängt, bearbeitet, optimiert(hoffentlich) und sendet. Aber nicht jedes Paket so wie es ist.
quote:

2. Mit 2 Spieler spielen meinte Bioware 1 Server und 1 Mitspieler, d.h. der Upstream geht komplett für den einen Mitspieler drauf, der der den Server macht wird direkt versorgt.

]
Oki.. ich hab das allerdings anders verstanden. Wäre übrigens auch etwas arg viel verbratene Leitung für einen einzigen Spieler, deswegen kann ich das irgendwie nicht glauben. (EQ kam mit weniger als 2 kB pro sekunde aus (komplett))
quote:

3. wieso kommst du von 28k auf einmal auf 14k? wenn jeder Client einen konstanten Upstream von 14k bräuchte könnte ein 56k-Modem ja 4 Spieler versorgen, nicht 2!



Ich sagte, ich geh davon aus, dass der Client etwa genausoviel sendet wie er empfängt. Ein 56 k Modem hat 56 k komplett (nicht 56k up und 56k down - sonst wäre das schneller als ISDN).
2 Spieler heisst 56k /2 = 28k

Pro Spieler dann 14k up und 14k down.

quote:



Übrigens hab ich natürlich im meiner rechnung oben einen fehler gemacht, denn ich bin beim Paket nur von einem Spieler ausgegangen. Da aber in jedem Paket die Position aller anderen Spieler enthalten sein muss, nicht nur die von einem, kannst du alles was ich oben berechnet habe nochmal mal die Anzahl der Spieler-1 nehmen.
Dann wären aber meine 250 byte übertrieben, ich nehm mal an, dass nicht alle infos von oben ständig übertragen werden. trotzdem denke ich, dass ein Paket in einem 8 Spieler-spiel weit über 300 byte groß sein dürfte, also sogar weniger als 4 Updates/Sekunde für ISDN.



hmm.. Also.. du hast gerechnet, dass da dauernd der aktuelle Status des Spielers übermittelt wird. Sicher dass das so ist? Das wäre ziemlich ungeschickt. Im Endeffekt musst du nur einmal die Daten eines Spielers übermitteln, und danach nur noch die Änderungen. Ausserdem: Die Bewegungen sollten das Hauptsächliche sein, und da reichts, wenn du dem Server den Aktuellen Verktor schickst, und den übrigen Clients auch, und nur einmal alle 300 Millisekunden einen Positionsabgleich fährst..
Und wenn du das dir genau überlegst.. 1,75 k sind nen haufen Zeug..
das sind 1750+ Bytes und ich komm auf etwa 500 Bytes, die Pro Sekunde vom Client erzeugt werden.. Übermittelt werden müssen allerdings etwas mehr.. Das wären dann Anzahl der (Spieler-1) * 300 Byte.. etwa.
Und da ist alles drinnen - und noch nm biserl Platz für Sachen die ich nicht bedacht habe. Das heisst, dass wir mit 6 Spielern auf alle Fälle noch hinkommen sollten.

P.S.: Wie oft meinst du werden alle anderen Spieler pro Sekunde über deine Aktionen benachrichtigt? Garantiert nicht so oft wie bei einem 3D Shooter, oder?
(Zu bedenken bleibt, dass wir hier ein Rundenbasiertes System haben, und nur immer eine Aktion gleichzeitig machen können)

P.P.S.:Wer Lust hat ist herzlich am Samstag Mittag zu nem Lasttest auf meinem Server eingeladen.
18.07.2002, 15:00 #36
Levi
Beiträge: 43

quote:
Zitat von Paleswift

Nein.. der server empfängt, bearbeitet, optimiert(hoffentlich) und sendet. Aber nicht jedes Paket so wie es ist.



Stimmt, aber meine Berechnung bezog sich bereits auf die optimierten Daten die der Server versenden MUSS um die Spieler up-to-date zu halten, nicht auf das was die Spieler an den Server senden.

quote:

Oki.. ich hab das allerdings anders verstanden. Wäre übrigens auch etwas arg viel verbratene Leitung für einen einzigen Spieler, deswegen kann ich das irgendwie nicht glauben. (EQ kam mit weniger als 2 kB pro sekunde aus (komplett))



EQ ist doch nen MMORPG, oder? Ich nehme an, dass die starke einschränkungen in bezug auf die aktualität der User eingehen.
Aber z.B. Unreal-Engine-Spiele laufen absolut perfekt erst mit 25KB/Sekunde und Spieler! 10KB/Sekunde und Spieler sind standard im Inet. Ok, Unreal ist nen 3D-Shooter, also nicht wirklich zu vergleichen, dafür ist der Netcode aber wesentlich besser als der von NWN.

quote:

Ich sagte, ich geh davon aus, dass der Client etwa genausoviel sendet wie er empfängt. Ein 56 k Modem hat 56 k komplett (nicht 56k up und 56k down - sonst wäre das schneller als ISDN).
2 Spieler heisst 56k /2 = 28k



Hier irrst du! Genau wie bei ISDN hat ein 56k-Modem JEWEILS 56k zur verfügung, kann also gleichzeitig mit 56kbit saugen und uppen.
Ich hab kanalgebündeltes ISDN, also 128kbit, und ich kann gleichzeitig mit 16kbyte/sekunde uploaden und downloaden.

quote:

hmm.. Also.. du hast gerechnet, dass da dauernd der aktuelle Status des Spielers übermittelt wird. Sicher dass das so ist? Das wäre ziemlich ungeschickt. Im Endeffekt musst du nur einmal die Daten eines Spielers übermitteln, und danach nur noch die Änderungen.



Das kann man machen, vielleicht tun sies sogar, aber das wär extrem fehleranfällig. Ein Ruckler bei nem spieler, ein fehlerhaft übertragenes oder gedropptes Paket und schon sind die Spiele nicht mehr syncron, und werden es nicht mehr, bis du ein komplettes update passiert.

quote:

Ausserdem: Die Bewegungen sollten das Hauptsächliche sein, und da reichts, wenn du dem Server den Aktuellen Verktor schickst, und den übrigen Clients auch, und nur einmal alle 300 Millisekunden einen Positionsabgleich fährst..



Siehe oben. Das würde ebenfals zu lag führen, in dem falle nicht wegen unausreichendem Upstream sondern asyncronen Informationen.
Was passiert, wenn ein Spieler einen Bewegungsvektor an den Server geschickt hat, dann aber das spiel ruckelt, so dass er sich in der gewünschten Zeit nicht soweit bewegt, wie er es dem Server mitgeteilt hat? Das Spiel wird asyncron, so dass die Spieler in die Luft haun und trotzdem treffen, oder Leute durch die Gegend beamen sobald der Server ein Positionsupdate durchführt.
Sprich: Das reduziert zwar den Upstream, führt aber seinerseits wieder zu lag anderer Art.

quote:

Und wenn du das dir genau überlegst.. 1,75 k sind nen haufen Zeug..
das sind 1750+ Bytes und ich komm auf etwa 500 Bytes, die Pro Sekunde vom Client erzeugt werden.. Übermittelt werden müssen allerdings etwas mehr.. Das wären dann Anzahl der (Spieler-1) * 300 Byte.. etwa.
Und da ist alles drinnen - und noch nm biserl Platz für Sachen die ich nicht bedacht habe. Das heisst, dass wir mit 6 Spielern auf alle Fälle noch hinkommen sollten.



Jaa, die Rechnung zeig mir mal bitte...

quote:

P.S.: Wie oft meinst du werden alle anderen Spieler pro Sekunde über deine Aktionen benachrichtigt? Garantiert nicht so oft wie bei einem 3D Shooter, oder?
(Zu bedenken bleibt, dass wir hier ein Rundenbasiertes System haben, und nur immer eine Aktion gleichzeitig machen können)



Ja moment, die kämpfe laufen rundenbasierend, nicht das ganze System.
Du kannst ja z.B. im Kampf schlagen und direkt weglaufen ohne auf deine nächste Aktion zu warten. Der Gegner trifft dich trotzdem als ob du noch direkt vor ihm stehen würdest, aber so oder so, die Positionen der Figuren bewegen sich nicht rundenbasieren. NWN ist ein echtzeit-System das ein rundenbasierendes Simuliert, und deswegen brauchst du schon ständige Updates, und zwar viele!
Genausoviele wie bei einem 3D Shooter, nur dass
1. Die Pakete wahrscheinlich kleiner sind, weil keine (oder weniger) Informationen über Projektile übertragen werden müssen und
2. Bei einem RPG lag und ruckeln nicht so stark auffallen wie bei einem 3D-Shooter.
18.07.2002, 15:06 #37
Paleswift
Beiträge: 154

Oki.. magst ja recht haben mit dem meisten.. geb ich zu, bin ich nicht wirklich der Profi.. ich hab zwar sowas studiert, aber deswegen muss ich davon noch lange nichts verstehen.. gell? :D

Und wie du bei ISDN 8 kB up und down gleichzeitig machst.. das zeig mir mal.. oder wenigstens 7 up und down.. bin interessiert und würde da gerne was dazu lernen.. ist nur recht ärgerlich, nachdem ich jetzt Jahrelang ISDN Flat hatte, dass ich erst jetzt gesagt krich, wie man das macht ;)

Ich kanns mir einfach nicht verkneifen:
Wie oft ändert sich ein Attribut?
Wie oft wird ein Gegenstand geändert?
...
Warum sollte ich das alles immer und immer wieder übertragen?
Oder anders gefragt.. warum sollte ich das überhaupt übertragen?
Nur wenn es von irgendwem verlangt wird, oder?
das heisst, wenn der Charakter schirm geöffnet ist, muss da rein, welchen Wert Stärke hat. ansonsten kannste das auch ruhig aufm Server mitprotokollieren. Selbst, wenn das ständig auch beim Charakter benötigt wird, warum sollte ich 20 mal pro Sekunde den Wert 14 der Stärke übermitteln, wenn der sich nur einmal alle 10 Minuten ändert?
Bei den Positionen geb ichs zu.. aber bei so nem Zeugs?
Und warum muss überhaupt Stärke an andere Mitspieler raus? Die dürfen das doch eh nicht wissen, oder? Das selbe auch mit den Gegenstänsden.. Solang die im Inventory sind interessierts doch eh nur den Spieler, der die im Inventory hat, oder? Wenn ein Char ein Schwert in der Hnd hat, warum soll ich dann 20 mla pro Sekunde übermitteln "Schwert in Hand!" is doch quatsch, oder? und Projektile müssen überhaupt nicht übermittelt werden.. nur ob ein treffer oder nicht.. usw.
18.07.2002, 15:25 #38
Levi
Beiträge: 43

Schaust du hier: www.levisworld.de/traffic.jpg

Darf man rein interessehalber fragen, was du studiert hast (und wie lang :D ) Nich böse nehmen, war nur n späßle. ;)
18.07.2002, 15:27 #39
Paleswift
Beiträge: 154

Bin fertiger Diplominformatiker.. :D

P.S.: Cool deine Messung.. aber kann irgendwie net sein.. Hab ähnliche Messungen mit meiner Linuxkiste gemacht, kam aber nie so hoch..
18.07.2002, 15:29 #40
Levi
Beiträge: 43

Hehe, davon bin ich leider noch mindestens 5 Semester weg... :(

Ja sorry, aber das ist nen original screenshot...
Wenn das nicht als beweis reicht, dann kann ich leider auch nix machen...
18.07.2002, 15:39 #41
Paleswift
Beiträge: 154

´Häufig ist es so, dass man mal für einige Minuten tatsächlich solche übertragungen hinbekommt, ist mir auch schon passiert.. aber das ist nicht die Norm.. Frag mich nicht, wie das passieren kann ,aber hatte schon mal via ISDN fast 200kBit down über etwa 2,5 Minuten.. aber das ist dann auch gleich wieder zusammengebrochen.. Frage: Hast du Datenkompression aktiviert? .. und 2. Welche daten hast du übertragen .. BMP-Bilder, Wav-Files? oder andere schwach komprimierte Daten?
Dann könnte das nämlich auch sein, das dass nicht die Tatsächliche Rate ist, sondern nur die komprimierte.. Was hinter dem ippp rausfällt sind dann schon die dekomprimierten Daten - aber mit denen zu rechnen ist fatal..
18.07.2002, 15:46 #42
Levi
Beiträge: 43

Nope, ich hab diese Übertragungsrate konstant.
Was ich übertragen habe waren einige binarys von und zu meinem Webspace, zum testen. Und ich bezweifle, dass bei Binarys fast 50% durch komprimierung rauszuholen sind... Zumal mein Provider sagt, er unterstüzt keine Datenkompression. Wollten sie zwar einführen, hamse aber noch nicht getan.
Wie gesagt, mehr als dir screenshots schicken werde ich nicht tun, wenn du mir nicht glauben willst. Ich werd dir wohl kaum root-zugriff auf meinen Linux-rechner geben, damit du selber messen kannst. ;)
18.07.2002, 15:48 #43
Paleswift
Beiträge: 154

Leider ist das nicht die Regel..
Eins musste aber noch verraten.. welcher Provider?
18.07.2002, 15:57 #44
Levi
Beiträge: 43

Der Provider ist Arcor.
Seite 2 von 2  1  2