Jump to content

Stat Rolls at character generation


CamDawg

Recommended Posts

Interesting research over at the BioWare forums on stat rolls at character generation for BG:

 

http://forums.bioware.com/viewtopic.html?t...48&forum=17

 

The executive summary:

  • The engine rolls 3d6 for every score. If the total of all six attributes totals less than 75, they're re-rolled.
  • For stats with minimums, 3d6 is rolled until a value over the minimum is attained. In other words, scores below the minimum are discarded, not adjusted to the minimum. (If this wasn't the case, you'd only see an 17/18 charisma score ratio on a paladin of 215:1 instead of the roughly 3:1 ratio actually observed.

This is based off a script that ran about 100,000 rolls of a human mage and recorded the results. They're looking to run a similar trial for BG2.

 

(This will probably be of some interest to GemRB. Also, someone may want to look through the .exe and see if the minimum total could be adjusted upwards of 75... ;) )

Link to comment

I don't like automatic rerolls (they can cause freeze if the initial requirements are set wrong). And yeah, BG2 can freeze at rolls, GemRB cannot.

 

If you think this is unfair, it is always possible to implement a point buy system (like in iwd2).

Link to comment

If I remember correctly the 'standard' 3E rules have re-rolls if the total is below a certain number but not for minimum requirements. Basically, you roll 6 stats and then assign them to the abilities you want with no point swapping.

 

IMO a better system than re-rolls for minimums as they distort the probability curve. Perhaps more difficult to implement due to the GUI constraints.

 

Also, I think 4d6 is used with the best 3 picked. With 'powergaming' rules you get to re-roll the lowest die and then take the best 3.

Link to comment
Also, I think 4d6 is used with the best 3 picked. With 'powergaming' rules you get to re-roll the lowest die and then take the best 3.
This is what I used to believe before we started these experiments. However, the empirical evidence we've gathered strongly suggests it's a straight 3d6: the 75 minimum is enough to skew the results upwards. I did the math: if it both enforced a 75 minimum and did best 3-of-4d6, superhigh results (those in the 90s+) would be far more likely than they are. (Note that the largest roll we've seen for a human mage out of 150,000 rolls is only a 96.)

 

I can provide more details if you like. Some of them are in the threads on the Bioware boards.

Link to comment

No, I believe you. I'm sure that is what the engine's doing I was just commenting (more for GemRB's sake than anything else) that 3E rules require you to roll 4d6 and take the best 3. Although alternative rules are supplied for a points system (which NWN uses).

Link to comment
Seems like Bioware liked the re-rolls a lot though...
That's because of the programming, the rolls can't be programmed to have authentic probability, so they use program that results in those probabilities, a set number of numbers arranged in a locked positions . This means that you can never get the highest number possible, even if there was an authentic probability for it! Say a char that has all his stats 18. There is a remote possibility, but in the game you can't have one, as the numbers are in a arranged positions that never alter!
Link to comment

In GemRB we currently do the 4d6-worst method, if it is lower than class requirements, adjust it.

 

For two reasons:

1. easy and won't hang up

2. i thought it is the IE way

 

I could do another method with 75 points distributed randomly.

Or a completely new point buy system.

But rerolls can really kill it... so i would rather skip that.

 

If anyone got a unique method coded in python (which has at least some P&P or CRPG origin) i can add it as an option.

Link to comment
This means that you can never get the highest number possible, even if there was an authentic probability for it!

 

Even the worst linear conguential generator is going to have a range identical to the "random" function that it's emulating. Save this as a .tp2 and revel in it.

BACKUP ~aplace~
AUTHOR ~aperson~
NO_IF_EVAL_BUG
BEGIN  ~Tedious Statistical Analysis~
COPY_EXISTING abclasrq.2da override
 REPLACE_TEXTUALLY ~FIGHTER\( \|  \)+9\( \|  \)+0\( \|  \)+0\( \|  \)+0\( \|  \)+0\( \|  \)+0~
				~FIGHTER		 18	  18	  18	  18	  18	  18~

 

Now if someone happens to want to run chargen > 10,000 times to see what the periodicity is on the function in question, we'd get somewhere. It'd have to be in one session though, as the variables are probably just initialized to the system clock.

Link to comment
Seems like Bioware liked the re-rolls a lot though...
That's because of the programming, the rolls can't be programmed to have authentic probability, so they use program that results in those probabilities, a set number of numbers arranged in a locked positions .

Er, no, a pseudo-random number generator very rarely uses a monte-carlo type of algorithm. Much more likely is a multi-ordinal function. Best is to use some sort of real-time data as a seed.

 

Random number generation is a VERY extensive field of computer science with many real-world applications.

 

Suffice it to say that using a reasonable RNG, there is almost the same chance to roll all 18s as using physical dice.

Link to comment
In GemRB we currently do the 4d6-worst method, if it is lower than class requirements, adjust it.

But rerolls can really kill it... so i would rather skip that.

 

The hanging issue is when race limits prevent a kit or class minimum from being reached, right?

 

In this case, you should really have a check and prevent the selection of the kit in the first place. Fail safe.

Link to comment
Er, no, a pseudo-random number generator very rarely uses a monte-carlo type of algorithm. Much more likely is a multi-ordinal function. Best is to use some sort of real-time data as a seed.
So when and who desided this, besides, all the functions can be derivided into the monte-carlo type one, with enough data. Just like you can say that you should get 3.5 as an avarage result if you throw the normal 6 sided dice enought many times.

 

Random number generation is a VERY extensive field of computer science with many real-world applications.
Yes, but it takes time and effort to do all these things.

 

Suffice it to say that using a reasonable RNG, there is almost the same chance to roll all 18s as using physical dice.
Yes, but I doubt that the game uses a real-time date as a seed. As it take more time and effort than the game has to use, for such superfluous objectivity. Or how much time did the game use when you first began Baldur's Gate(the first time) to throw the dices with the 166 MHz CPU, 0.5 seconds total at most, as you didn't even see doing it? I believe the code is still the same, because the producers had other things to handel when they made BG2.
Link to comment
Suffice it to say that using a reasonable RNG, there is almost the same chance to roll all 18s as using physical dice.
Yes, but I doubt that the game uses a real-time date as a seed. As it take more time and effort than the game has to use, for such superfluous objectivity. Or how much time did the game use when you first began Baldur's Gate(the first time) to throw the dices with the 166 MHz CPU, 0.5 seconds total at most, as you didn't even see doing it? I believe the code is still the same, because the producers had other things to handel when they made BG2.

Heh.

 

Likely they just used the standard C library function. Which is random enough, and still exhibits randomness indistinguishable from a physical die, especially when applied over a small range like d6 or d20.

 

And even a Pentium 166 could do easily a million random numbers in a second.

Link to comment
Likely they just used the standard C library function. Which is random enough, and still exhibits randomness indistinguishable from a physical die, especially when applied over a small range like d6 or d20.
Yes, to a certain limit that is. And the limit is where, as long as you don't sum(or use any other mathematical functions to...) the results, with each others. As the result becomes dependant on the previous once.
Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...