World of Gothic Archiv
Alle Beiträge von Paleswift
Seite 6 von 7 « Erste 2  3  4  5  6  7 
17.07.2002, 15:51 #126
Paleswift
Beiträge: 154
OOT: Katzenwäsche -
hmm.. also sicher bin ich mir nicht.. aber Frage:
Was hat vie Beine, ein zartes weißes Fell, weiche Lenden und eine wundervoll blökende Stimme? :D

Hehe.. und nein, ich spreche nicht aus eigener Erfahrung! :D
18.07.2002, 13:58 #127
Paleswift
Beiträge: 154
Projekt: Neverwinter -
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:36 #128
Paleswift
Beiträge: 154
Projekt: Neverwinter -
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:06 #129
Paleswift
Beiträge: 154
Projekt: Neverwinter -
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:27 #130
Paleswift
Beiträge: 154
Projekt: Neverwinter -
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:39 #131
Paleswift
Beiträge: 154
Projekt: Neverwinter -
´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:48 #132
Paleswift
Beiträge: 154
Projekt: Neverwinter -
Leider ist das nicht die Regel..
Eins musste aber noch verraten.. welcher Provider?
19.07.2002, 14:42 #133
Paleswift
Beiträge: 154
Wie geht das mit den Fraktionen? -
Wenn du dann eine neue Fraktion mithilfe des Tools erstellt hast, geh am besten auf die Advanced Tabelle.. Sieh dann nach, ob alle Fraktionen ausgewählt sind. Sind alleausgewählt wirst du da rote blaue und graue Felder mit Zahlen darinnen sehen. Blau wird ein Feld, wenn ein Wert grösser 90 drinnen steht. Rot ist es unter 10. Alles dazwischen ist grau. Du kannst die Zahlen einfach reinschreiben.
Willst du, dass eine Fraktion die Andere nicht mag, dann musst du folgendes tun:
Angenommen es gibt 2 Fraktionen - Orks und Commoners.
Wenn die Commoners die Orks dann nicht mögen sollen, dann siehst du links am Rand nach, wo die Commoners Sind. Dann etwas weiter rechts in der gleichen Zeile findest du die Spalte mitden Orks. dorst trägst du einfach 0 ein. Schon ists passiert. Menschen mögen keine Orks mehr.
Wenn die Orks die Menschen ebenfalls hassen sollen, dann trage in der Zeile der Orks und dort in der Spalte der Menschen ebenfalls 0 ein.
19.07.2002, 14:44 #134
Paleswift
Beiträge: 154
@jf -
Es gibt kein Brot.. glaube ich.. oder irre ich mich da?
20.07.2002, 12:01 #135
Paleswift
Beiträge: 154
Eigene Module instabil !? - Eigene Module instabil !?
Hi Leute.. mal ne Frage..
Also: Ich hab ein Modul gebastelt, und es dann mit dem Menüpunkt BuildModul verifiziert. Da gabs keine Fehler. Auch an sonsten hab ich eigentlich nur Standardviecher reingesetzt.. einige Gobos und nen paar Echsenkrieger in ner Höhle. Alles nichts aussergewöhnliches..
Das späktakulärste Monster ist ein Goboschamane.. aber auch nur das
Standardviech aus dem Toolset.

Dann will ich das mal ausprobieren, und was passiert? Das Spiel stürtzt immer wieder ab. Aufm Linuxserver etwas schneller, unter Windoof aber dann auch irgendwann.. Es hängt sich einfach auf. Nehme ich eines der Vorgefertigten Module, läuft das Spiel einwandfrei.. auch wenns sein muss mal ein paar Stunden am Stück.
Hat jemand damit mal erfahrung machen können oder hat jemand das selbe Problem?

Hat vielleicht jemand von euch sogar die Lösung?
20.07.2002, 16:03 #136
Paleswift
Beiträge: 154
Linuxserver: Sehr interessante Entdeckung!!! - Linuxserver: Sehr interessante Entdeckung!!!
Ich habe soeben festgestellt, dass die Abstürze des Dedicated Linuxservers von einem Fehler im deutschen Toolset ausgelöst werden.
So wie es ausschaut, ist da estwas ganz gewaltig im argen beim Compiler des Toolsets. Sagen wir es so.. De ganze Zeit war ich froh, dass der Linuxserver mal 20 Minuten gelaufen ist.. der läuft jetzt aber auch schon seid etwa 2 Stunden. REKORD.. Ich will noch nichts versprechen, oder das blaue vom Himmel erzählen, aber so wies scheint liegen sämtliche Abstürze auch bei den Windowsrechenern daran, dass das deutsche Toolset fehlerhaft ist.Washab ich nun gemacht? Ganz einfach.. Ich hab ein Modul mit dem deutschen Toolset gebastelt, und es dann im englischen nochmal kurz geöffnet und neu abgespeichert. Das Modul was ich vorher nie länger als 5 Minuten laufen lassen konnte, und was bei so ziemlich allen Kämpfen sich aufgehängt hatte läuft seitdem schon seid kurz vor 15:00. Ich habe das Modul mit einem Charakter durchgespielt und alle Kämpfe die machbar waren ausgefochten.. und der Server läuft!

Wer noch kein Spiel gekauft hat sollte sich nun spätestens überlegen, die englische Version zu kaufen.
20.07.2002, 16:04 #137
Paleswift
Beiträge: 154
Eigene Module instabil !? -
Problem gelöst: Eifach nochmal mit dem englischen Toolset neu abspeichern. Dann ists super stabil!
Genaueres in diesem Thread
22.07.2002, 08:47 #138
Paleswift
Beiträge: 154
Sonntag Abend Testlauf -
Sorry.. Nein.. ist noch nicht ganz eingeschlafen.. aber ich hatte massive Probleme mit der Intabilität .. wiedermal.. und nochmal ein 'leeres' Modul wollte ich auch nicht spielen.. Hat sich rausgestellt, dass es zwar sehr viel stabieler wird, wenn man ein Modul mit dem englischen Toolset abspeichert, aber naja.. so ganz stabil ists dann trotzdem nicht. Und wegen 10 Minuten spielen und dann Server neu starten und wieder 10 Minuten spielen.. da warten wir mal lieber auf die nächste Version.
22.07.2002, 09:06 #139
Paleswift
Beiträge: 154
Sonntag Abend Testlauf -
Aus verwzweiflung sind wir gestern dann auch nochal auf nen offenen Server gejoint.. und du wirsts nicht glauben.. auch der ist dann irgendwann weggebrochen.. Im Bioware Forum sind auch alle am Fluchen.. keiner hat ne wirkliche Lösung. Wenn du autosave weglässt und gamespy diablest, wirds zwar besser, aber nicht gut.
Wie gesagt.. Hatte Am WE zwischenzeitlich auchmal ne uptime von sage und schreibe 2,5 Std. .. wurde aber leider nicht zur Regel.
22.07.2002, 09:29 #140
Paleswift
Beiträge: 154
script Editor spinnt scheinbar -
Wo hast du denn dieses Script eingefügt?
22.07.2002, 09:39 #141
Paleswift
Beiträge: 154
script Editor spinnt scheinbar -
hmm.. ist das nicht das Gleiche, Gawain?
22.07.2002, 09:51 #142
Paleswift
Beiträge: 154
script Editor spinnt scheinbar -
Jagenau.. das stimmt, aber so wie ers geschrieben hat kommt ja aus der Funktion GetLastUsedBy ein object raus, das dann gleic in die Funktion StartConversation reingeschoben wird. Der Output der einen Funktion wird direkt zum Input der nächsten. So wie du das geschrieben hast, ist es auch richtig, und wäre sinnvoller, wenn man das oPC Object nochmal verwenden würde.. Da fällt mir grade auf, dass da eigentlich noch ein ActionDoCommand aussen herum gut wäre, oder?
So zu sagen:
ActionDoCommand(ActionStartConversation(oPC));

Oder wird das Do Command hier nicht benötigt.. wenn das so ist, warum?
22.07.2002, 12:54 #143
Paleswift
Beiträge: 154
Kampf wird nicht unterbrochen... -
Hmm.. hab grad kine Ahnung, warum das nict funkt.. aber haste schon mal das ausprobiert?

void SurrenderToEnemies();

Weiss nicht, was diese Funktion tut, aber hört sich doch nett an, oder?
22.07.2002, 16:17 #144
Paleswift
Beiträge: 154
Item Übergabe -
Dabei wird der Gegenstand aber nicht wirklich übergeben.. sondern im Inventory des oPC erzeugt ;) Das ist etwas vöööööllig anderes!
22.07.2002, 16:53 #145
Paleswift
Beiträge: 154
Item Übergabe -
Das war als Scherz gemeint.. allerdigs giebt es tatsächlich einen Unterschied.. Wenn der Spieler den Gegenstand bekommen hat, und den NPC dann tötet, hat er ihn ja schon 2 mal, oder?
22.07.2002, 16:59 #146
Paleswift
Beiträge: 154
Die sache mit dem Umhang -
Hast du auch einen Umhang ohne Kapuze in Planung? wäre eh geschickter die Einfach weg zu lassen.. aus nem einfachen Grund.. wenn ein PC nen Helm trägt, schauts glaube ich seltsam aus, wenn der dann ne Kapuze überm Helm hat, oder?


Achja.. wenn du willst, schick mir die Bilder, ich leg sie dann auf meinen Server.. dann kannste dirdas mit dem Geshitties sparen

(insc@webde-ag.de)
23.07.2002, 08:05 #147
Paleswift
Beiträge: 154
Kampf wird nicht unterbrochen... -
Das ist Simpel.. male nen Standad Trigger um die Tür rum und wenn jemand drauf tritt (OnEnter) dann checkste ab, ob er das hat was er braucht.. OnExit kannste die Türe ja wieder öffnen. Die Türe musste Handlung ankreuzen und nur mit Key öffnen lassen, dann kriegste die auch nicht anderweitig auf. Falls mehrere Spieler den Trigger betreten, wäre es natürlich sinnvoll mitzuzählen, wieviele sich auf dem Triggerfeld befinden, und die Türe nur bei 0 wieder zu öffnen.
24.07.2002, 08:14 #148
Paleswift
Beiträge: 154
Item Übergabe -
Lass dir mal mit Hilfe der Funktion

void PrintString(string sString);

anzeigen, ob er in die if-Abfrage überhaupt rein geht.. vielleicht ist das innere gar net falsch, sondern das mit der Abfrage, nach dem Losungswort.



Also.. probier mal das aus:
code\:

void main()
{
// Check: Funktion wird betreten.
PrintString("Funktion aktiviert");
// -----------------------
int iHoeren = GetListenPatternNumber();
string sRufen;

if(iHoeren == 777) // das dürftest du noch kennen *g*
{
// Check: Wurde etwas gehört?
PrintString("Es wurde Patternnumber 777 aktiviert.");
// -----------------------

sRufen = GetMatchedSubstring(0);
// Check: Wurde das rictige gehört?
PrintString("Es wurde '" + sRufen + "' gehört!");
// -----------------------

if(sRufen == "Losungswort") //erklärt sich von selbst
{

// Check: Wurde das rictige gehört?
PrintString("Das gehörte stimmte mit dem Losungswort überein.");
// -----------------------

object oPC=GetFirstPC(); // Warum eigentlich FirstPC ? Wie wäre es mit 'GetLastSpeaker();'
object oNPC=GetObjectByTag("lich_king");
// ein NPC der auf nix auser dem Losungswort reagiert
object okey_1=GetObjectByTag("key_1");
AssignCommand(oNPC, ClearAllActions());
CreateItemOnObject("key_1", oNPC, 1);
AssignCommand(oNPC, ActionGiveItem(okey_1, oPC));
}
}
}




Wenn das nicht reicht.. mach noch mehr debugg Marker rein. dann sollteste sehen, zu welcher Stelle er nicht kommt. Und im Zweifelsfall Frag die bjekte noch etwas ab, also z.B.: 'GetIsObjectValid(oPC);' ..oder.. 'GetIsPC(oPC);'.. oder halt sowas.. Damit kannste schon einiges an Fehlern abfangen, bzw. rausfinden, worans hakt.


___________________________

c===|[:::::::::::::::::>
Ja! ich bin unfähg die Rechtschreibung zu beachteln.. und das isd auch dut so![/font]
24.07.2002, 08:54 #149
Paleswift
Beiträge: 154
Hilfe Beim Conversation Editor. -
Also.. die Konversation funktioniert eigentlich ganz einfach.
Also.. ich bin jetzt das Programm und tu mal meine Arbeit:

Anfangen tut das ganze mit Var = 0:
Dann geh ich von oben nach unten die Knoten durch und nehme den, den ich als erstes nehmen darf.
+ Text2: Text erscheint wenn Var = 1
(Den Darf ich nicht nehmen, da Var ungleich 1)
+ Text1: Var auf eins setzen.
(den Darf ich nehmen, da es keine Vorbedingung giebt.. also nhm ich ihn.. und nun setz ich Var auf eins)

Das ganze beim 2. Mal wieder von Vorne:
Nun aber ist Var = 1.

+ Text2: Text erscheint wenn Var = 1
(Den Darf ich nehmen, weil Var ist nun 1 also nehm ich ihn.)
+ Text1: Var auf eins setzen.
(Den kann ich gar nicht mehr nehmen, da ich diesmal schon den Text2 genommen habe.)

Also.. Wichtig ist wie gesagt die Reihenfolge, weil immer der erste Zweig betreten wird, auf dem alle Bedingungen erüllt sind. Sind KEine Bedingungen vorhanden, wird dieser automatisch betreten. ABER IMMER DER ERSTE MÖGLICHE VON OBEN!
24.07.2002, 13:45 #150
Paleswift
Beiträge: 154
Item Übergabe -
Okilidokili.. hab mir das grade von dir nochmal angeschaut und den Fehler gefunden..
Hier nochmal mit erläuternden Komentaren:

code\:


if(sRufen == "Losungswort") //erklärt sich von selbst
{
// Check: Wurde das rictige gehört?
PrintString("Das gehörte stimmte mit dem Losungswort überein.");
// -----------------------

object oPC=GetFirstPC(); // Warum eigentlich FirstPC ? Wie wäre es mit 'GetLastSpeaker();'
object oNPC=GetObjectByTag("lich_king");
// ein NPC der auf nix auser dem Losungswort reagiert
object okey_1=GetObjectByTag("key_1"); //Hier ist der Fehler..
// Warum?: Du versuchst ein Object zu holen, dass so noch nicht existiert.. nur als Vorlage. Daher ist okey_1 = OBJECT_INVALID
AssignCommand(oNPC, ClearAllActions());
CreateItemOnObject("key_1", oNPC, 1);
//.. so hier hast du soeben das Object erzeugt, auf das du aber jkeine Referenz dann hast.
AssignCommand(oNPC, ActionGiveItem(okey_1, oPC));
// Hier giebst du dann OBJECT_INVALID weiter.. was nicht funktioniert.. logisch.
}



Richtigrum siehts so aus (Reihenfolge geändert)
code\:


if(sRufen == "Losungswort") //erklärt sich von selbst
{
object oPC=GetFirstPC(); // Warum eigentlich FirstPC ? Wie wäre es mit 'GetLastSpeaker();'
object oNPC=GetObjectByTag("lich_king");
// ein NPC der auf nix auser dem Losungswort reagiert
AssignCommand(oNPC, ClearAllActions());
object okey_1 = CreateItemOnObject("key_1", oNPC, 1);
AssignCommand(oNPC, ActionGiveItem(okey_1, oPC));
}




___________________________

c===|[:::::::::::::::::>
Ja! ich bin unfähg die Rechtschreibung zu beachteln.. und das isd auch dut so![/font]
Seite 6 von 7 « Erste 2  3  4  5  6  7