kbuzsaki / bingosync

Collaborative bingo boards for speedrun races
https://bingosync.com
90 stars 108 forks source link

New Game/Generator Request - Zelda: Tears of the Kingdom #298

Closed McBraggins closed 5 months ago

McBraggins commented 1 year ago

A list of possible goals for a TOTK bingo board. I know it's a lot, but you have to have some variety

Obtain Master Sword Obtain the Hylian Shield Obtain the Champion’s Tunic Obtain the Well-Worn Hairband ‘Tulin of Rito Village’ Main Quest ‘Sidon of the Zora’ Main Quest ‘Yunobo of Goron City’ Main Quest ‘Riju of Gerudo Town’ Main Quest Activate 15 Lightroots Activate 14 Lightroots Activate 13 Lightroots Activate 12 Lightroots Activate 11 Lightroots Activate 10 Lightroots Activate 9 Lightroots Activate 8 Lightroots Activate 7 Lightroots Activate 6 Lightroots Activate 5 Lightroots Activate 30 Shrines Activate 25 Shrines Activate 20 Shrines Activate 19 Shrines Activate 18 Shrines Activate 17 Shrines Activate 16 Shrines Activate 15 Shrines Activate 14 Shrines Activate 13 Shrines Activate 12 Shrines Activate 11 Shrines Activate 10 Shrines Activate 9 Shrines Activate 8 Shrines Activate 7 Shrines Activate 6 Shrines Activate 5 Shrines Complete 20 Shrines Complete 19 Shrines Complete 18 Shrines Complete 17 Shrines Complete 16 Shrines Complete 15 Shrines Complete 14 Shrines Complete 13 Shrines Complete 12 Shrines Complete 11 Shrines Complete 10 Shrines Complete 9 Shrines Complete 8 Shrines Complete 7 Shrines Compete 6 Shrines Complete 5 Shrines Activate 15 Skyview Towers Activate 14 Skyview Towers Activate 13 Skyview Towers Activate 12 Skyview Towers Activate 11 Skyview Towers Activate 10 Skyview Towers Activate 9 Skyview Towers Activate 8 Skyview Towers Activate 7 Skyview Towers Activate 6 Skyview Towers Activate 5 Skyview Towers Activate 4 Skyview Towers Take a Selfie with a Lynel Take a Selfie with Hestu Take a Selfie with Beedle Take a Selfie with Tulin Take a Selfie with Sidon Take a Selfie with Yunobo Take a Selfie with Riju Give a Beetle to Beedle Complete 1 Temple Main Quest Complete 2 Temple Main Quests Complete 3 Temple Main Quests Complete 4 Temple Main Quests 3 Shrines from -Reigon- 45 Koroks 40 Koroks 35 Koroks 30 Koroks 25 Koroks 20 Koroks 15 Koroks 10 Koroks Kill 5 Like Likes Kill 4 Like Likes Kill 3 Like Likes Kill an Electric Like Like Kill a Fire Like Like Kill an Ice Like Like Kill a Lynel Kill a Gloom Lynel Kill a Obsidian Frox Kill 5 Boss Bokoblins Kill a Gleeok Discover 6 Stables ‘Impa and the Geoglyphs’ Main Quest ‘Camera in the Depths’ Main Quest Beat Ganon Upgrade the Energy Cell Twice ‘Master Kohga of the Yiga Clan’ Side Adventures Collect 5 Oil Jars Attach a Korok to a Rocket and activate it Complete 10 Buddy Koroks Complete 9 Buddy Koroks Complete 8 Buddy Koroks Complete 7 Buddy Koroks Complete 6 Buddy Koroks Complete 5 Buddy Koroks Change your Paraglider Design Get Hit by a Falling Sky Island Rock Catch a Star Fragment in the Sky Obtain the Climber’s Set Obtain Autobuild ‘Master Kohga of the Yiga Clan’ Side Adventure

BrandonEchols04 commented 1 year ago

Yea. So pretty much what we're doing here is the "EXAMPLE" sheet it just of former goals. We now need to put all the new goals (based off of those) in the "EDIT THIS SHEET" sheet. Once we all agree that we're done, I can sort it and we can put it in the NEW sheet. From there, we just add labels.

BrandonEchols04 commented 1 year ago

Just pay attention to column B on the EXAMPLE sheet. I'm pretty much writing down all the formats. Just start putting LOTS of these goals in the EDIT THIS SHEET sheet.

BrandonEchols04 commented 1 year ago

Now, anyone can start putting goals of the specified formats (on the EXAMPLE sheet) into Column A of the EDIT THIS SHEET sheet. Don't forget the goal's difficulty in column B.

Alive527 commented 1 year ago

Yeah, I've used the short/normal variants before, but it doesn't appear as they use separate lists, rather the generator works differently:

https://github.com/kbuzsaki/bingosync/blob/48753c6ccabecb67a70a1289e185ffe33cd3a11f/bingosync-app/generators/zelda_botw_long_generator.js#L1-L7

https://github.com/kbuzsaki/bingosync/blob/48753c6ccabecb67a70a1289e185ffe33cd3a11f/bingosync-app/generators/generator_bases/srl_generator_v5.js#L162-L166

i have just discovered, i am pretty sure tears of the kingdom is NOT in srlv5 but srlv8 which is WAY more complex if i am correct, and i dont know myself how it works yet, which is why it can just take the values short and long

Alive527 commented 1 year ago

Actually, I think the buckets are being used as a form of difficulty? not quite sure how the generator operates as there's a lot of magic numbers all over the place but the goals in bucket 25 definitely look like are intended to be harder than the goals in bucket 1.

also the 25 buckets dont classify difficulty exactly, i think its just common for people to put harder goals in the later buckets but isnt required. This might be to not have the possibility of many hard goals happening if they are spread out among the buckets

haylau commented 1 year ago

Yeah, I've used the short/normal variants before, but it doesn't appear as they use separate lists, rather the generator works differently: https://github.com/kbuzsaki/bingosync/blob/48753c6ccabecb67a70a1289e185ffe33cd3a11f/bingosync-app/generators/zelda_botw_long_generator.js#L1-L7

https://github.com/kbuzsaki/bingosync/blob/48753c6ccabecb67a70a1289e185ffe33cd3a11f/bingosync-app/generators/generator_bases/srl_generator_v5.js#L162-L166

i have just discovered, i am pretty sure tears of the kingdom is NOT in srlv5 but srlv8 which is WAY more complex if i am correct, and i dont know myself how it works yet, which is why it can just take the values short and long

hmm I made the assumption it was using v5 since it was using the v5 generator.

Actually, I think the buckets are being used as a form of difficulty? not quite sure how the generator operates as there's a lot of magic numbers all over the place but the goals in bucket 25 definitely look like are intended to be harder than the goals in bucket 1.

also the 25 buckets dont classify difficulty exactly, i think its just common for people to put harder goals in the later buckets but isnt required. This might be to not have the possibility of many hard goals happening if they are spread out among the buckets

Noted. The plan currently is to sort by difficulty for that exact reason: to not have the possibility of many hard goals happening, but was under impression that that's how the short and long variants worked?

We're finalizing the list right now if you want to look at it. https://docs.google.com/spreadsheets/d/1kZFM9KOi9AFq0gtx8ulqifrKaPHCNqdjNh9le56qxis/edit?pli=1#gid=420452587

haylau commented 1 year ago

i have just discovered, i am pretty sure tears of the kingdom is NOT in srlv5 but srlv8 which is WAY more complex if i am correct, and i dont know myself how it works yet, which is why it can just take the values short and long

It doesn't look like the BotW list uses the extra tags that v8 says it does: https://github.com/kbuzsaki/bingosync/wiki/Generator-Bases-Documentation https://github.com/kbuzsaki/bingosync/blob/48753c6ccabecb67a70a1289e185ffe33cd3a11f/bingosync-app/generators/goal_lists/zelda_botw_english.js

BrandonEchols04 commented 1 year ago

@haylau I'm back! Is there a problem?

BrandonEchols04 commented 1 year ago

@haylau Please explain to me what's wrong.

kbuzsaki commented 1 year ago

SRL v8 is backwards compatible with goal lists that were made for v5, it just changes how the generator handles synergy overload and adds some extra logic that was used for OoT short bingo like child-only goals.

For bingosync goal lists it's not necessary to provide all three of short, normal, and long if you don't want them, it's fine to just provide one :)

I haven't been following along with this thread too closely, but I'm happy to put up whatever goal list y'all agree on, as long as it is in the correct json or javascript format. Please don't send me a spreadsheet, the generator code can't handle those :)

BrandonEchols04 commented 1 year ago

@kbuzsaki We're working on making a list in slrv5 format, with increasing difficulty throughout the 25 "buckets." We want to have short, normal, and long varients of the game. I'm not exactly sure how this is going to be implemented (I'm not a programming genius), but I want to make sure that having a list in slrv5 format will be able to be converted into short, normal, and long goal lists. Is this how it's going to work or do we need to format it differently, or with respective lists for short, normal, and long?

Edit: You can look at the list we're working on here: https://docs.google.com/spreadsheets/d/1kZFM9KOi9AFq0gtx8ulqifrKaPHCNqdjNh9le56qxis/edit#gid=420452587&range=A:B

We're then going to sort this by column B (the "difficulty") and then use the conversion tool that @haylau made to convert it to slrv5 format.

haylau commented 1 year ago

For bingosync goal lists it's not necessary to provide all three of short, normal, and long if you don't want them, it's fine to just provide one :)

Are they intended to be separate lists? BotW offers short/normal/long boards but only uses one list? The code's a bit difficult to follow haha.

BrandonEchols04 commented 1 year ago

@haylau Yea, I gave it an attempt and it makes no sense... We should be able to still get the short/normal/long from the one list right? (I hope we don't have to separate the list again...)

haylau commented 1 year ago

If it's necessary to generate three lists, since we'll have goals organized by difficulty, we can just map a subset of those goals for the short and long ones, but if it does require separate lists than I'm not quite sure how BotW has separate goal sets.

BrandonEchols04 commented 1 year ago

@haylau Before we continue on the spreadsheet, maybe we should figure out how/if we would be able to generate the short/normal/long varients from the one list... I'm sure @kbuzsaki would have a few ideas.

BrandonEchols04 commented 1 year ago

@haylau I've looked at all the code (at least I think), and the only thing that's added to bingosync-app/generators/zelda_botw_short_generator.js compared to the normal one is the following code:

bingoGenerator = function(goals, opts) { opts.mode = "short"; return _bingoGenerator(goals, opts); };

I'm not sure exactly what this means, but the long one just replaces the above "short" with "long." I'm not exactly a programming genius, but I have no idea how it can call just the short goals with the above code. In the goal lists file for botw, there's nothing relating to difficulty or varients... Am I missing something here?

haylau commented 1 year ago

it seems that it passes the board card mode to the generator which is used for a difficulty function https://github.com/kbuzsaki/bingosync/blob/48753c6ccabecb67a70a1289e185ffe33cd3a11f/bingosync-app/generators/generator_bases/srl_generator_v5.js#L161-L168, but i've no clue why it's used.

BrandonEchols04 commented 1 year ago

@haylau Ok... Hmmm. Can we pretty much just use the exact same code from the BotW board, but just replace the lists with our own lists? I feel like that wouldn't be too hard.

haylau commented 1 year ago

That was my plan 🤷. If we need to make separate short/long lists, it'll be much easier once we have the normal one finished.

BrandonEchols04 commented 1 year ago

@haylau Ok. We'll work on that tomorrow.

haylau commented 1 year ago

@kbuzsaki Will having too many goals be a problem?

BrandonEchols04 commented 1 year ago

@kbuzsaki @haylau We're planning on having ~3000 in the end.

haylau commented 1 year ago

My guess is 2300 :)

BrandonEchols04 commented 1 year ago

Yea, that's probably more realistic.

haylau commented 1 year ago

My guess is 2300 :)

I was off by 26!

BrandonEchols04 commented 1 year ago

@haylau Nice job! That was fast. Is it actually implemented yet? I don't see it on the website yet... Does it take some time to update?

McBraggins commented 1 year ago

@BrandonEcholsMusic @haylau @Alive527 @akumar282 @kbuzsaki Thank you all so much for the help on this. My vision was to essentially replicate the way the BOTW bingo board worked but with TOTK content instead. What y'all have done has been super helpful. And I do believe the bingo board in up on bingosync. I saw SmallAnt and Linkus7 doing a lockout with it the other day. Thank you so much for the help and if you all want to add more goals or need to fix things with the current set of goals, feel free to reach out to me. You all have been amazing. Thank you so much! -McBraggins

akumar282 commented 1 year ago

@BrandonEcholsMusic @haylau @Alive527 @akumar282 @kbuzsaki Thank you all so much for the help on this. My vision was to essentially replicate the way the BOTW bingo board worked but with TOTK content instead. What y'all have done has been super helpful. And I do believe the bingo board in up on bingosync. I saw SmallAnt and Linkus7 doing a lockout with it the other day. Thank you so much for the help and if you all want to add more goals or need to fix things with the current set of goals, feel free to reach out to me. You all have been amazing. Thank you so much!

-McBraggins

Np. The pr needs to be merged for it to show up. I think what you saw was a custom board.

McBraggins commented 1 year ago

You are probably correct with the custom board thing. If we have code for all of this that we just made, I would like to have it so I can have a custom while the main website updates. I want to run this with my friend but I do not know a lot of the code that went into this. Thanks!

BrandonEchols04 commented 1 year ago

@McBraggins No problem! I'm so excited for it to be up and running!

haylau commented 1 year ago

I think we should leave the issue open until some list gets pushed? So we don't run into another scenario of more people trying to start anew?

McBraggins commented 1 year ago

I think closing lets people know that we figured it all out and we don’t need anymore help.

haylau commented 1 year ago

I disagree. Not until the game is on the website, otherwise it'll be difficult to find the work already done on TotK and might lead to another person opening a similar issue. The current PR is set to close this issue automatically when it gets merged.

McBraggins commented 1 year ago

That’s a valid point. I have reopened the issue.