Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Structure, Velocity, Fail Gracefully #1

Merged
merged 13 commits into from
Nov 26, 2017
Merged

Conversation

exsilium
Copy link

@exsilium exsilium commented Nov 19, 2017

Hi! I really enjoyed your original writeup. A well written piece that I really connected with. I love Zelda, but I don't have much time to put in the grind.. or simply, I'm bad at it. 😄

With awe of admiration I checked out the lengths you had gone to get the in game currency 💎 and the time you had put into documenting the feat - that reminded me that gone are the good ol' days, when it was just about punching in some secret key combination to rule the sandbox. But I digress, in any case, I had to try this out myself!

Breath of the Wild is a masterpiece and one thing I wished your original post would have touched upon is the world's physics. Due to the dynamic weather and rag doll physics that has been built into the game, the throws can't be repeated with 100% accuracy indefinitely. Changes to the weather as well as small timing differences that the controller introduces will mean that there are times when Link will fail to throw a perfect strike. If that happens, the current automation gets broken.

This pull request contains the following improvements:

  1. Lufa is added as a submodule
  2. The command and delay is structured, so it's easier to play around with the command steps
  3. The waiting (nothing) times have been optimised
  4. We skip dialogue printing in most cases
  5. The original throw is altered slightly to add more velocity to the throw: more speed = more collateral damage 🚀
  6. @RuneMasterGaming came up with the idea that It's actually possible to handle two flows within the same action loop. This will make the flow fully automatic, even in scenarios where Link fails to throw a perfect strike.

Only thing to fear now is The Blood Moon arrival, which will break the cycle 🌕 But even then, there is a high chance that Link will eventually recover and keep snow bowling forever!

💎 💎 💎 ~12 000 rupees/hour

exsilium and others added 12 commits October 29, 2017 20:48
- Trim of nothing ~ 3 seconds
- Pass on first chance ~ half a second
- For certain text dialogs, we press B to skip ahead faster
- Brings the button and timing together for easier optimization
- Hopefully a bit better one?
This throwing position has a higher success rate from my testing and link can restart the bowling game on his own if he doesn't get a strike.
Alternative (Better?) throwing. Fully automatic cycle (handles non-strike throws)
- I'm using atmega32u4 (Teensy 2.0), setting as default
- Consume lufa from the added submodule location
- On Teensy 2.0 (atmega32u4), the previous throw is showing better success rate.
- Modifications also to walking back instructions on failed throw
- Second throw is not optimised, it just throws
- Additional reward waiting had to be added which adds padding to the normal strike flow
- Current rupees generation rate: ~11500 rupees/hour
- Optimize the reward waiting time
- ~15 seconds intermission on strike (safe could be as low as 5 seconds)
- ~4.5 seconds intermission on non-strike (cutting it close)
- Performance: ~12000 rupees/hour
@gen212
Copy link

gen212 commented Nov 20, 2017

Thank you so much for this. I have tested this for a few hours and it runs very efficiently. I was using RuneMasterGaming's that worked pretty well, but had some issues with failing if a strike was not obtained on the first try.

I haven't had any major issues with this one and it's working like a champ. Again, thank you, bertrandom and RuneMasterGaming for all your genius work on this.

@bertrandom
Copy link
Owner

Wow! Thanks so much for this patch. I'll try to test it out this weekend and if everything works I'll merge it in.

@exsilium exsilium force-pushed the master branch 3 times, most recently from 60d4299 to 095def1 Compare November 21, 2017 20:46
- This file had tabs, let's keep them
@bertrandom
Copy link
Owner

Thanks for doing this! I ran it for a few days and it works great, didn't get stuck once.

@bertrandom bertrandom merged commit 692f062 into bertrandom:master Nov 26, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants