thinking cap
#21
There's no easy answer. I had expected a drop in shrine counts for level 2, since space had to be allocated for the butcher, but it turned out not to have any less than the other levels. The problem in researching this is that you can only count games where you've cleared levels 1 through 8 completely, and this takes time, so my sample size wasn't high enough to detect small variations. There may be small variations, but in my case, the only level that performed differently was level 4, which overall had a noticeably lower count than the others. What I was really looking for at the time was whether the different shrines were more likely on certain levels. (I think they were well-spread IIRC.) I suppose if I had played 1000 games, level 4 would probably have caught up-- in fact, I think that my level 4 thing was not really statistically significant, and I almost didn't mention it.

For a definitive answer, we would want Jarulf to answer based on his reading of the program logic.

I came across some of my old Diablo notes the other day, I'll pay more attn when I go thru that area again.
Reply
#22
The game doesn't really say "hey, now I want a shrine somewhere" and then put it down. Shrines would be places in special "rooms" created in the dungeon. The game pick randomly for the content of those rooms and shrine is one of the possibilities. If I recall correctly from playing, the content available in church is slightly different from that in the catacombs. On the other hand, I have absolutely no idea how and to what extent the game create rooms differently in ammounts in church and catacombs, that part of the code is quite complex. So I don't really think there is an easy way to estimate it, even for Blizzard or with the source, except generating lots of dungeons and count.
There are three types of people in the world. Those who can count and those who can't.
Reply
#23
Quote: I've only really contributed one, maybe two, things to the Diablo community and now no one remembers *sob*.

Well, Van, I also remember (apart from the SAWH-hidden shrine thing) your discovery of the way trapped doors reset when you reenter the dungeon, so your contributions to Diablo-Science are not completely forgotten.

p.s. Perhaps "Christ a Lion!" was Jarulf's master in code reading, but the same cannot be said of his explanations.

p.p.s Yes, as I recall Armin and Claudio were two people that found hidden/enchanted shrines to be completely random, which tells you something about their dedication to playing Diablo, right there.

p.p.p.s Don't forget those dex-enhancing mysterious shrines.

p.p.p.p.s. Ironbeard was the discoveror of the pricing formula IIRC -- I believe it was Dimtry and Ravager (he whose name is always forgotten) who discovery the clock freeze thing (followed closely by CodeMyster 6 months later).
Reply
#24
Hi Van,

Glad to see you still do the occasional lurk.

Yep, my bad for not "beating your drum". I'm guilty of the historian's fault, tending to give all the credit to the person who finalized the answer without giving props to those that paved the way. Sorry.

--Pete

PS So, I'll say hi to Magi when she comes home ;) And how are you doing, how's the Vanlet coming along?

How big was the aquarium in Noah's ark?

Reply
#25
The game pick randomly for the content of those rooms and shrine is one of the possibilities. If I recall correctly from playing, the content available in church is slightly different from that in the catacombs.

From playing, I've observed these types of rooms:
Shrine
Goat Shrine
Flaming Cross
Decapitated Bodies
Miscellaneous Gold/Loot
Barrels
Skewered People
Armor Racks
Weapon Stands
Fountains and Pools
Library
Skeleton Tomes
Empty

IIRC, Church can't have Goat Shrines on 1-3, Armor Racks, Weapon Stands. Cats can have everything except Skeleton Tomes on 7-8. So, it looks like Cats has more possibilities - particularly on 5 and 6. If selection of room content is random, it seems Church has a very slight edge here.

[o: *LEMMING* :o]
Reply
#26
Thecla,Apr 4 2003, 11:33 AM Wrote:p.s. Perhaps "Christ a Lion!" was Jarulf's master in code reading, but the same cannot be said of his explanations.
I wouldn't sya that is true. SUre, he looked at it quite some time before I did, and thus a few times pointed out were to look since I had not looked, but that is about it. I actually "learned" it all by myself.
There are three types of people in the world. Those who can count and those who can't.
Reply
#27
Quote:I wouldn't sya that is true. SUre, he looked at it quite some time before I did, and thus a few times pointed out were to look since I had not looked, but that is about it. I actually "learned" it all by myself.

All I meant was that Crystalion was one of the first people to find out things about how the game really worked by reading the code (which is fairly true AFAIK), not that he taught you how to do it. :)

Actually I miss the early period of D1 when people were trying to discover stuff by experimenting with playing the game itself, and D2 never really had such a period (plus D2 is such a huge, rambling, every-changing, multi-headed behemoth that trying to say exactly how it all works is sort of pointless).
Reply
#28
Hi,

Like: D2 is such a huge, rambling, every-changing, multi-headed behemoth that . . . it . . . is sort of pointless.

Learned to do that by backtracking the critic's blurbs on books :)

--Pete

How big was the aquarium in Noah's ark?

Reply
#29
I am now certain that Thecla is my stalker. I make one (ok, three) post after a two-year hiatus and within seconds (onlinetimewise) a post from Thecla appears. Not only that, but a post bringing up stuff about me that even I've forgotten about. Fortunately I am such a big egoista that I think that it's a good thing. I'd forgotten about SAWHorse, but after reading your (Thecla's) post I remember how frustrating it was that I couldn't easily get the corresponding order for the enchanted shrines. If CL wasn't hit, what was? Well, you'd need a character that had all spells except CL to test that, what a royal pain. I never did get that far. (It seemed that Ench also hit Flash a lot, maybe that was number two..) I vaguely do remember something strange with a trap door, but I can't even remember trap doors any more. Do you remember if I said there was any advantage to reseting a trap door? I just have no recollection.

Pete, the little one just turned 3, she's doing great, except that she seems to be developing a sense of humor very similar to mine. I expect Protective Services to arrive any day now and inform me that a child cannot be raised in a warp-intensive environment.

Jarful*, sorry if I trivialized your accomplishment of learning to read the code by suggesting that Crystalion taught you. (If I had learned to do read it, I'd probably still be trying to find out whether the trap-door reset was intentional or not.) From your posts, it seemed like he was a lot more comfortable with it than you were, he must have done that sort of thing before.

-V

*Jarful is short for "Jarful of Knowledge", a term when applied to Diablo fits Jarulf better than anyone else. BTW a Jarful of Knowledge is much better than the usual "Earful of Ignorance" many posts will normally have. Was that a good one, Pete?
Reply
#30
First, I'm insulting Jarulf. Next, I'm stalking Van. Pretty soon, I'll be impersonating Sorceror. ;)
Reply
#31
Hi,

I just have no recollection.

Doctor, "And just how long have you had this memory problem?"
Patient, "What memory problem."

Pete, the little one just turned 3, she's doing great, except that she seems to be developing a sense of humor very similar to mine. I expect Protective Services to arrive any day now and inform me that a child cannot be raised in a warp-intensive environment.

I bet her first words were a MPQ ;)

Was that a good one, Pete?

Well, it didn't measure up to the old Vanisms. You used to be quite a wit. I guess the long absence made you lose your edge -- I'd estimate you're about half way back ;)

--Pete

How big was the aquarium in Noah's ark?

Reply
#32
Sheesh you guys, it never ends huh? HI VAN!

All I remember from this whole shrine mess was my abbreviated summary of Jarulf's (and others) findings that I wrote in the DSF Buglist.

Due to a design flaw in how the game engine handles the random effects in shrines, Hidden Shrines will tend to reduce the durability of the item in the right slot (left hand) more often. Mysterious Shrines will tend to raise Dexterity more often than other stats. Enchanted shrines will tend to reduce Chain Lightning more often than the other spells. This effect becomes less noticeable the more you play in a single gaming session, i.e. the shrine effects will become more 'random.' Namely, the "random seed" stored with ANY shrine is not initialized properly, and the shrine uses whatever happens to be in that memory location. At startup this memory will mostly be "empty", which is read as zero, which then causes the non-random behavior. After the game is played for a while, the memory is much less likely to be zero, and therefore tends to approach randomness.

-Bolty

P.S. Why did Van think he can hide with the name "Vandiablo?"
Quote:Considering the mods here are generally liberals who seem to have a soft spot for fascism and white supremacy (despite them saying otherwise), me being perma-banned at some point is probably not out of the question.
Reply
#33
Vandiablo,Apr 5 2003, 08:12 AM Wrote:Jarful*, sorry if I trivialized your accomplishment of learning to read the code by suggesting that Crystalion taught you. (If I had learned to do read it, I'd probably still be trying to find out whether the trap-door reset was intentional or not.) From your posts, it seemed like he was a lot more comfortable with it than you were, he must have done that sort of thing before.
Yes, he was much more experienced at it than me and had been into it much more before. I have just casually been messing with assembler for the fun although I did sort of reverse engineer Lords of Midnight back at the Spectrum days :) So Diablo was not a first.

Thecla, you need to spell his name properly first :)
There are three types of people in the world. Those who can count and those who can't.
Reply
#34
Hi,

Levels is enough, games just make it multiple levels.

I never could understand how this would work. Let me explain my understanding, and perhaps you'll point out where my mistake lies:

When the program starts, the memory it will use is initialized to zeros.
When a game is started, the seconds since (whatever) registers are used as the base seed for everything in the dungeons.
For each dungeon level,
-- the layout of the level is generated, along with the monsters, etc.
-- for all the "random" effects on that level storage is allocated and initialized (this is where the bug is -- some stuff is not initialized and so stays zero)
When a player's character enters a dungeon level, the information for that level (including the storage for the random effects) is loaded.

OK, now here is what I don't understand. Since the storage for the level is loaded when you enter the level, then the values in that storage overwrite what was previously in those memory locations. The stuff that was mistakenly initialized to zero (i.e., not initialized) would still be zero regardless of what was in that memory before. Now, when a new game is started (without quitting Diablo) the last game will have left miscellaneous junk in the memory it used, and this junk will be what is in the uninitialized space -- and that is where the randomness can come in. So I can see it becoming random after multiple games, but I can't for multiple levels.

So, what is wrong with my understanding of how the game works?

--Pete

How big was the aquarium in Noah's ark?

Reply
#35
Jarulf will have the better answer but in the meantime, here's a carppy old BBC programme... (MPQ)

A long time ago, I understood it to be playing multiple games would wipe out the effect-- but after reading J et al say levels I accepted their explanation without question.

I've seen similar things happen when pointers are used, when they point to the wrong address - predictable things (but maybe "wrong") happen when it's pointing to zero memory, but then unpredictable stuff starts to happen when the memory that the pointer points to has been used.

So maybe the erroneous pointer is stored at game creation, and is supposed to point to a "fixed" stored seed, but instead points to dynamic memory? And the dynamic memory it points to is "high" enough that it doesn't get used until the third level or so?? My guesses. Thanks to Pete for putting it so linearly so clearing the confusion will hopefully be easier.

-Van

Personal replies:

Pete: no, no MPQ first words, but my wife is pushing for the kid to say "excuse me" after tooting rather than the "darn frogs!" I've taught her by example.

Thecla: I do not in seriousness believe you are a stalker. In reality, I believe you are a software program/database devised by Bostic, meant to fool the higher-brow* posters of the various Diablo fora. Fortunately, I am not high-brow and I can see right through it.

Jarulf: Yeah, you spell it F-I-N-N-A-N-etc. . . . . oh BTW congrats on your mention on CNN. Where can I get an autographed copy of the Guide?? B)

Bolty: I can hide behind "Vandiablo" in the same clever way I hide behind the "-Van" at the middle of my posts. I've decided that, like most of the world, I don't like Van Damned anymore. Unlike most of the world, it's not because of me. It's because of a heinous crime upon a young helpless victim with a similar name. While we should never forget the victim or the crime, I am afraid that I can no longer use the name and remain in the spirit conducive to posting on a Diablo forum. (I decided to keep the hotmail account tho because once or twice a year I get real Diablo email there; but, yuck, a spam ratio of about 3000 to 1.)

Carol: Last night was incredible! Whoever thought up battery-powered geodesic tongue-studs should be tied down and ... well that's a reply for a different forum...

AJolie: how come you never answer my letters? I am starting to think that maybe your love for me isn't as strong as I'd like it to be, so I've come up with a Plan. Shall I tell you now or would you rather hear it in person?? Please answer. NOW!**

HALL OF ASTERISKS

*Whereas that other program (Landau? Landgrab? Landry?) was meant to fool the lower-brow participants

**tasteless, tasteless. Those are the words I plan to be my last utterance. Either that or "Strike the tenpin". (CWQ)
Reply
#36
May the wind pick up your heels and your sword strike true.
Reply
#37
The data for the *current* level is always stored in the same place in memory. Whenever you enter a new level, the current level is stored away in a compressed form somewhere else and the new level is initialized on top of (that is at the same address) as the last current level and hence may have some cases where the shrine ends up in a place in memory were on the previous level there was an object that initilized with a seed.

Thus, each new level you enter have a higher chance that its shrines end up in a place were the previous level had something stored there that had an initilized seed.

Also note, going BACK to a previous level will still have this higher chance of randomization compared to when you first entered it. Why? Well, the game only store a few things for a level when you leave it, things that can change. Everything else is recreated. Thus the whole dungeon layout is recreated (using a special saved dungeon level seed), including generation of the shrines (and hence possibly them ending up where there allready is a non zero seed). After that, the level is updated for the saved things, so that a used shrine is set ot be used (basically a flag or something like that, don't remember).

Did this explain it?


As for the name, I meant Sourceror, note the "u".
There are three types of people in the world. Those who can count and those who can't.
Reply
#38
Quote:As for the name, I meant Sourceror, note the "u".

To be completely accurate, it's not absolutely necessary for me to spell "Sourceror" correctly in order to impersonate him -- I would probably use a name like "HoneyImaSupremelyLegitHaddie" were I to try that.
Reply
#39
combining their posts, not them

Reading Pete's layout of his/our confusion, he talks about the seed being stored as "zero" but reading Jarulf it looks like the value stored for a shrine seed may be a NULL, which is different (or at least can be). If you copy a zero to a memory location, you overwrite the old value there. If you copy a null, you don't copy anything, and you do no overwriting. (Depending on the language, and that may be wrong for assembler, I don't know assembler.)

So, my understanding, from reading Jarulf's post:

1. Game created-- all shrines created -- all seeds for shrines have memory space allocated but have no value assigned to them (NULL).

2. The character enters the dungeon. The memory for "current level" is filled in with the previously created "dlevel" 1, 5, 9, or 13. For this initial level, all shrines seeds will be null, which is read as zero, if I'm right. This level will cut yer shield, cut yer CL, or raise yer dex at the 3 shrines we've mentioned.

3. The character enters another dungeon level. State flags are saved for the dungeons (except for trap doors, due to the Van Trappe Fanomaly as pointed out by Thecla) somewhere for later retrieval. The "new level" is pulled into the "current level" memory area. The memory space for the shrine seeds on this level is not overwritten. This memory space is most likely at a different address than the shrines for the previous level. This memory space still contains whatever it did for the last level, which was not necessarily a shrine seed. It can contain either "junk" or "null junk". If the junk is null, you will still have the shield/CL/dex effect. Otherwise, the shrine will pretty much be random.

4. The character returns to the first level (which was dlevel 1, 5, 9, or 13). A shrine that was previously "null" seeded may now have a somewhat-"random" seed, though there is still a chance for the null effect. This is because there is still "junk" from the second level that was not overwritten when the first level is brought back. If the "junk" was null, you still have the effect.

5. Evidently, given the number of ppl who claim that the shrines were random for them, the odds of a null-seeded shrine continues to descend with successive levels. However, I am thinking that there shouldn't be that much difference between 2nd and beyond. It would depend on how much non-zero data is typically stored in the "current level" memory area, and if there is other "null copying" than shrine seeds.

This information (as I think we realized years ago) could be used to cheat. If you find one of those shrines in the first level you do, you know what will happen.

It's kinda funny though that you will get different shrine effects from the same shrine depending on what your previous dungeon level was. Also, it's funny that it could vary from player to player, since they could have different histories. Ah, if only my testing apparatus were still assembled....

-V
Reply
#40
Hail Vandiablo,

Combining Pete and Jarulf, literally. Flames idiots by mathematically proving they are brainless ;)
May the wind pick up your heels and your sword strike true.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)