HotPocketRemix / DarkSoulsItemRandomizer

Randomizes Dark Souls 1 items & shops
68 stars 21 forks source link

Seeds are not deterministic for non-key items #1

Closed rpconnol closed 6 years ago

rpconnol commented 7 years ago

Though key items are handled "manually" in the source, I assume that other items are shuffled based on the current GameParam.parambnd, which changes every time a new scramble is exported.

For example, from a "fresh" start with the default GameParam.parambnd, I generate a shuffle with Seed1 and play it. Later, I overwrite it with a new Seed2. If I attempt to regenerate Seed1 again by plugging it back in with the same settings, the key items will still match exactly (preventing softlock of the playthrough) but the overall item distribution will be completely different, meaning I can find duplicates of items I already looted, or be unable to find specific items at all.

If this is intentional it could just be noted explicitly in the readme: a reminder to replace GameParam.parambnd with the original backup GameParam.parambnd.bak each time the user generates a new scramble.

Alternatively the Item Randomizer could do this automatically by checking for GameParam.parambnd.bak, removing GameParam.parambnd, and renaming GameParam.parambnd.bak to GameParam.parambnd each time the user scrambles&exports.

HotPocketRemix commented 6 years ago

Sorry for the extremely late response, I don't check GitHub very often.

This is a bug, and will be fixed in v0.2.1. The item distribution was being corrupted by data that was persisting from the previous run, so future runs would be substantially different. This doesn't affect keys because they are left untouched by that process (event flag rectification) and they're also placed before the rest of the items.

However, this bug and another bug can make some key items disappear extremely rarely. This will also been fixed in v0.2.1, but both can be mitigated by restarting the Item Randomizer before re-randomizing, since that will restore the Randomizer to a fresh state.

HotPocketRemix commented 6 years ago

Fixed in https://github.com/HotPocketRemix/DarkSoulsItemRandomizer/commit/cbc359553c421b2278ffbef6ff275588d98dba95