Du bist nicht eingeloggt.

B2B-Realm Status

Social Networks

B2B auf Twitter
B2B auf Facebook

Bugtracker

antifreak

Drachentöter

  • »antifreak« ist der Autor dieses Themas

Beiträge: 1 366

Registrierungsdatum: 01.09.2010

Gilde: Innocence of Cræck

  • Private Nachricht

21

Dienstag, 29. Juli 2014, 15:46

Nicht für jeden Roll, sondern für jeden Spieler. Für jede Art von Zufall (also für Crit, Hit, etc.) wird für jeden Spieler ein eigener Pool angelegt. Somit kann der Generator gleichverteilte Zahlen ausspucken.
Der jetzige Pool wird zwischen allen Spielern, Creaturen und allem anderen geshared, was eben nicht so gut für die Gleichverteilung ist. Wenn entsprechend viele Zahlen generiert wurden, relativiert sich das natürlich wieder (wie eben schon jemand beschrieben hat, in einem Fight viel zu viele Crits, overall passt es aber wieder).
Das ist alles graue Theorie, muss man natürlich alles mal umsetzen und Testen.

Im Prinzip könnte man also jeder Creature und jedem Spieler ein array an MTs geben, und eben für jeden Stat (Crit, Hit, Parray, Dodge, etc.) einen eigenen verwenden.


itslovelol

Meister

Beiträge: 376

Registrierungsdatum: 18.11.2012

  • Private Nachricht

22

Dienstag, 29. Juli 2014, 15:51

Nicht für jeden Roll, sondern für jeden Spieler. Für jede Art von Zufall (also für Crit, Hit, etc.) wird für jeden Spieler ein eigener Pool angelegt. Somit kann der Generator gleichverteilte Zahlen ausspucken.
Der jetzige Pool wird zwischen allen Spielern, Creaturen und allem anderen geshared, was eben nicht so gut für die Gleichverteilung ist. Wenn entsprechend viele Zahlen generiert wurden, relativiert sich das natürlich wieder (wie eben schon jemand beschrieben hat, in einem Fight viel zu viele Crits, overall passt es aber wieder).
Das ist alles graue Theorie, muss man natürlich alles mal umsetzen und Testen.

Im Prinzip könnte man also jeder Creature und jedem Spieler ein array an MTs geben, und eben für jeden Stat (Crit, Hit, Parray, Dodge, etc.) einen eigenen verwenden.


Ja das versteh ich alles schon, aber wenn ich mein eigenen Pool hab kann ich ja auch die gleiche Zahl 100x in der Theorie rollen, aber das hab ich auch beim shared Pool. Wenn wir genug Zufallszahlen generieren gibt es in meinen Augen kein Unterschied zu A und B. Beide haben die gleiche Chance das man lucky ist und 100x crittet.

antifreak

Drachentöter

  • »antifreak« ist der Autor dieses Themas

Beiträge: 1 366

Registrierungsdatum: 01.09.2010

Gilde: Innocence of Cræck

  • Private Nachricht

23

Dienstag, 29. Juli 2014, 15:56

Natürlich können in der Theorie die gleichen Zahlen bei beiden Varianten heraus kommen.
Der unterschied ist, dass der Pool vorausberechnet wird und dadurch die Gleichverteilung garantiert ist.
Ist der Pool aufgebraucht wird ein neuer berechnet, der wiederum ebenso die Gleichverteilung garantiert.
Wenn man Zahlen aus 2 verschiedenen Pools zieht, kann die Gleichverteilung nicht garantiert werden!

Wie gesagt, auch mit der anderen Variante wird es Abweichungen nach oben und unten geben, allerdings nicht so häufig und so extrem.


Duzt

Geselle

Beiträge: 76

Registrierungsdatum: 05.12.2013

  • Private Nachricht

24

Dienstag, 29. Juli 2014, 16:25

Wenn alle aus einem Pool schöpfen und der neu berechnet wird wenn er leer ist kanns hald mal passieren dass einer Pech hat und sagen wir 5 Pools in Folge scheiß Zahlen rauszieht ( -> Miss Kette). Das wäre aber nicht möglich gewesen wenn er einen persönlichen Pool gehabt hätte weil in diesem Pool nicht genug Scheißzahlen sind um eine so lange Kette zu bilden und der neue Pool ja erst generiert wird wenn der alte leer ist.

Beim gemeinsamen Pool profitierst du praktisch wenn der andere Pech hat weil wenn der andere scheißzahlen zieht bleiben mehr bessere für dich.
Siehe 2 WL im Bossfight - Gear ähnlich einer Critet 30% der andere 65%!!!

Ich hoff ich habs verstanden^^

Betagan

Wandelnde Legende

Beiträge: 1 698

Registrierungsdatum: 22.08.2010

Wohnort: Kiel

Hauptcharakter: Betagan

Gilde: Bloodline

  • Private Nachricht

25

Dienstag, 29. Juli 2014, 16:50

Generell braucht man den ganzen outsource Quatsch gar nicht mehr. C++11 hat mitlerweile viel viel bessere rnd Generatoren im Standard. rand() war ja früher nicht wirklich zu gebrauchen (für ernsthafte Projekte).


rand() ist immernoch Quatsch (weil das immernoch das gleiche tut). Es gibt aber ab C++11 eine neue random number library (#include <random>) mit empfehlenswerten Funktionen.

Also ja, bevor man jetzt anfängt iwelche alternativen Generatoren wie SMFT zu importieren, bitte lieber auf die C++11 API portieren.



antifreak

Drachentöter

  • »antifreak« ist der Autor dieses Themas

Beiträge: 1 366

Registrierungsdatum: 01.09.2010

Gilde: Innocence of Cræck

  • Private Nachricht

26

Dienstag, 29. Juli 2014, 16:51

Generell braucht man den ganzen outsource Quatsch gar nicht mehr. C++11 hat mitlerweile viel viel bessere rnd Generatoren im Standard. rand() war ja früher nicht wirklich zu gebrauchen (für ernsthafte Projekte).


rand() ist immernoch Quatsch (weil das immernoch das gleiche tut). Es gibt aber ab C++11 eine neue random number library (#include <random>) mit empfehlenswerten Funktionen.

Hatte ich mich wohl falsch ausgedrückt. Natürlich ist rand() immernoch das gleiche wie früher ;)


Pyrox

Ehemaliges Teammitglied

Beiträge: 913

Registrierungsdatum: 03.09.2012

Wohnort: Berlin

Hauptcharakter: Dududa

Gilde: Daylight

  • Private Nachricht

27

Dienstag, 29. Juli 2014, 17:45

Zitat


Natürlich können in der Theorie die gleichen Zahlen bei beiden Varianten heraus kommen.
Der unterschied ist, dass der Pool vorausberechnet wird und dadurch die Gleichverteilung garantiert ist.
Ist der Pool aufgebraucht wird ein neuer berechnet, der wiederum ebenso die Gleichverteilung garantiert.
Wenn man Zahlen aus 2 verschiedenen Pools zieht, kann die Gleichverteilung nicht garantiert werden!


Aber es gibt niemals eine Garantie an Gleichverteilung, außer du sagst jetzt dass in dem persönlichen Pool ca 5*10^5 zahlen gezogen werden, die dann ALLE verarbeitet werden, also dass man ca 45 Minuten schon vorbestimmt ist, was mit seinem Char passiert.
In allen anderen Fällen, werden doch auch nur Zahlen aus einem gleichverteiltem Pool gezogen ·(und ebenfalls nicht alle aufgebraucht, oder?), ob nun persönlich oder nicht. Solange die Standardabweichung die gleiche ist, hat man in beiden Fällen die gleiche Chance auf Critruns. Selbst das Beispiel, dass im gleichen Raid einer 30 und einer 60% Crits hatte, lässt sich auch dadurch nicht erklären, da der momentan gezogene Pool doch für alle Ereignisse dient und nebenbei auch noch für den ganzen Server und nicht den speziellen Raid.
Dududa Sharaman Coraly Sisyphos Nishgratz Cosmah Sperrholz Pyrøx

fgreinus

Ehemaliges Teammitglied

Beiträge: 2 626

Registrierungsdatum: 10.12.2011

Wohnort: Hamburg

  • Private Nachricht

28

Dienstag, 29. Juli 2014, 21:14

Wenn man aber die Zahlenpools "besser" verteilt bzw. thematisch trennt, dann ist sehr sicher ein zumindest für den spielerischen Moment besseres Ergebnis zu erwarten, auch wenn es im Gesamten nichts ausmachen wird.