Artisan Archive

Thread: Predicting Which Weapon Power-Up Stats Get Buffed

DixFlatline
Tue Aug 05, 2003 9:50 am
#1

I recently hand made about 50 power ups for someone that only wanted Max Dmg 30%+ buffed. I figured okay, there are six stats that can show up as the primary attribute to get buffed, so I have a 1:6 chance of hitting what I want. So I should see 50 Max Dmg out of 300 built. By the time I got done, it was closer to 500, but more on that later.


After making the first hundred or so, I started noticing a pattern. It seemed that the PU's showed up in a predictable order! I experimented, and sure enough when I built Couplers, I would see them come in a specific order when you paid attention. The reason it looks random is that the time interval when they shift from one type to another is such that it is shorter than the minimum time it takes to build a single unit. Also, the time "window" for a particular buff may be shorter or longer depending on the buff. I think that's why I only saw a Max Dmg one time out of 10, it has a shorter window of opportunity.


So, the trick is, if you know where you are in the sequence and you know how long it takes for the sequence to roll through all types and you know how long the time slot is for each type you can effectively build exactly what you need by watching the clock as you make them. By the time I finished theorder of 50, I could hit what I wanted about 50% of the time. Why only 50%? because, when you experiment you get failures that throw off your timing. Plus I found that if I built then waited 20 seconds then built and waited another 20 seconds I could build Tweaked then Hot-Wired then Tweaked again.


Anybody else that has noticed this?


Dix






Dix Flatline - MeS - Flurry
Master Commando - Master Smuggler
I don't kill Imps, I make killing Imps easier
ajm317
Tue Aug 05, 2003 10:04 am
#2

So you're suggesting there's a powerup "timer" that runs and all powerups made in certain "windows" of that timer have certain attributes? What sets the start point of the timer? How do I know when my "window" is open?



This seems needlessly complex, from a programming standpoint. I think that any perceived patterns in powerup production are not intentional, and are in fact the result of an uncleared variable somewhere in the code.




--------------------------------------------
Proprietor of the Theed Galactic Mall, located at -5648, 3189
Member of the Kauri Chamber of Commerce.
www.kaurichamber.com
DixFlatline
Tue Aug 05, 2003 10:12 am
#3






ajm317 wrote:

So you're suggesting there's a powerup "timer" that runs and all powerups made in certain "windows" of that timer have certain attributes? What sets the start point of the timer? How do I know when my "window" is open?



This seems needlessly complex, from a programming standpoint. I think that any perceived patterns in powerup production are not intentional, and are in fact the result of an uncleared variable somewhere in the code.






The start point of the timer is determined by the server I believe. It's the same for everyone on that server. By making one power-up, you can see where you are in the sequence and calculate where your "window" will be.


It may seem complex, but consider this. If I am a dev and I notice that one type of power upseems more powerful than the others, wouldn't it be nice to limit the window of opportunity so that less are made? Now it becomes a tool to help balance the game.



Dix






Dix Flatline - MeS - Flurry
Master Commando - Master Smuggler
I don't kill Imps, I make killing Imps easier
ajm317
Tue Aug 05, 2003 10:14 am
#4

I understand that point, but this is a silly way to do it. The way that would make the most success is to just tie it to a random number generated at the crafting. Of course, I'm not familliar with the code, so maybe that would prove problematic, just seems more likely to me. Maybe you're right, I don't know, but this seems to easy to manipulate if someone, like you, were to figure it out.



--------------------------------------------
Proprietor of the Theed Galactic Mall, located at -5648, 3189
Member of the Kauri Chamber of Commerce.
www.kaurichamber.com
kasuta
Tue Aug 05, 2003 10:23 am
#5

It doesn't really sound that far-fetched to me. It does seem that certain traits come in streaks--last night all I could make were freaking action/point blank powerups. I was looking for speed and got a larger-than-random number of these. My question is, what length are we talking for the timer? It would be easy for the programmers to determine powerup based on a timer--actually probably easier than doing it with a random number generator. It's worth thinking about, but I'd like to know what the length of the cycle is, and test it out myself.



____________________________
-Bucky Buchanan, from Saratoga!

Arf-Arf, woof yap woof arf growl.
DixFlatline
Tue Aug 05, 2003 10:24 am
#6






ajm317 wrote:
I understand that point, but this is a silly way to do it. The way that would make the most success is to just tie it to a random number generated at the crafting. Of course, I'm not familliar with the code, so maybe that would prove problematic, just seems more likely to me. Maybe you're right, I don't know, but this seems to easy to manipulate if someone, like you, were to figure it out.





I agree it seems silly at first, but consider that many things must happen when a power-up is made. It must be given a unique serial number and tracked in a data base. It might be easier from the server standpoint to have the data base organized in such a way that building items in groups becomes an efficient way to set up the indexing. I've been a software developer for 30 years, including 5 years with AOL and this is just the sort of trick you can use to increase server efficiency.


As far as someone figuring it out, I'm sure they figured out that someone would eventually. There are plenty of old hacks like me out there that know what to look for. They probably figured that not that many people would take the trouble to exploit this as it is really hard to do.


Dix





Dix Flatline - MeS - Flurry
Master Commando - Master Smuggler
I don't kill Imps, I make killing Imps easier
ajm317
Tue Aug 05, 2003 10:29 am
#7

I'm still skeptical, but maybe you're right.



I'd have to see it for myself.



Which brings me to my next question, what's the pattern?




--------------------------------------------
Proprietor of the Theed Galactic Mall, located at -5648, 3189
Member of the Kauri Chamber of Commerce.
www.kaurichamber.com
DixFlatline
Tue Aug 05, 2003 10:33 am
#8






kasuta wrote:
It doesn't really sound that far-fetched to me. It does seem that certain traits come in streaks--last night all I could make were freaking action/point blank powerups. I was looking for speed and got a larger-than-random number of these. My question is, what length are we talking for the timer? It would be easy for the programmers to determine powerup based on a timer--actually probably easier than doing it with a random number generator. It's worth thinking about, but I'd like to know what the length of the cycle is, and test it out myself.




That's what tipped me off too. Being the **edit**-retentive engineer that I am, I thought that maybe they were using a timer and so I experimented with waiting a certain amount of time before starting the next power up. The full cycle seems to take the same amount of time it takes to build two power-ups with about 20 seconds gap in between. If nothing else, knowing the sequence tells you when you are getting close to the one you want so you can move as fast as possible to hit the slot. My guess is the full cycle takes around 3 minutes, but I need to experiment more to get the exact timing down. At 3 minutes, that's about 30 seconds per stat on average.


Dix






Dix Flatline - MeS - Flurry
Master Commando - Master Smuggler
I don't kill Imps, I make killing Imps easier
DToxWeaponsInc
Tue Aug 05, 2003 10:43 am
#9

...sigh...


Random Number Generators are NOT random. They work off what's called a random number page. There's a finite number of these pages. What these pages contain is a series of numbers. To use an RNG, you have to tell it which page to use...this is called a "seed". Most programmers just use TIME as the seed for their RNG...hence, this is why you see the same numbers pop up in certain intervals.


Considering the need to reduce instruction pathlengths, only seconds, or perhaps milliseconds, would be used as the seed for the RNG. This is why every few minutes, you notice that you get the same random numbers, because you're using the same page.


The reason why the RNG seems "streaky" is due to the fact that you may be hitting the same page multiple times, and starting at the first number. I've failed on 3 Long Vibro Axes in a row...butthen made 30 with no problem, and failed on the next one (I'm an **edit** retentive, obsessed individual who records his failures and successes). BTW, I may not even be right on why the RNG is streaky...all I know is that in Everquest, the RNG was notoriously streaky, and this game is made by the same company...somebody's using the same streaky EQ code.


So, yeah...you could theoretically time it just perfectly, and always get the same Power Ups...but that would take knowing the interval used, which page gets used, and what it produces. If you used Trial and Error, you could go ahead and craft something, check a stop-watch, and see what comes out...then craft a second item 30 seconds later...then 20 seconds later...etc. etc. etc.


Why you'd want to even bother with this is beyond me.




Master D'Tox - "Master Weaponsmith"

"You don't want to be on the bleeding edge of my technology"
Tatooine Vendor locations:
Mos Quito -3370 -6325
D'Tox Auction Drop Off: -3285 -6030
Spelter
Tue Aug 05, 2003 10:47 am
#10

Makes a lot of sense. If I were doing it, I would just pull the next to the last digit (0-5) on the minute timer of the server. Of course, I'm no programmer, so what would I know.
Spelter
Tue Aug 05, 2003 10:48 am
#11

make that the second timer.
ajm317
Tue Aug 05, 2003 10:56 am
#12

Dtox's explanation seems more logical to me, but if you can produce a testable pattern Dix, more power to you.



--------------------------------------------
Proprietor of the Theed Galactic Mall, located at -5648, 3189
Member of the Kauri Chamber of Commerce.
www.kaurichamber.com
DixFlatline
Tue Aug 05, 2003 11:08 am
#13




DToxWeaponsInc wrote:

...sigh...


Random Number Generators are NOT random. They work off what's called a random number page. There's a finite number of these pages. What these pages contain is a series of numbers. To use an RNG, you have to tell it which page to use...this is called a "seed". Most programmers just use TIME as the seed for their RNG...hence, this is why you see the same numbers pop up in certain intervals.


Considering the need to reduce instruction pathlengths, only seconds, or perhaps milliseconds, would be used as the seed for the RNG. This is why every few minutes, you notice that you get the same random numbers, because you're using the same page.


The reason why the RNG seems "streaky" is due to the fact that you may be hitting the same page multiple times, and starting at the first number. I've failed on 3 Long Vibro Axes in a row...butthen made 30 with no problem, and failed on the next one (I'm an **edit** retentive, obsessed individual who records his failures and successes). BTW, I may not even be right on why the RNG is streaky...all I know is that in Everquest, the RNG was notoriously streaky, and this game is made by the same company...somebody's using the same streaky EQ code.


So, yeah...you could theoretically time it just perfectly, and always get the same Power Ups...but that would take knowing the interval used, which page gets used, and what it produces. If you used Trial and Error, you could go ahead and craft something, check a stop-watch, and see what comes out...then craft a second item 30 seconds later...then 20 seconds later...etc. etc. etc.


Why you'd want to even bother with this is beyond me.





It is true that RNGs can be streaky, but if properly designed, it doesn't have to be. Read the section on RNGsin Robert Segewick's "Algorithms" book (pg 33) for a good treatment of this. BTW, you don't have to "reseed" the generator with the milliseconds timer each and every time you want a random number. Good programmers will use the prior random number put through a good exclusiveOR type filter or something similar as the seed.


Also, there are TWO separate timers I think. One isfor the type of power up you get and the other is for the failure/success rating. I think they have slightly different durations so that the failures also come in groups for specific power-up types.


I could be wrong, but I still tend to think this was done intentionally to allow load balancing the servers more efficiently. As far as why you would want to bother, I agree. It's a real pain to do, but it was also a fascinating experiment. What can I say, I like to figure out how things work.


Dix




Dix Flatline - MeS - Flurry
Master Commando - Master Smuggler
I don't kill Imps, I make killing Imps easier
Page 1 of 1
Previous Next