PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wie arbeiten die random encounters?



Zamarus
11.07.2005, 16:28
moin!
das ist etwas, worüber ich mir immer wieder gedanken mache.. nur bin ich erst vor kurzem auf die tolle idee gekommen, diese frage mal mit jemandem zu teilen :rolleyes:
vielleicht weiß das ja sogar jemand..

also wie arbeiten die random encounters in final fantasy?
ich hab schon verschiedene funktionsweisen durchdacht.. ganz einfache sachen wie "bei jedem schritt eine hausnummer-prozentige chance" schließe ich aus, da ein kampf bei mir noch niemals 1-3 schritte nach einem vorhergehenden gekommen ist, und ich spiele FF schon sehr sehr lange..

das hat mich irgendwie auf folgende theorie gebracht:
erster schritt: 0% chnace, 2. schritt: 1,5%, dritter schritt: 3% usw.
wäre doch möglich oder?

in laangen level nächten sind mir da schon viel wildere theorien durch den kopf geschossen.. ^^
"was wenn dieser kampf an genau dieser stelle vorprogrammiert war, und ich sie nur umlaufen hätte müssen?".. hehe ~naja, vielleicht hat ja schonmal irgendwann jemand in dem code nachgesehn oder so, keine ahnung ^^

was meint ihr?
gruß

LKIvy
11.07.2005, 18:07
Ich denke mal der Algorithmus ändert sich von Spiel zu Spiel. Grundsätzlich dürfte aber immer mit einem Zufallszahlengenerator gearbeitet werden; die meisten Programmiersprachen weisen eine solche Funktion auf, man muss der Funktion nur Grenzwerte mitteilen zwischen denen die generierte Zahl liegen soll. Wie allerdings die Zufallszahlengeneratoren nun arbeiten, ist mir nicht bekannt. Könnte alles mögliche sein von Systemzeit zu Prozessortaktrate. Vielleicht benutzen die ja auch einen Selbstgeschriebenen.

Ich errinnere mich daran einmal Dokumente über die Algorithmen in FFVI durchgelesen zu haben. FFVI wurde von Fans im Grunde ja schon von vorne bis hinten zerlegt. Hab das mal rausgesucht*:


The game keeps a counter that increases each time you take a step. Each step a random number is picked from 0 to 255, if this number is less than (counter / 256 ) then a fight occurs. When a random encounter occurs the counter is reset to 0. If the lead party member has a Charm Bangle equipped, then the number added is cut in half. If mog has the Moogle Charm equipped, then the counter is not increased and there is no chance of random encounters.

Values added to counter by terrain:
Terrain Value
Caves 112
Grass 96
Desert 192
Forest 192
Snow 112
Town 112
Mountain 112
Allerdings muss ich sagen, aus persönlicher Spieleerfahrung schien mir der Zufallszahlengenerator in FFVI herzlich wenig zufällig zu generieren, sondern nach einem Kampf bereits irgendwie festzulegen nach wievielen Schritten der nächste Kampf kommt.

*http://www.cyberveldt.com

Vio
11.07.2005, 18:36
ich weiß ja nicht, ob ich immer Glück/Pech hatte, aber ich hatte immer eher das Gefühl, dass mit steigender Anzahl an Richtungs-Wechseln die Encounter-Rate (ER) gestiegen ist :D. Sprich wenn man der folgenden ASCII-Zeichnung (:p) "die Wand entlang" (sprich den waag-/senkrechten Strichen entlang) folgt, bekommt man schneller einen ER als wenn man der "x"-Linie folgt ^^ (ignoriert die "0" und "." einfach gekonnt und ihr werdet sehen ;))


|_xxxxxxxx
00|_.........x
0000|_......x
000000|_.. x


Kann natürlich sein, dass ich mich derb täusche, aber in End-Dungeons hat man gerne viele, lange Passagen eingebaut, bei denen man *links-oben-links-oben-links-oben* oder andere kombinationen gehen durfte/musste.

Nur um eine weitere verrückte Theorie aufzutun :D

Zamarus
11.07.2005, 20:34
hehe, das kenn ich vio!
ich hab das gefühl dass immer, wenn ich irgendetwas untersuchen will, mich die monster am liebsten nerven ^^ glaub aber weniger dass es dafür nen code gibt der dich davon abhalten soll hehe~

LKIvy:
klingt sehr interessant. zum glück haben wir ja emulatoren auf denen wir das testen können :D
auf diesem rechner hier hab ich leider überhaupt kein ff6.. aber dafür lufia~ (ist zwar wieder was völlig anderes, aber interessant isses trotzdem~)
hab state 1 gespeichert, und bin auf der karte losgerannt.
nach exakt 26 schritten hat ein random encounter gestartet, egal in welche richtung ich mich bewegt habe. also hab ich nachm 25. gespeichert, in alle richtungen mind. 50 mal einen schritt versucht (um auch die theorie der zufallszahl weitgehend auszuschließen).. dem kampf kann ich nicht mehr entkommen. vielleicht ist die anzahl der schritte vorher festgelegt?

eine andere interessante tatsache ist....
ihr seid in einem kampf, euer charaktere hat die atb leiste voll und ihr.... speichert erstmal bevor ihr weiter macht :D
anschließend greift an.. ladet den alten state und greift nochmal an.. es wird exakt der selbe schaden verursacht.

LKIvy
12.07.2005, 10:00
LKIvy:
klingt sehr interessant. zum glück haben wir ja emulatoren auf denen wir das testen können :D
auf diesem rechner hier hab ich leider überhaupt kein ff6.. aber dafür lufia~ (ist zwar wieder was völlig anderes, aber interessant isses trotzdem~)
hab state 1 gespeichert, und bin auf der karte losgerannt.
nach exakt 26 schritten hat ein random encounter gestartet, egal in welche richtung ich mich bewegt habe. also hab ich nachm 25. gespeichert, in alle richtungen mind. 50 mal einen schritt versucht (um auch die theorie der zufallszahl weitgehend auszuschließen).. dem kampf kann ich nicht mehr entkommen. vielleicht ist die anzahl der schritte vorher festgelegt?

FFVI dürfte da auf die gleiche Weise reagieren wie Lufia.

Ja, die "Zufallszahlengeneratoren" bei den NES und SNES Spielen scheinen noch nicht so ausgreift zu sein, und eher eine Zahlensequenz zu produzieren, und je nachdem wo man sich in der Zahlensequenz befindet erscheint einem die Encounter Rate mehr oder weniger unregelmäßig. Naja, wenn man es genau betrachtet gibt es in der angewandten Informatik noch keine _echten_ Zufallszahlen; es wird immer physikalische Abhängigkeiten geben. Deshalb würde ich den Zahlengenerator auch bei FFVI immer noch als Zufallszahlengenerator ansehen.

Ich traue den späteren Spielen da eine bessere Implementierung zu, denn dort sind mir die Random Encounters zumindest gefühlsmäßig anders verteilt. (Müsste mal FFVIII und FFVII auf epsxe testen, wenn ich Zeit hab)
Wenn ich da an FFIV zurückdenke, hab ich immer das Gefühl da hat man einen 3/4 Walzer getanzt, so regelmäßig wie das Kampfmuster war.

Liferipper
12.07.2005, 14:15
(Müsste mal FFVIII und FFVII auf epsxe testen, wenn ich Zeit hab)

Dürfte aber nicht so einfach festzustellen sein, wie bei den älteren Teilen, da die Charaktere hier "richtige Schritte" machen, statt sich nur "von Feld zu Feld" zu bewegen. Auf jeden Fall kann man hier die Encounter-Rate runterschrauben, indem man immer rennt.

Dreammaster
12.07.2005, 14:56
Also, in FF2 ist der Encounter der Kämpfe simpel zu erkennen, denke ich. Zumindest ist es in der DoS-Version der fall.
Dort wird nach einem Kampf eine zufällige Zal an Schritten ausgewählt, die die Figur gehen kann, bis ein neuer Kampf stattfindet.
Angenommen, ihr könnt 10 Schritte gehen und läuft nur 8 davon, speichert, schaltet aus und setzt das Spiel fort, so könnt ihr "nur" 2 Schritte gehen, bis der Kampf beginnt.
In FF1 ist das seltsamerweise nicht der Fall.