Jump to content

Understanding the Game engine - HELP WITH ITEMS NEEDED


sees_all1

Recommended Posts

Compfreak, why not post your 100s of hours of collected data instead of just telling the guy he's wrong?

 

 

 

If you know the answers already, share. Just telling people they're wrong doesn't convince anyone.

Torlen.png
Link to comment
Share on other sites

Compfreak, why not post your 100s of hours of collected data instead of just telling the guy he's wrong?

 

 

 

If you know the answers already, share. Just telling people they're wrong doesn't convince anyone.

 

 

 

I'd like to see some data on the average % of people who aren't convinced by compfreak before I can accept your last statement that he isn't convincing anyone.

Myweponsgood.gif

Need assistance in any of these skills? PM me in game, my private chat is always ON

Link to comment
Share on other sites

Compfreak, why not post your 100s of hours of collected data instead of just telling the guy he's wrong?

 

 

 

If you know the answers already, share. Just telling people they're wrong doesn't convince anyone.

 

 

 

I'd like to see some data on the average % of people who aren't convinced by compfreak before I can accept your last statement that he isn't convincing anyone.

 

 

 

 

 

Most people can't just accept something on faith without having any proof. Compfreak obviously has a very scientific mind, he should understand this. I don't see why asking for data that he's claimed to have collected should be controversial.

Torlen.png
Link to comment
Share on other sites

@compfreak

 

How many years of java education do you have? You seem very keen on attacking others for their java knowledge.

 

This isn't about java coding, it's about statistics. I'm discussing the very obvious patterns I've seen over tends of thousands of recorded hit spreads, which sees all is completely ignoring in favor of the 'it's a simple pseudo-random generator' theory, which is unquestionably wrong.

 

 

 

 

 

Since I am probably one of the few real researchers playing runescape I can easily state that this is a typical statement of the unscientific mind.

 

 

 

Authority is not evidence. Belief is not evidence. The opening post clearly provided a hypothesis that is backed up by a model. Hence it can never be unquestionable wrong. It contains indirect evidence for the position put forward in the opening post.

spuriousmonk.png

spuriousmonk.png

Link to comment
Share on other sites

I just tested compfreak847's assertion that not each hit is equally likely. I found good evidence that each nonzero hit is not equally likely.

 

 

 

My equipment/stats:

 

70 attack, 70 strength

 

Defense mode

 

Rune scimitar, amulet of power, rune gauntlets, rune berserker shield

 

Using cockroach soldiers

 

 

 

[hide=Data]1 17

 

2 7

 

3 18

 

4 9

 

5 15

 

6 17

 

7 24

 

8 14

 

9 12

 

10 5

 

11 21

 

12 14

 

13 7

 

14 11

 

15 16[/hide]

 

 

 

[hide=Stuff for statisticians]You can do a chi-square goodness of fit test to test H_0: each hit comes up with proportion 1/15 in the population of all possible hits; and H_a: at least one of the hit proportions differs from the hypothesized proportions. There is a total of 207 observations, so if H_0 is true we expect 207/15 observations per hit. The sample can be treated as an SRS, and all of the expected counts are at least 5, so the results should be good.

 

The chi-square statistic is X^2 = sum (Observed - Expected)^2 / Expected = 29.30435.

 

The number of degrees of freedom is 15 - 1 = 14.

 

The P-value is Prob(Chi^2 >= 29.30435) = 0.0095027.

 

This means that if each hit really was equally likely, the probability of getting such skewed results is only about 1 in 100.[/hide]

Link to comment
Share on other sites

I just tested compfreak847's assertion that not each hit is equally likely. I found good evidence that each nonzero hit is not equally likely.

 

 

 

My equipment/stats:

 

70 attack, 70 strength

 

Defense mode

 

Rune scimitar, amulet of power, rune gauntlets, rune berserker shield

 

Using cockroach soldiers

 

 

 

[hide=Data]1 17

 

2 7

 

3 18

 

4 9

 

5 15

 

6 17

 

7 24

 

8 14

 

9 12

 

10 5

 

11 21

 

12 14

 

13 7

 

14 11

 

15 16[/hide]

 

 

 

[hide=Stuff for statisticians]You can do a chi-square goodness of fit test to test H_0: each hit comes up with proportion 1/15 in the population of all possible hits; and H_a: at least one of the hit proportions differs from the hypothesized proportions. There is a total of 207 observations, so if H_0 is true we expect 207/15 observations per hit. The sample can be treated as an SRS, and all of the expected counts are at least 5, so the results should be good.

 

The chi-square statistic is X^2 = sum (Observed - Expected)^2 / Expected = 29.30435.

 

The number of degrees of freedom is 15 - 1 = 14.

 

The P-value is Prob(Chi^2 >= 29.30435) = 0.0095027.

 

This means that if each hit really was equally likely, the probability of getting such skewed results is only about 1 in 100.[/hide]

 

How many zeros did you hit?

 

This is relevant because:

 

-1/16 of your hits should have been naturally zero (due to the strength component)

 

-Some (large) proportion of zeros should have been from failing attacks

 

-If you knew the proportion of zeros you should have hit, and recorded those too, your x^2 GOF test would have different results.

 

 

 

I'm not saying your data is invalid, or conclusion is definitely incorrect, there are just a few confounding variables that you haven't taken into account.

 

 

 

 

 

I was brainstorming today as to why the 0/1 defense didn't make sense, and what the underlying reasoning could be.

 

What if, the number they use to calculate defense is defense level, and the number they use to calculate attack is just attack.

 

So, you'd get a random double that's [0, 1), and multiply it by those integers. You'd never really get 1, but they could always round down defense, and always round up attack to the nearest integer.

 

Any numbers that tied, I.E. 0 for attack vs. 0 for defense, would result in no hit.

 

This would make sense because you'd have 4 different available outcomes:

 

1/2 the time you wouldn't hit, and of the other 1/2, 1/2 of that time your hit would naturally be zero.

 

This would explain why having 0 defense versus 1 defense wouldn't make any difference.

 

 

 

-sees

99 dungeoneering achieved, thanks to everyone that celebrated with me!

 

♪♪ Don't interrupt me as I struggle to complete this thought
Have some respect for someone more forgetful than yourself ♪♪

♪♪ And I'm not done
And I won't be till my head falls off ♪♪

Link to comment
Share on other sites

How many zeros did you hit?

 

This is relevant because:

 

-1/16 of your hits should have been naturally zero (due to the strength component)

 

-Some (large) proportion of zeros should have been from failing attacks

 

-If you knew the proportion of zeros you should have hit, and recorded those too, your x^2 GOF test would have different results.

 

 

 

I'm not saying your data is invalid, or conclusion is definitely incorrect, there are just a few confounding variables that you haven't taken into account.

 

There were 187 zeros. I excluded the zeros because it isn't possible to discern zeros due to strength from zeros due to missing. My goal was to examine the distribution of hits due to strength, so adding in the zeros would add in attack as a confounding variable. If we could discern zeros due to strength, the yes the GOF test would yield slightly different results, but I think my conclusions are still valid for the population of all nonzero hits.

Link to comment
Share on other sites

 

There were 187 zeros. I excluded the zeros because it isn't possible to discern zeros due to strength from zeros due to missing. My goal was to examine the distribution of hits due to strength, so adding in the zeros would add in attack as a confounding variable. If we could discern zeros due to strength, the yes the GOF test would yield slightly different results, but I think my conclusions are still valid for the population of all nonzero hits.

 

 

 

I'd like to see a few more trials, but I don't want to waste your time. I'm not to the hit values yet, I'm still trying to nail down the probability of a hit, based on strength, attack, and opponents defense. However, If my next few tests go as predicted, I can move on to more advanced things, such as that setup.

 

 

 

I'm betting if you conducted the test again, you'd get different results (duh), as in different numbers receiving different proportions.

 

 

 

Just curious, what style were you using?

99 dungeoneering achieved, thanks to everyone that celebrated with me!

 

♪♪ Don't interrupt me as I struggle to complete this thought
Have some respect for someone more forgetful than yourself ♪♪

♪♪ And I'm not done
And I won't be till my head falls off ♪♪

Link to comment
Share on other sites

Amulet of Accuracy has +4 in all attack bonusses, without strenght bonus.

 

 

 

I'm watching from a distance, but I very much encourage this kind of experiments. I'm starting to learn some statistics, so I'm also looking through the calculations and learning from them. :D

Aurei_Animus.png
Link to comment
Share on other sites

I'd like to see a few more trials, but I don't want to waste your time. I'm not to the hit values yet, I'm still trying to nail down the probability of a hit, based on strength, attack, and opponents defense. However, If my next few tests go as predicted, I can move on to more advanced things, such as that setup.

 

 

 

I'm betting if you conducted the test again, you'd get different results (duh), as in different numbers receiving different proportions.

 

 

 

Just curious, what style were you using?

 

 

 

The low P-value (significant at the alpha = 0.01 level!) indicates that the sample size is already large enough and that the chance of getting the observed differences is low if all hits were equally likely. If I repeated the experiment and found that different numbers occurred more/less often, that would suggest that the unbalanced distribution was due to random chance alone and that either the previous P-value was a fluke or that the test assumptions were violated (namely, whether the sample can be treated as an SRS.)

 

 

 

I was using defense mode.

Link to comment
Share on other sites

 

The low P-value (significant at the alpha = 0.01 level!) indicates that the sample size is already large enough and that the chance of getting the observed differences is low if all hits were equally likely. If I repeated the experiment and found that different numbers occurred more/less often, that would suggest that the unbalanced distribution was due to random chance alone and that either the previous P-value was a fluke or that the test assumptions were violated (namely, whether the sample can be treated as an SRS.)

 

 

 

I was using defense mode.

 

 

 

I know that - so there's something going on underneath.

 

Let's try to build up the understanding before trying to explain everything at once.

 

 

 

I'll definitely take your data into consideration further down the line.

99 dungeoneering achieved, thanks to everyone that celebrated with me!

 

♪♪ Don't interrupt me as I struggle to complete this thought
Have some respect for someone more forgetful than yourself ♪♪

♪♪ And I'm not done
And I won't be till my head falls off ♪♪

Link to comment
Share on other sites

I'd like to see a few more trials, but I don't want to waste your time. I'm not to the hit values yet, I'm still trying to nail down the probability of a hit, based on strength, attack, and opponents defense. However, If my next few tests go as predicted, I can move on to more advanced things, such as that setup.

 

 

 

I'm betting if you conducted the test again, you'd get different results (duh), as in different numbers receiving different proportions.

 

 

 

Just curious, what style were you using?

 

 

 

The low P-value (significant at the alpha = 0.01 level!) indicates that the sample size is already large enough and that the chance of getting the observed differences is low if all hits were equally likely. If I repeated the experiment and found that different numbers occurred more/less often, that would suggest that the unbalanced distribution was due to random chance alone and that either the previous P-value was a fluke or that the test assumptions were violated (namely, whether the sample can be treated as an SRS.)

 

 

 

I was using defense mode.

 

 

 

Sorry to bug you again, but did you include the last hit on each soldier?

99 dungeoneering achieved, thanks to everyone that celebrated with me!

 

♪♪ Don't interrupt me as I struggle to complete this thought
Have some respect for someone more forgetful than yourself ♪♪

♪♪ And I'm not done
And I won't be till my head falls off ♪♪

Link to comment
Share on other sites

if you were 1 attack using attack style on a character with 1 defence using defence style... thats actually 4 attack versus 4 defence. attack style raises att by 3, str raises str by 3, def raises def by 3... and controlled raises str, att, and def by 1. It has worked like this since RSC. So be careful.

 

 

 

Do not forget that a randomly generated number is a double (for those not familiar with java, its a decimal) before it is ever turned into an integer. There are tons and tons of decimals that we never see behind the game. Not to mention the fact that it is hard to determine if this decimal is either rounded normally or truncated or whatever.

 

 

 

Good luck on this, it is gonna be very tough and its gonna be a long process. I'll try and help if I can.

 

 

 

Also, if its any significance, it seems the max with 1 str is at most no matter what weapon you use, using def style... It can't seem to go any higher O.o

Started free trade with 1.5m cash. 2 weeks later, have hit max cash 2x.

 

PvP drops: 359 Brawling Gloves, 11 Vesta's Longswords, 41+ Zaros/Ancient Statues

9 Dragon Full Helms, 3 Dragonfire Shields on the old PvP loot system

 

Brawler guide is being finished!

 

Link to comment
Share on other sites

if you were 1 attack using attack style on a character with 1 defence using defence style... thats actually 4 attack versus 4 defence. attack style raises att by 3, str raises str by 3, def raises def by 3... and controlled raises str, att, and def by 1. It has worked like this since RSC. So be careful.

 

No, its the attacking character has defensive mode on, and the character sitting there has accurate, to make up for this. I remembered something along these lines when I started the first test - to try and eliminate confounding variables (and eliminating the need to create 100 level 3 accounts to get good data).

 

 

 

Also, if its any significance, it seems the max with 1 str is at most no matter what weapon you use, using def style... It can't seem to go any higher O.o

 

Interesting... I'll have to check this out.

 

 

 

Thanks for the input.

99 dungeoneering achieved, thanks to everyone that celebrated with me!

 

♪♪ Don't interrupt me as I struggle to complete this thought
Have some respect for someone more forgetful than yourself ♪♪

♪♪ And I'm not done
And I won't be till my head falls off ♪♪

Link to comment
Share on other sites

Hello all,

 

 

 

I have been researching this phenomenon for awhile now although right now I'm retired.

 

 

 

Here are some results from some previous research:

 

 

 

http://runescape.wikia.com/wiki/User:Dromedarii

 

http://runevillage.com/ThePub/viewtopic ... 0&t=424658

 

 

 

I have not spent the hundreds of hours that compfreak847 has spent collecting data and I've always assumed practically random number generation. However I do have a few thousand data points to back some results up (not shown in the links above). The MATLAB code I used for analysis is somewhat outdated and is not fully accurate for some data sets I have. But it's good if you can work with MATLAB/GNU Octave.

 

 

 

Since the above two links were last updated, I've wrote some small tidbits of MATLAB code in order to better understand things:

 

[hide=Simple Combat Simulation]function combatsim(cth,maxhit,speed)

 

% Simulates combat against infinite-HP opponent

 

if nargin==0

 

cth=80;

 

maxhit=12;

 

speed=7;

 

end

 

clc

 

pth=cth/100;

 

delay=6-0.6*speed;

 

data=0;

 

for i=1:1000

 

pause(0)

 

if rand <= pth

 

data(i)=ceil((maxhit+1)*rand)-1;

 

else

 

data(i)=0;

 

end

 

plot(1:i,data,1:i,mean(data)*ones(i,1),1:i,pth*maxhit/2*ones(i,1))

 

end

 

realmean=mean(data)/delay;

 

predmean=pth*maxhit/2/delay;

 

acc=100-100*abs(realmean-predmean)/realmean;

 

fprintf('Actual ADPS: %.3f\n',realmean)

 

fprintf('Predicted ADPS: %.3f\n',predmean)

 

fprintf('Accuracy: %.2f%%\n',acc)[/hide]

 

[hide=Thing that addresses concerns in RV topic]function probthing(maxhit)

 

% Assumes 100% Chance to Hit and no HP regeneration

 

% From 1 to max hit damage dealt only

 

if nargin==0,maxhit=19;end

 

triangle=fliplr(pascal(maxhit));

 

prob=zeros(1,maxhit);

 

for damage=1:maxhit

 

combovec=diag(triangle,maxhit-damage);

 

probvec=(1/(maxhit+1)).^[1]';

 

prob(damage)=1-prod((1-probvec).^combovec);

 

end

 

plot(1:maxhit,prob,'-o')

 

grid on

 

xlabel('Total Damage Inflicted')

 

ylabel('Probability')[/hide]

 

Some sample data to wet your taste buds:

 

[hide=Sample data set for "damage.m" Total Attack Skill]12

 

7

 

5

 

7

 

4

 

99

 

0

 

5

 

11

 

16

 

3

 

99

 

0

 

5

 

15

 

0

 

8

 

7

 

99

 

14

 

12

 

8

 

1

 

99

 

14

 

11

 

0

 

2

 

0

 

0

 

8

 

99

 

5

 

0

 

16

 

0

 

3

 

1

 

10

 

1

 

99

 

0

 

7

 

0

 

5

 

0

 

12

 

11

 

99

 

10

 

3

 

1

 

0

 

12

 

0

 

0

 

8

 

1

 

99

 

16

 

2

 

12

 

4

 

1

 

99

 

4

 

0

 

13

 

16

 

3

 

99

 

0

 

10

 

2

 

11

 

8

 

4

 

99

 

2

 

13

 

0

 

12

 

8

 

99

 

14

 

0

 

6

 

1

 

11

 

0

 

3

 

99

 

2

 

0

 

1

 

10

 

12

 

10

 

99

 

0

 

14

 

14

 

5

 

2

 

99

 

13

 

3

 

1

 

10

 

8

 

99

 

0

 

10

 

0

 

4

 

10

 

1

 

6

 

5

 

99

 

8

 

7

 

14

 

5

 

0

 

2

 

99

 

0

 

1

 

0

 

12

 

0

 

9

 

10

 

4

 

99

 

0

 

14

 

6

 

15

 

99

 

0

 

11

 

8

 

0

 

5

 

6

 

5

 

99

 

13

 

6

 

2

 

0

 

5

 

3

 

7

 

99

 

7

 

2

 

0

 

5

 

7

 

12

 

3

 

99

 

8

 

2

 

13

 

5

 

7

 

99

 

13

 

4

 

3

 

10

 

0

 

5

 

1

 

99

 

10

 

13

 

0

 

0

 

0

 

12

 

99

 

1

 

0

 

12

 

1

 

2

 

13

 

1

 

5

 

99

 

12

 

2

 

11

 

10

 

99

 

8

 

13

 

10

 

4

 

99

 

3

 

10

 

15

 

7

 

99

 

1

 

12

 

7

 

8

 

7

 

99

 

13

 

15

 

7

 

99

 

0

 

5

 

6

 

0

 

16

 

0

 

1

 

4

 

3

 

99

 

0

 

0

 

14

 

6

 

15

 

99

 

0

 

13

 

0

 

13

 

9

 

99

 

5

 

0

 

2

 

15

 

0

 

3

 

0

 

0

 

11

 

99

 

7

 

0

 

11

 

9

 

6

 

2

 

99

 

0

 

6

 

0

 

7

 

14

 

0

 

2

 

6

 

99

 

14

 

0

 

0

 

0

 

2

 

15

 

2

 

2

 

99

 

2

 

15

 

10

 

3

 

5

 

99

 

2

 

3

 

0

 

16

 

2

 

3

 

3

 

7

 

99

 

16

 

0

 

10

 

8

 

0

 

1

 

99

 

13

 

5

 

14

 

3

 

99

 

10

 

7

 

8

 

10

 

99

 

9

 

6

 

12

 

8

 

99

 

9

 

1

 

10

 

11

 

5

 

99

 

2

 

16

 

9

 

1

 

2

 

5

 

99

 

5

 

2

 

14

 

9

 

5

 

99

 

13

 

14

 

8

 

99

 

13

 

10

 

1

 

8

 

3

 

99

 

0

 

5

 

0

 

13

 

13

 

4

 

99

 

3

 

0

 

13

 

7

 

0

 

5

 

0

 

0

 

7

 

99

 

1

 

0

 

0

 

7

 

4

 

8

 

0

 

0

 

5

 

10

 

99

 

13

 

1

 

5

 

16

 

99

 

13

 

0

 

0

 

5

 

0

 

10

 

0

 

0

 

7

 

99

 

9

 

0

 

12

 

0

 

9

 

5

 

99

 

12

 

0

 

16

 

7

 

99

 

10

 

1

 

2

 

0

 

0

 

8

 

0

 

9

 

0

 

3

 

2

 

99

 

0

 

2

 

14

 

7

 

1

 

11

 

99

 

0

 

9

 

11

 

0

 

5

 

5

 

5

 

99

 

0

 

3

 

9

 

14

 

0

 

0

 

9

 

99

 

16

 

13

 

0

 

5

 

0

 

1

 

99

 

5

 

0

 

3

 

7

 

8

 

10

 

0

 

2

 

99

 

8

 

7

 

0

 

11

 

4

 

5

 

99

 

0

 

12

 

0

 

13

 

2

 

8

 

99

 

10

 

8

 

13

 

0

 

4

 

99

 

15

 

8

 

9

 

0

 

3

 

99

 

10

 

6

 

2

 

15

 

2

 

99

 

12

 

11

 

3

 

1

 

7

 

1

 

99

 

7

 

9

 

9

 

5

 

0

 

0

 

3

 

2

 

99

 

0

 

15

 

15

 

3

 

0

 

2

 

99

 

15

 

9

 

6

 

5

 

99

 

0

 

8

 

0

 

7

 

0

 

7

 

13

 

99

 

0

 

13

 

0

 

7

 

0

 

9

 

3

 

0

 

3

 

99

 

14

 

11

 

0

 

6

 

4

 

99

 

3

 

9

 

13

 

10

 

99

 

7

 

16

 

11

 

0

 

0

 

1

 

99

 

1

 

10

 

16

 

8

 

99

 

0

 

7

 

0

 

7

 

13

 

4

 

5

 

99

 

0

 

10

 

2

 

5

 

6

 

12

 

99

 

5

 

13

 

12

 

5

 

99

 

2

 

0

 

10

 

11

 

0

 

0

 

12

 

99

 

11

 

4

 

0

 

0

 

13

 

2

 

4

 

2

 

99

 

7

 

1

 

11

 

0

 

0

 

7

 

8

 

0

 

1

 

99

 

0

 

10

 

0

 

9

 

13

 

3

 

99

 

16

 

0

 

15

 

0

 

4

 

99

 

14

 

15

 

6

 

99

 

3

 

1

 

4

 

12

 

12

 

3

 

99

 

5

 

0

 

6

 

9

 

12

 

0

 

3

 

99

 

0

 

8

 

0

 

14

 

0

 

14

 

99

 

13

 

13

 

9

 

99

 

0

 

1

 

12

 

11

 

1

 

11

 

99

 

5

 

10

 

0

 

16

 

4

 

99

 

15

 

16

 

4

 

99

 

13

 

0

 

6

 

0

 

11

 

0

 

0

 

5

 

99

 

12

 

0

 

15

 

0

 

8

 

99

 

3

 

2

 

3

 

15

 

11

 

1

 

99

 

3

 

12

 

8

 

12

 

99

 

4

 

12

 

10

 

1

 

8

 

99

 

14

 

13

 

8

 

99

 

2

 

3

 

0

 

9

 

15

 

0

 

6

 

99

 

6

 

11

 

13

 

5

 

99

 

3

 

4

 

9

 

6

 

14

 

99

 

9

 

0

 

0

 

6

 

14

 

6

 

99

 

4

 

5

 

13

 

12

 

1

 

99

 

2

 

2

 

14

 

9

 

0

 

8

 

99

 

4

 

14

 

0

 

10

 

7

 

99

 

5

 

7

 

16

 

7

 

99

 

8

 

0

 

7

 

8

 

8

 

4

 

99

 

3

 

14

 

11

 

2

 

5

 

99

 

6

 

14

 

9

 

0

 

6

 

99

 

6

 

3

 

7

 

0

 

2

 

0

 

2

 

9

 

6

 

99

 

7

 

4

 

1

 

6

 

14

 

3

 

99

 

12

 

9

 

6

 

8

 

99

 

8

 

0

 

5

 

2

 

0

 

0

 

3

 

2

 

15

 

99

 

9

 

2

 

10

 

11

 

1

 

0

 

3

 

99

 

0

 

1

 

0

 

6

 

10

 

8

 

6

 

3

 

0

 

2

 

99

 

5

 

16

 

0

 

10

 

4

 

99

 

0

 

6

 

3

 

15

 

11

 

99

 

13

 

7

 

0

 

11

 

4

 

99

 

14

 

9

 

8

 

0

 

5

 

99

 

0

 

0

 

6

 

0

 

1

 

0

 

0

 

3

 

2

 

4

 

9

 

4

 

7

 

99

 

7

 

0

 

13

 

2

 

12

 

2

 

99

 

13

 

0

 

0

 

0

 

5

 

3

 

5

 

0

 

4

 

1

 

4

 

99

 

2

 

4

 

0

 

0

 

1

 

3

 

10

 

0

 

1

 

10

 

4

 

1

 

99

 

16

 

2

 

7

 

1

 

2

 

1

 

0

 

0

 

2

 

3

 

2

 

99

 

15

 

12

 

4

 

4

 

99

 

13

 

5

 

5

 

2

 

6

 

4

 

99

 

6

 

8

 

10

 

11

 

99

 

4

 

2

 

9

 

0

 

8

 

12

 

99

 

1

 

9

 

0

 

16

 

3

 

0

 

3

 

0

 

3

 

99

 

11

 

1

 

0

 

7

 

8

 

8

 

99

 

11

 

16

 

0

 

8

 

99

 

14

 

12

 

5

 

4

 

99

 

6

 

0

 

15

 

12

 

2

 

99

 

13

 

0

 

0

 

1

 

12

 

9

 

99

 

13

 

11

 

3

 

0

 

2

 

6

 

99

 

16

 

16

 

3

 

99

 

13

 

16

 

1

 

0

 

6

 

99

 

2

 

13

 

16

 

4

 

99

 

1

 

1

 

7

 

14

 

4

 

8

 

99

 

16

 

9

 

10

 

99

 

0

 

8

 

11

 

16

 

99

 

0

 

6

 

6

 

0

 

1

 

16

 

1

 

0

 

3

 

2

 

99

 

5

 

13

 

16

 

1

 

99

 

8

 

10

 

15

 

2

 

99

 

1

 

8

 

4

 

0

 

14

 

9

 

99

 

9

 

0

 

7

 

9

 

7

 

3

 

99

 

8

 

8

 

16

 

3

 

99

 

14

 

0

 

2

 

9

 

0

 

8

 

2

 

99

 

5

 

0

 

0

 

7

 

0

 

3

 

12

 

0

 

9

 

99

 

13

 

4

 

12

 

6

 

99

 

16

 

0

 

1

 

0

 

9

 

9

 

99

 

4

 

15

 

6

 

10

 

99

 

3

 

1

 

11

 

16

 

4

 

99

 

9

 

13

 

9

 

4

 

99

 

11

 

0

 

10

 

12

 

0

 

2

 

99

 

7

 

15

 

4

 

8

 

0

 

1

 

99

 

4

 

8

 

12

 

6

 

5

 

99

 

0

 

5

 

0

 

7

 

15

 

9

 

99

 

2

 

4

 

13

 

4

 

12

 

99

 

0

 

3

 

9

 

6

 

8

 

9

 

99

 

5

 

7

 

16

 

2

 

5

 

99

 

0

 

10

 

11

 

9

 

5

 

99

 

3

 

13

 

9

 

6

 

5

 

99

 

0

 

9

 

1

 

0

 

16

 

6

 

3

 

99

 

0

 

13

 

0

 

0

 

14

 

8

 

99

 

0

 

14

 

9

 

1

 

11

 

99

 

5

 

11

 

11

 

8

 

99

 

14

 

3

 

5

 

10

 

3

 

99

 

10

 

9

 

3

 

9

 

0

 

4

 

99

 

1

 

9

 

6

 

5

 

9

 

0

 

5

 

99

 

4

 

8

 

0

 

5

 

6

 

4

 

8

 

1

 

99

 

5

 

0

 

12

 

13

 

0

 

5

 

99

 

2

 

10

 

1

 

0

 

11

 

3

 

8

 

99

 

4

 

11

 

8

 

0

 

2

 

0

 

9

 

0

 

1

 

99

 

9

 

5

 

0

 

3

 

0

 

7

 

9

 

0

 

0

 

2

 

99

 

13

 

0

 

0

 

2

 

15

 

5

 

99

 

0

 

14

 

11

 

10

 

99

 

0

 

6

 

2

 

3

 

12

 

5

 

7

 

99

 

1

 

10

 

10

 

13

 

0

 

1

 

99

 

1

 

8

 

0

 

2

 

6

 

0

 

4

 

0

 

12

 

2

 

99

 

6

 

11

 

9

 

9

 

99

 

7

 

2

 

0

 

5

 

14

 

5

 

2

 

99

 

0

 

12

 

14

 

0

 

6

 

3

 

99

 

0

 

14

 

2

 

4

 

7

 

2

 

0

 

6

 

99

 

2

 

6

 

0

 

13

 

6

 

4

 

4

 

99

 

8

 

9

 

11

 

7

 

99

 

14

 

8

 

3

 

10

 

99

 

5

 

7

 

0

 

0

 

0

 

14

 

9

 

99

 

8

 

15

 

9

 

3

 

99

 

0

 

13

 

0

 

0

 

3

 

4

 

15

 

99

 

7

 

4

 

1

 

11

 

0

 

2

 

4

 

0

 

0

 

6

 

99

 

9

 

11

 

1

 

5

 

9

 

99

 

5

 

12

 

6

 

5

 

7

 

99[/hide]

 

It's an old data set but a very good one. If you are going to use your own analysis code, I would not suggest you remove the 99's because the diminishing damage effect is significant and the 99's are important placeholders.

 

 

 

BTW it's going to be nigh impossible to produce a complete, practically accurate Chance-to-hit calculator unless you end up being a Jagex Developer or somebody pays you very good money to do it.

Link to comment
Share on other sites

When you collected your data with the deadly red spiders, did you include the finishing hit on them?

99 dungeoneering achieved, thanks to everyone that celebrated with me!

 

♪♪ Don't interrupt me as I struggle to complete this thought
Have some respect for someone more forgetful than yourself ♪♪

♪♪ And I'm not done
And I won't be till my head falls off ♪♪

Link to comment
Share on other sites

Oops, accidently messed up my last post. APparently the max with 1 str on def style with any weapon is 2. And the same for attack style I'm sure. I believe there was someone who was 60 att, 1 str, 40 def that could only hit 2-2 dds specs.

Started free trade with 1.5m cash. 2 weeks later, have hit max cash 2x.

 

PvP drops: 359 Brawling Gloves, 11 Vesta's Longswords, 41+ Zaros/Ancient Statues

9 Dragon Full Helms, 3 Dragonfire Shields on the old PvP loot system

 

Brawler guide is being finished!

 

Link to comment
Share on other sites

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Random.html

 

 

 

Compfreak, I know the numbers aren't purely random.If its done by a program, it can't be purely random. If its done in java and you don't know the seed, it might as well be random. That's what pseudo-random means - somewhere the number generator gets seeded, and then off it goes with your "random numbers."

 

 

 

Now, you might have done enough testing to get started with the same seeds, and that's why some numbers are more frequent than others. I don't know. What I do know is that I have absolutely no clue where the random nature of hits come from, and that you have absolutely no clue. Unless your name is Andrew, and you created Runescape.

 

 

 

What I do know is that somewhere there is a method / function called something along the lines of "calculateHit" - and that numbers are fed into it, and a number is spat out -- It isn't magic. I don't know if the numbers are generated server side or client side. I don't know if the servers are programmed in Java. Right now I can't tell you how the client or server communicates, or if it matters to this application.

 

 

 

What I do know is that the first probability I got for this first set of data - this .71, is incredibly close to .75 -> 2 numbers are generated, 1/0 for attack and 1/0 for defense, and then a 1/0 for strength, which means that 1/2 the time attack beats defense and 1/2 the time you won't hit a natural zero, and violia, .25 you'll hit, .75 you'll splash.

 

 

 

 

 

1st of all, http://java.sun.com/j2se/1.4.2/docs/api ... andom.html (the part about pseudo-randomly generating these seeds you are talking about)

 

2ndly, you can use an absolutely different method (own implementation), that might or might not rely on these two classes.

savormix.gif
R.I.P. oO000oO0oO00, RS2 range pure transformed to a maxed PvM char in EoC, ten years of time completely wasted.
Good to be gone :)

Link to comment
Share on other sites

1st of all, http://java.sun.com/j2se/1.4.2/docs/api ... andom.html (the part about pseudo-randomly generating these seeds you are talking about)

 

2ndly, you can use an absolutely different method (own implementation), that might or might not rely on these two classes.

 

Thanks, I already posted that, twice, in fact.

 

 

 

I'm aware that you can write your own Math.random or override functions in the Random class - that's one of the integral parts of an OOL. What I'm looking to do, though, is figure out what's going on inside the method. The only way I can do this is to carefully take data - I can't make assumptions and be like "Well, it has to be like this, otherwise it wouldn't make sense" or extrapolate much beyond the data that I take - until I can build a reliable model, test that model at some higher level, and then show that my model is correct with the data I collect.

 

 

 

Good news - the cabbages today have an attack value of -1... and draynor cabbages raise your defense by 1/2.

99 dungeoneering achieved, thanks to everyone that celebrated with me!

 

♪♪ Don't interrupt me as I struggle to complete this thought
Have some respect for someone more forgetful than yourself ♪♪

♪♪ And I'm not done
And I won't be till my head falls off ♪♪

Link to comment
Share on other sites

When you collected your data with the deadly red spiders, did you include the finishing hit on them?

 

Yes, they are right before the 99's. Did you actually read much of what I posted?

 

 

 

It seems like we're going too far off on a tangent on Java client randomness. Some things to keep in mind:

 

 

 

(a) Jagex very likely does the combat-related calculations on its servers and only sends the results to the client

 

(B) Jagex may not use SecureRandom on its servers as its RNG

 

© Nonetheless, any RNG Jagex uses will likely be a PRNG

 

(d) PRNG's are, for our analytical purposes, good enough

 

 

 

And instead of trying to see whose Java knowledge is greater, how about actually getting something done?

 

 

 

Install GNU Octave, learn the ropes and have a go with the stuff I posted. It should at least give you a few ideas.

 

 

 

If you want you may port the code to Python or R and modify it as you please.

Link to comment
Share on other sites

 

because the diminishing damage effect is significant and the 99's are important placeholders.

 

This is actually what I was looking for, and no, I didn't see that little bit of text on my initial scan through.

 

[hide=shhh]I wanted to know this with the first set of data posted here because the guy used cockroach soldiers, and those are in a multi-combat zone, with probably more than 2 people hitting on it at the same time, so its more than likely that 1/10 of his data are end hits, or the wrong data :/[/hide]

 

 

 

I did the GOF test and got a p-value of .02 without the end hits - I'm not sure what I was expecting, however its interesting to note that you hit 2 much more often and 15 much less often.

 

However, all the middle parts (basically) had differences of, I don't know, <1.

 

 

 

It was the data with 15 that really screwed up - it's value was 8 something out of all the 22 - if I could just ignore the weak hits of 15, the p-value would be much closer to about .2, meaning no conclusive results :P

99 dungeoneering achieved, thanks to everyone that celebrated with me!

 

♪♪ Don't interrupt me as I struggle to complete this thought
Have some respect for someone more forgetful than yourself ♪♪

♪♪ And I'm not done
And I won't be till my head falls off ♪♪

Link to comment
Share on other sites

There's a reason I wanted to know this, but I'll post it later.

 

Don't bother. I already know what you're likely to say.

 

 

 

You could be thinking of two things:

 

 

 

1) Since the opponent very likely has low current HP (

 

 

 

2) When combat calculations are conducted, your damage amount may be determined before it is determined whether your opponent regenerates HP or not. In which case, an otherwise lethal blow could have only damaged your opponent to 1 HP. That means your last hit will almost certainly be 1 damage. This effect increases the frequency of 1-damage killing hits. I did not model this because I do not know the exact nature of monster HP regeneration in combat. It is a legitimate research area if you choose to delve into this. My code has some features that show its effects but does not model it.

 

 

 

Let me show you the damage.m text output of the data set I just gave you:

 

 

 

[hide=damage("data.txt",6)]

Columns: Damage Done per Opponent, Frequency, Relative Frequency (%), Min Combat Time (s), Mean Combat Time (s), Max Combat Time (s), Relative Frequency of 1-Damage Killing Hits (%)

hpanalysis =



   35.0000   166.0000    85.1282     7.2000    13.8072    26.4000     8.4337

   36.0000    29.0000    14.8718     7.2000    14.5012    31.2000    13.7931



Columns: Damage, Frequency, Relative Frequency (%), Predicted Relative Frequency (%), Absolute Difference (%)

damanalysis =



    0.00000   247.00000    21.14726    21.14726     0.00000

    1.00000    72.00000     6.16438     7.03149    -0.86710

    2.00000    81.00000     6.93493     6.75106     0.18387

    3.00000    72.00000     6.16438     6.47064    -0.30625

    4.00000    62.00000     5.30822     6.19021    -0.88199

    5.00000    80.00000     6.84932     5.90979     0.93953

    6.00000    57.00000     4.88014     5.62936    -0.74922

    7.00000    61.00000     5.22260     5.34893    -0.12633

    8.00000    65.00000     5.56507     5.06851     0.49656

    9.00000    66.00000     5.65068     4.78808     0.86260

   10.00000    52.00000     4.45205     4.50766    -0.05560

   11.00000    46.00000     3.93836     4.22723    -0.28888

   12.00000    47.00000     4.02397     3.94681     0.07717

   13.00000    55.00000     4.70890     3.66638     1.04252

   14.00000    41.00000     3.51027     3.38596     0.12432

   15.00000    30.00000     2.56849     3.10553    -0.53704

   16.00000    34.00000     2.91096     2.82511     0.08585



Hit Attempts = 1168

Opponents Killed = 195

Average Damage Done per Opponent = 35.15

Average Opponent HP Regeneration Rate = 0.87 HP/Minute

Average Combat Time = 14.38 Seconds

Total Combat Time = 0 Hours, 46 Minutes, 43.2 Seconds



Average DPS = 2.45

Predicted Average DPS = 2.40

Semi-Ideal Average DPS (Infinite HP) = 2.79

Ideal Average DPS (Infinite HP & Zero Defence) = 3.33



Damage Efficiency = 73.35%

Predicted Damage Efficiency = 71.86%



Model Accuracy = 97.97%



Chance to Miss = 16.22%

Chance to Hit = 83.78%

Chance to Hit and Do Zero Damage = 4.93%

Chance to Hit and Do Positive Damage = 78.85%

[/hide]

 

I did not show the graphs because I do not have access to MATLAB right now and gnuplot graphs look ugly.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.