PDA

View Full Version : Are item drops and rare enemies pre-determined?



VulpesMundi
Nov 25, 2003, 09:35 AM
A recent topic by Auracom on the swapping of IDs to change a rare enemy drops got me thinking: "Are item drop and rare enemies pre-determined, and if so to what degree?" There hasn't been a whole lot of discussion on these matters, surprisingly. However, I think I may have come up with the answers (or at least a really good theory backed with some proof).

Are rare enemies pre-determined?
Yes, I believe they are. Offline enemy spawns appear to be determined the moment you enter an area. Online seems a little different, though. The enemy spawns, as far as I can tell, are determined by the game's creator the moment a team is made (or a quest is loaded) and then saved server-side. The proof that enemy spawns are pre-determined online is lag. Yes, lag. Even when you lag you can still continue to strike enemies down and pass through wave after wave. You can even change to an unvisited area while lagging and find more waves of enemies there. This would indicate that enemies are all pre-determined and then uploaded from the server into each player's system RAM the moment they join the team (or a quest is loaded). Changing the team leader shouldn't have any effect on enemy spawns unless a quest is loaded after the team leader has changed.

What does this mean?
It means that if you're hunting rare enemies (especially holiday Rappies online) it's a good idea to complete an entire area where said rare enemies may appear (or at least clear every room where they may appear). Otherwise, you may be missing a rare enemy that was already pre-determined to appear.

Are item drops pre-determined?
Yes, I believe they are. Offline item spawns appear to be determined the moment you enter an area. The proof is that killing an enemy causes an immediate item drop with absolutely no delay. Online is a little different, however. The item spawns, as far as I can tell, are (re)determined by the game's leader whenever s/he enters Pioneer 2. These item spawns are then saved server-side temporarily until either the enemy is killed or the box is broken, the leader returns to Pioneer 2, or the leader changes and returns to Pioneer 2. This explains why when a team leader leaves/DCs and the ID changes, the items will still have been pre-determined from the old leader's ID. Having the new leader return to Pioneer 2 will re-determine the item drops with the new ID.

What does this mean?
It means that if you're hunting specific items it's a good idea to complete an entire area where the enemies/boxes may appear (or at least clear every room where they appear). Otherwise, you may be missing an item drop that was already pre-determined to appear. This also means that you can manipulate the system to drop specific items. Unfortunately, that knowledge is useless since you can't see what an enemy is determined to drop.

One interesting thing to note is that if the team leader lags, nobody will see item drops until after s/he stops lagging. The reason this happens is because the server will only drop items based on enemies killed and boxes broken on the leader's screen. If the server does not receive this information from the leader, it will not bounce items to all the players. Kinda interesting, but not really all that important to this topic.

What do you think? Does this hold water? And I hope that made sense. I'm half asleep. Z.z

<font size=-1>[ This Message was edited by: VulpesMundi on 2003-11-25 06:41 ]</font>

muff
Nov 25, 2003, 10:25 AM
I think you pretty much hit the nail on the head there.

However when hunting seasonal rappys I would still just do the first few runs. Your right you might be missing one towards the end of the run, however the chances of seeing one in the first rooms by keep restarting, outway the odds of one spawning towards the end. (I hope that made sense).

rena-ko
Nov 25, 2003, 10:37 AM
lag is another nice proof for this, yes. i prefer to use cmode to proof it (to myself).

about enemies and waves preset when entering an area.
yes, i think so. i guess the game areas are scriptbased. quests and normal play show that. only cmode has random waves.
so this is no really proveable with cmode, but i guess cmode stages get also randomized at the beginning, then sent to each player as script and worked through.

fact: cmode stages feature the same waves in each try as long as you dont leave the game.

interesting issue might be to find a cmode stage with a rare monster in it and see if its on the same position when one restarts the game.


for items. the lag proves it to me that itemdrops get randomized in the millisecond the drop is made.

again, cmode. you may get the same waves but you dont get the same items with every retry.

i think its true that the gameleader sets the item drop since its also that players ID to determine what drops. if you lag and youre not the leader you wont get any drops while your cube is busy hammering the server with requests until you eventually get kicked.

muff
Nov 25, 2003, 10:41 AM
interesting issue might be to find a cmode stage with a rare monster in it and see if its on the same position when one restarts the game.

If you retry the rare monster will remain.

rena-ko
Nov 25, 2003, 10:46 AM
On 2003-11-25 07:41, muff wrote:


interesting issue might be to find a cmode stage with a rare monster in it and see if its on the same position when one restarts the game.

If you retry the rare monster will remain.


happened to you before?
well, this proves that everyone can leave ragol to the town, and as long as the game stays there (like in... 1 player stays in) any eventual rare critter is still there as well. hmhmhm. thus piping does not work online. yeah, youre right.

VulpesMundi
Nov 25, 2003, 11:25 AM
On 2003-11-25 07:37, rena-ko wrote:
interesting issue might be to find a cmode stage with a rare monster in it and see if its on the same position when one restarts the game.

Yes, rare enemies reappear each and every time while playing online. I've experienced that a few times. Offline, I'm not sure about.



for items. the lag proves it to me that itemdrops get randomized in the millisecond the drop is made.

The lag, imo, is because of the server bounce. The server has to get the data from the leader that an enemy/box is slain before it bounces the item drop to each of the players. There is absolutely positively no noticable lag between an enemy/box kill and the item hitting the floor while playing offline.



again, cmode. you may get the same waves but you dont get the same items with every retry.

Of course you don't get the same items. The team leader has returned to Pioneer 2 and the item drops have been re-determined.



i think its true that the gameleader sets the item drop since its also that players ID to determine what drops. if you lag and youre not the leader you wont get any drops while your cube is busy hammering the server with requests until you eventually get kicked.

None of the players on the team see items drop while the leader is lagging. This was explained in the previous post.

<font size=-1>[ This Message was edited by: VulpesMundi on 2003-11-25 08:28 ]</font>

Superguppie
Nov 25, 2003, 11:45 AM
Well, it does makes some sense to me, being one of the posters in that other topic that made some claims akin to yours.
I have some remarks on the online gameplay. In this there are questions left to answer. I hope these can be answered by some experiences...

First of all, the way I think of a PSO game is that it is a simulation. The simulation for each player takes place on his or her own machine, with messages going to and from the server to keep it all in sync.
As indications of this I name the effects that occur when there is LAG and the error ST made regarding Jack'o'Lantern.
In case of LAG I can see a fellow teammate swing his sword in the air, and damage numbers appearing over an enemy that is somewhere else. Also I have seen a case in which all enemies were killed in my world, but not in a teammates'. She was fighting hard, and I did see damage numbers and heard damage sounds, but all in the air. Also, I couldn't help her kill the enemies, as they weren't there in my world. I could even walk out of the room through the door that had unlocked, and she couldn't because it hadn't.
In another case of LAG I saw a teammate kill an enemy some distance away, and an item drop right by my side. Obviously, they were not where I saw them. The information of what they were doing reached me, but only when the item was dropped, the coordinates for it turned out to be different. Another example of this is seeing someone run into a wall and attack it, killing an enemy in the next room.
When doing a 'use' on Jack'o'Lantern, the 'use' is going across the net, but the result isn't. This results in each player seeing a different MAG cell. Obviously, the cell kind is determined at the moment of the 'use' and should be, but isn't synced, and definitely not predetermined. This raises questions about the predetermination of all other things.

Also, I think there isn't much of a difference between the online and the offline simulation. Just what is needed to keep the team members see the same things. That's why te simulation can run on when the connection is lagging, but not disconnecting.

In this view, the nature of enemies and items is mostly a matter of syncing from the origin to the other systems. The questions are, when is the nature of an enemy/item determined and where.

I can see 4 options for the where:
1) The leader system does it, and the results are sent to the server, that then manages and distributes them.
2) The system of the first to arrive does it. With this I mean that the system of the first person to get into a room (and thus force a spawn) does it, and the results are sent to the server, as in option 1). This only makes sense in combination with 'when' option c) below.
3) The server does it, and the result is sent to the team members.
4) Each team member system does it, according to a common pattern. The only thing communicated at the moment of the spawn is As long as the systems are well synced, each member will see the same things.

I can see 3 options for the when:
a) when the team is created (predetermined)
b) when entering an area
c) on demand (why create something that you may not even need?)

I also see these may differ for enemies and items.

In the other topic, there was talk of a drop change of a rare monster, because the team leader left. This means the nature of the drop changed. However, it doesn't mean the change happened when the new leader entered the area. It may have been when the old leader left (although I consider that unlikely. Leader leaving doesn't cause a pause) or when the item was actualy dropped. (in which case it isn't predetermined at all)

Secondly, I have some remarks to the content of Vulpes Mundi's writings itself.
- He claims that the possibility to continue butchering enemies when lagging proves their nature is predetermined. I disagree. It only proves the simulation runs on.
- He claims it is wise to always go all the way, since you may miss one. This is also true if it is all not predetermined. Whether something drops at random or because it was meant to be is inconsequential. The rare may always drop on the last kill in the last room, random or not. So, it is ALWAYS wise to go all the way.

Tests:
A) Lag a teammember without disconnecting. Play on on both the lagged system and the non-lagged system and watch the enemy patterns. If they start to differ, c) goes for enemies.
B) If A) was negative, lag the team leader without disconnecting. Play on, on the team leader system and note the enemy patterns. Disconnect the leader, so a new leader is appointed. Go to P2 and back. Continue the fight. If the patterns are the same as on the leader system, b) goes for enemies.
If both A) and B) come up negative, I'll go for a) for enemies.

C) Start an area and have the leader leave, without having the new leader leave (and reenter) the area. Now finish the area and look at the drops. If they match the new leaders ID, c) goes for items.
D) If C was negative, Start an area and have the leader leave. Also have the new leader go to P2 and back. (It might be best to test this both with a 3rd member waiting in the area and going to P2 and back with the leader) Finish and check. If the drops match the new leaders ID, b) goes for items.
If both C) and D) come up negative, I'll go for a) for items.

I could also come up with tests for the where, but this is besides the topic.

Edit: I see that while I was writing this rather lengthy reply, others also replied. So some answers are already given. I'll leave the rest as it is as to not make the text even more lengthy and hard to follow

<font size=-1>[ This Message was edited by: Superguppie on 2003-11-25 08:48 ]</font>

Malkavian
Nov 25, 2003, 01:00 PM
Since Dreamcast I had doubts about this.
I don't see how can you prove the items are exactly predetermined instead of a predetermined pattern of which stuff can be dropped.

If your theory is true I think is evil from ST. Sometimes we always got those amazing runs where you get several 70%+ weapons or a pair of rare stuff you normally get 1 each many many runs. I think that happens because the games predetermines a lucky run. So the chances of getting many good stuff are high.
But if they predetermine each item individually they could put a method that doesnt repeat good stuff in a single run. Well this was different in DC. I didn't note these extremely lucky runs in DC. The luck came in tinier and separated packets.

Anyways I support the do whole stage point. Most of the people go straight to boss, i hate that. But I must live with it. Then I think maybe in that room we left there was a rare... is a thought that thrills me heh.

HUnewearl_Meira
Nov 25, 2003, 01:18 PM
Barubary once mentioned this. To properly understand item drops, you need first to understand how randomizers work.

When a game is created, a random "seed" is chosen, as well. The "seed" is a value from which all random numbers are taken. It's a value that is less than 1 but greater than zero. This value is typically based on the system's internal clock, and taking a quest may or may not reset this number (Barubary would be the person to ask about that).

In any case... New numbers can be taken seemingly at random based on this seed value. Because everything will work in precisely the same way, with only the new seed value as a difference, every enemy will spawn the same, if the same seed is used twice. The seed also determines what each enemy will drop. So yeah, everything that is random is determined by the game's seed. Barubary has claimed to have a seed that will spawn a Love Rappy in the first room of Temple, every time.

Now, as for offline, there is certainly a seed involved, but I'm inclined to figure that the seed changes every time you move from one area to another, ie, going from Ragol to Pioneer 2 then returning to Ragol (the Telepipe trick). It seems that doing this will change your seed, and you can therefore find rare enemies like this.

Mixfortune
Nov 25, 2003, 05:57 PM
Assigning a "seed" based on time is a relatively easy task. The concept of "random" is running a complex equation that has little pattern to it, and causes a large variety of results even if the seed is changed by a little bit. Calling multiple "rand" functions takes the result of the last number result and runs it though another complex equation, making another completely "random" number. If you modulus the number, meaning taking the remainder of a division equation to form a range of numbers, you effectively have what seems to be a "random" set of numbers. Creating another "seed" based on time at different intervals (going back to Pioneer 2) can also be used to recreate new branching determinants.
Of course, there are many, many other ways to create a similar effect, but I thought I'd go more into the schematics of how "random" numbers were generated.

HUnewearl_Meira
Nov 25, 2003, 06:03 PM
On 2003-11-25 14:57, Mixfortune wrote:
Assigning a "seed" based on time is a relatively easy task. The concept of "random" is running a complex equation that has little pattern to it, and causes a large variety of results even if the seed is changed by a little bit. Calling multiple "rand" functions takes the result of the last number result and runs it though another complex equation, making another completely "random" number. If you modulus the number, meaning taking the remainder of a division equation to form a range of numbers, you effectively have what seems to be a "random" set of numbers. Creating another "seed" based on time at different intervals (going back to Pioneer 2) can also be used to recreate new branching determinants.
Of course, there are many, many other ways to create a similar effect, but I thought I'd go more into the schematics of how "random" numbers were generated.



Great Lutz Almighty... You've done your homework, haven't you?

Superguppie
Nov 26, 2003, 03:17 AM
Randomizers are common knowledge for anyone that has had a serious education in computer stuff. So, yeah, homework done by me too.
The thing in this topic isn't HOW the enemies and drops are determined, but when. Whether this is determined by a complete map or by an RNG-seed is circumstantial.

Oh, and I think I forgot a test in my earlier post:
E) Ask BaruBary6....

heyf00L
Nov 26, 2003, 05:48 PM
I doubt that drops are predetermined. Seems to me like they're randomly determined by the team leader and then sent to the other players. If they were predetermined it'd be like rare/nonrare enemies (which are predetermined) which will spawn for everyone even during lag.
You could probably test that by lagging slimes. Have a non-teamleader split the slimes and kill them without the leader seeing them split. Now if the split slimes drop items then I'd say drops are predetermined. If they don't drop items then they're not predetermined. Sounds like a good test to me.

At any rate it doesn't matter. It really doesn't change anything. If a rare enemy is set to spawn in a room online and you don't go there, that's the same as you not going into the room offline and having a rare enemy spawn.

Captain-Banisher
Nov 26, 2003, 07:53 PM
What would that prove? Nothing. The Leader would still be present in the game. I think everything is pre-determined the second the game is created.

Xeno_M
Nov 26, 2003, 09:38 PM
Hmm. Obviously the enemies on the map are predetermined. I think the fact that the piping trick doesn't work online is proof that even rare enemies are predetermined when the game is made. As for items being predetermined, i dont think it matters (like vulpes said) because the only way to find the item is too kill the enemy/box. So the info is rather useless.

I tend to think the items are generated randomly at the moment the enemy/box is killed. But then again, i think about on certain room in the caves. There are 6 boxes in a group and only ONE ever drops an item. The item is random, but still the other 5 are set to drop nothing. Lag i dont think can prove anything... All lag is doing is making the item take longer to hit the ground. I got confused with all the talk about the leader sending info to server and back to teamates, so im not even gonna hit on that...

Jazhara
Nov 28, 2003, 05:17 AM
On 2003-11-25 06:35, VulpesMundi wrote:
Are item drops pre-determined?
Yes, I believe they are. Offline item spawns appear to be determined the moment you enter an area. The proof is that killing an enemy causes an immediate item drop with absolutely no delay.


This is no proof at all. The calculation to randomise an item drop, and then the processing power to render the item can happen in waaay less than a frame.

Not saying you're right or wrong Vulpes, just that instant item drops offline prove nothing. http://www.pso-world.com/psoworld/images/phpbb/icons/smiles/icon_wink.gif

Enemies are obviously predetermined for all areas, otherwise enemy counts per map wouldn't be possible.