https://archipelago.gg
It's an item randomizer framework. You can play solo, or with multiple games that aren't even necessarily Pokemon. So R207 Dawn could give my Fire Rod for A Link to the Past, for example, instead of Dowsing Machine, and instead of giving you an item it just sends that out to me. Someone may need to send me Parcel to give to Barry... etc etc.
AP has changed how I play my favorite games completely and I think it would be really sick to implement here.
Here's a playlist with a bunch of runs: https://www.youtube.com/playlist?list=PLFfCl8cCZEdDFlfsf2oIPOU8w1mzAJzXf
Something I want to say right away is that the main AP Discord server is very (imo overly) strict on copyright and not drawing Nintendo's ire, so they explicitly ban Switch games, as well as most fangames and mods since they use assets from other games. I don't think this should stop us since AP itself is MIT-licensed https://github.com/ArchipelagoMW/Archipelago and we can just not be in the Discord server, but it might be worth considering anyway so that's why I mention it.
I'm willing to write the AP client part, never done it before but willing to learn. The hurdles I know of:
- Figuring out how to connect the AP client to the game, and detect when locations are checked (overworld/hidden items, badges obtained, etc). Randovania does the connection part already for Metroid Dread so I'll likely ask them for advice: https://github.com/randovania/randovania/blob/main/randovania/game_connection/executor/dread_executor.py#L111
- Handling the game patches - the person generating the seed may not necessarily be the one playing, and I'd rather not require the host to have a BDSP dump to generate, just to play. The Pokemon games with pret usually have a basepatch in the AP repo that they modify. Randovania patches a RomFS dump when given a spoilerfile for Dread.
- Decoupling badges from story flags and, if possible, making Sinnoh more "open" in general
- Handling arbitrary items that the player picks up (
PLAYER picked up SLOTNAME's ITEM!)
