Comments (5)
@lordlou @Rosalie-A @t3hf1gm3nt
from archipelago.
I have determined at the very least that there is an issue of non-deterministic behavior in TLOZ's level 9 junk fill. Specifically with the use of random.choice here: https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/tloz/ItemPool.py#L139 as it will grab a different group of filler items even with the same seed. I will need to do a bit more testing to determine that this is the only issue, but my preliminary testing is showing that this might be the solely an issue with TLOZ and not with SMZ3, and will also come up with and PR a solution this weekend.
from archipelago.
I have determined at the very least that there is an issue of non-deterministic behavior in TLOZ's level 9 junk fill. Specifically with the use of random.choice here: https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/tloz/ItemPool.py#L139 as it will grab a different group of filler items even with the same seed. I will need to do a bit more testing to determine that this is the only issue, but my preliminary testing is showing that this might be the solely an issue with TLOZ and not with SMZ3, and will also come up with and PR a solution this weekend.
Instead of doing random = world.multiworld.random
, do random = world.random
-- that should fix it
Definitely doesn't help that SMZ3 also uses multiworld.random all over the place -- that's probably contributing to this in some fashion
from archipelago.
The way I identified this issue was to compare the location of all progression items between generations, so I paid no attention to filler items if that's something that's been identified as an issue.
I modified the end of the generator to output the location of every progression item and what that item is into a line in a file whose filename is unique to the combination of the seed and the worlds in the multiworld.
If the file already exists when preparing to output to it, the progression items from the current generation are compared against each line in the file and if none of the lines match the current generation, then a new line is written for the current generation.
With this setup, I could put a unique combination of template yamls in the Players folder and spin up generation with the same seed a bunch of times. If the debug output file for that combination ever had more than one line in it, then that combination of yamls had non-deterministic generation.
I used this to bisect, starting with generation that included every template yaml, until I could find which worlds were causing the generation to be non-deterministic.
from archipelago.
Did what I could on TLOZ's end with #3670. lordlou will still need to look into whats going on for SMZ3
from archipelago.
Related Issues (20)
- Bug: Starcraft 2 client fails to connect to local server without internet HOT 1
- Bug: Zork Grand Inquisitor progression bug HOT 4
- Bug: FactorioClient does not respect --connect flag HOT 6
- Allow Zooming of the Applications
- New Feature Request: Starcraft 2; Nova color selection in options page HOT 1
- Bug: A Hat in Time difficulty doc has discord links HOT 5
- (Celeste 64) "Key Not Found Exception" when trying to get past file selection screen HOT 3
- Bug: SC2 vanilla mission order sometimes allows playing missions with their prerequisites unlocked but not completed HOT 2
- Bug: Hollow Knight: Missing Logic: Require Focus before entering Black Egg Temple and fighting HK. HOT 2
- Port for further architectures? HOT 2
- Bug: CollectionState.sweep_for_events() semantics may have been accidentally changed in #361 HOT 4
- Bug: Generation refreshes site permanently for Subnautica room HOT 1
- Bug: In Starcraft 2, loading a save or restarting a mission crashes the game HOT 5
- Bug: Can no longer create an empty Archipelago game player yaml file for spectating, ect. HOT 5
- Bug: LTTP crashes/room data corruption with allow_collect
- Bug: OOT entrance shuffle checks if the game is beatable before setting its completion_condition
- Bug: MultiWorld.can_beat_game with no arguments initially checks if the wrong state is beatable HOT 2
- Bug: WebHost: TextChoice and FreeText Add buttons on advanced option pages do not work
- OOT: Retroarch Support? HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from archipelago.