Remix CC Deep Dive/Explainer

  Рет қаралды 2,306

TheUnderscore76

TheUnderscore76

Күн бұрын

Пікірлер: 35
@amy53241
@amy53241 Жыл бұрын
it's a shame this doesn't have more views, it's fascinating and I really appreciate the effort that went into it 😊
@Underscore76
@Underscore76 Жыл бұрын
Appreciate the kind words but I think that’s always a kinda unhealthy way to look at content creation. I make niche stuff for a niche crowd, and I’m just happy to make the kinda content that I wanna see and that folks in this small circle enjoy it ❤ (also this is a 3 hour unedited vod with awful video quality lol)
@CorneliusThroatworthy
@CorneliusThroatworthy 2 ай бұрын
just a wonderful and fascinating watch! ^_^ thanks for uploading the VOD for us youtube plebs
@Nightstick24
@Nightstick24 Жыл бұрын
Wow, what a tremendous amount of effort this run and explanation must've taken! But this was ridiculously interesting and entertaining, I've never seen a TAS speedrun in anything before, but your explanation here was incredible, I loved hearing about what decisions you made, alternatives to what you chose and their pros and cons, and why you ultimately ended up making the choices you did. Thanks for this! And wow, you really weren't joking when you said reseting was a nightmare, that was interesting, but the sounds were horrifying.
@agargamer6759
@agargamer6759 Жыл бұрын
I love the perfectionism in TAS runs and the amount of thought that goes into saving every frame possible. Really cool to see the thought process behind such a run!
@misstheground
@misstheground Жыл бұрын
Thank you for posting the VOD! 😀
@flinty8121
@flinty8121 Жыл бұрын
Thank you for this Sir. I know I had a lot of questions, and I'm going to enjoy seeing you answer some/most/all of them.
@flinty8121
@flinty8121 Жыл бұрын
What I will add before I resume watching.... is that I know (or at least I think I know) this run is only limited by your own imagination on what is plausible or possible as an idea pathway.
@Underscore76
@Underscore76 Жыл бұрын
TASing in stardew is definitely still in the early days of knowing what’s possible and it’s been pretty exciting to explore those murky boundaries 🙂
@flinty8121
@flinty8121 Жыл бұрын
@@Underscore76 most of my questions were fishing related. Seems the answers are summed up as: 1) you avoided perfect to save time; 2) you got perfect as it was needed the fish quality; 3) you just wanted the run to be finalised and stopped being so exact with routing 😂 Not that it matters, but you mention ancient seeds as being slow due to museum turn in time, but aren’t they also readily available from the cart? (maybe it only unlocks after the museum turn in). Another useful thought for Engineers Bundle, is that the Battery Pack is a reward from the Children’s Bundle.
@Underscore76
@Underscore76 Жыл бұрын
@@flinty8121 I don’t think I had keyed on the battery pack from the children’s bundle 🤔 I would need to do some review on how much I really need the minecarts unlocked on Summer5 if I were to go that route (or if I can get the bat cave full by the 5th vs having the extra season, though I won’t have the final backpack by then to collect most stuff so maybe 2 trips) I don’t really know how hard getting the 5 refined quartz would be without grabbing a furnace 🤷‍♂️ And I knew the fruit wasn’t available in the cart but didn’t realize the seeds were! I still don’t really like routing for the cart explicitly, so on this seed at least I’d have had to wait until winter17 year 1 to get the seed (so like an extra 40+ days of sleeping?) maybe a different seed would play out better..
@EthanM_
@EthanM_ Жыл бұрын
I really enjoyed this review. Super cool TAS
@АнонимАнонимыч-ы8в
@АнонимАнонимыч-ы8в Жыл бұрын
How to make a tool for TAS? How does this works?
@АнонимАнонимыч-ы8в
@АнонимАнонимыч-ы8в Жыл бұрын
I just want to make a Perfection% TAS, because nobody did it
@Underscore76
@Underscore76 Жыл бұрын
I’d recommend a smaller run to start to get a feel for things but the TAS tools exist as a SMAPI mod here: github.com/Underscore76/SDVTASMod
@АнонимАнонимыч-ы8в
@АнонимАнонимыч-ы8в Жыл бұрын
@@Underscore76 Thank you) how about doll farming?
@peedirah5435
@peedirah5435 Жыл бұрын
Hey, love your contenttt, can you do a tas day 1 clay farming,to see how much u earn in one day. Set seed so that u can get a lot of forages and high energy food from trash cans. It would be a dope one
@Underscore76
@Underscore76 Жыл бұрын
It’s been discussed is all I’ll say for now lol there are a couple of tech things that need to get resolved first to make it easier to run
@peedirah5435
@peedirah5435 Жыл бұрын
@@Underscore76 ah I see, would love to see that happen. Could be a banger
@TheMegaxPlus
@TheMegaxPlus Жыл бұрын
Do you have a list of the changes made to the core engine to make the TAS tool? I would love to patch it into my game and play with RNG manipulation and savestates. But otherwise, very cool tool you have there! Reminds me of Unity games' TAS tool.
@Underscore76
@Underscore76 Жыл бұрын
So this is probably too detailed of a topic for a a yt reply lol but here's the top level stuff: 1) ensure that your game state generation/initialization is separate from your window generation/initialization of your sound system/other vital systems (SDV has this natively as of like 1.4? Prior it didn't which was way more of a hassle because I had to do it), as at least most frameworks don't want you to nuke those between resets/have an issue regenerating a window. 2) wrap your update/draw calls with a check to ensure they should run (in my case that includes both counters to sync update and draw calls so they are forced to happen 1:1 regardless of lag/potential of dropped frames, as well as the actual logic of my TAS controller), and have some code that should run after the update/draw calls regardless of whether the base functions ran or not (this is for updating TAS specific logic/overlays/etc). Stardew is frame locked/doesn't have any kind of variable timing per frame so it's much easier to deal with in terms of syncing. 3) If your random drawing induces RNG calls, it might be better to render your base game into a texture, and then render that texture to the screen so you can re-use it on frames where the game isn't updating (and so you can draw on top of it again if you're updating stuff) 4) Wrap your input handler to be able to mark whether it should return real inputs or your TAS specific inputs, and then pulling mouse/keyboard events in game should swap between those two depending on the state of that flag (you'll want to make it simple to have access to the real input state for your tas tools as well). 5) you'll want to ensure randoms are always seeded so that they can be regenerated. Note that depending on language/framework the way your unseeded random gets computed will vary (in early versions of .NET it's based on DateTime, I think that's changed in newer versions, also random number generators might just change entirely in language specs over time...). I ended up subclassing C#s randoms and updating all instances in the game to use that version, and overriding all the Next/NextDouble/etc so that I could track number of calls and breakpoint where rng was called for debugging desyncs. 6) If you use actual time of day (DateTime in C#) in modifying game state, you might want to override calls to a modified versions that is based on the number of frames run in your TAS 7) I use a simple class to encapsulate the keyboard/mouse inputs/current global random states that are assigned to each frame (which I serialize out to json so I can easily inspect/modify). You don't in theory need the rng states in your frame data but it's super useful for debugging rng consistency. Newtonsoft.JSON in C# is great for it, you can obviously come up with whatever file format suits you 8) I found my actual TASing ability improved dramatically when I integrated a Lua interpreter into the engine. I use NLua in C# and that's been pretty nice for binding things. For some stuff that I wanted to expose C# into Lua I found it a bit cumbersome so I ended up using a package called DynamicExpresso in C# to allow me to evaluate raw strings as C#, evaluate them, and return the results, so Lua can dynamically reference any of my types/inspect arbitrary parts of the game state. I also have a bunch of reflection helpers to streamline getting fields out of types (including dynamic casting) so that I didn't have to modify private/public access 9) MonoGame specific, if music duration matters at all to your RNG, you need to find a way to patch XactHelper to lock the random that it uses (if you have multiple tracks for a specific song name, it'll randomly select between them leading to a desync) After those things, a lot of it is just the logic of how you want to interact with your tas tools. I bind specific keys to do things like reset/allow the game to advance one or many frames/etc when I'm just normally playing, and I wrote the custom console so that I could be a bit more programmatic in playing around. I think a lot of my initial inspiration on the console was a jonathan blow vid from a few years ago where he was working through building one. That was a ton, I'd be happy to chat more if you wanna hit me up on discord!
@TheMegaxPlus
@TheMegaxPlus Жыл бұрын
@@Underscore76 oops, I think my reply got sent to the void. This is quite the explanation, thank you so much! I am not well versed in engine-level programming but I'll like to learn more :]
@TheMegaxPlus
@TheMegaxPlus Жыл бұрын
@@Underscore76 Ah also, I did mean to say to use my Stardew Valley installation (sorry about that! I was being too ambiguous) but you got me interested into getting a global MonoGame TAS implementation for either mine or other projects, to then develop plugins to fit the game's needs.
@Underscore76
@Underscore76 Жыл бұрын
@@TheMegaxPlus I wasn't sure if you meant just in general or for SDV in particular :P for Stardew I've actually been working on a SMAPI mod that has the basic framework all sorted (right now no bells and whistles, just frame consistency and reloading). I'm hoping to release an alpha here this upcoming weekend and I can ping when it's live (it covers basically all the patches you'd need to do)
@Underscore76
@Underscore76 Жыл бұрын
this upcoming weekend took a bit longer than I expected but github.com/Underscore76/SDVTASMod has the basics down, very little of the bells and whistles are in place but this can give some guidance on the things that need to be patched in your own build
@bluie639
@bluie639 Жыл бұрын
Let's go
@newbeeishereis1129
@newbeeishereis1129 Жыл бұрын
Day 1 of asking for a 1 million gold TAS speedrun
@Underscore76
@Underscore76 Жыл бұрын
17 minutes of straight doll farming interspersed with sleeping/walking to the mines? Yikes lol
@newbeeishereis1129
@newbeeishereis1129 Жыл бұрын
@@Underscore76 yes.
@demonicmerma1d22
@demonicmerma1d22 Жыл бұрын
​@TheUnderscore76 you could actually fit it in 1 day, the theoretical limit is somewhere around 2.5mill iirc
@Underscore76
@Underscore76 Жыл бұрын
@@demonicmerma1d22 that’s even worse! Giving way too much thought to it, I think you’d struggle for energy (figure you need 4k ene cause at 1k dolls you just need to toggle till/untill), though I guess a good crop fairy and 3 giants could get you there 😵
@demonicmerma1d22
@demonicmerma1d22 Жыл бұрын
@@Underscore76 135-136 cave carrots, just automate it alongside manipping dolls
This. Is. The. Remix. (Stardew CC TAS, uncommentated)
44:50
TheUnderscore76
Рет қаралды 16 М.
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН
Cordite's Chore Challenge TAS
29:40
TheUnderscore76
Рет қаралды 1,4 М.
Stardew Valley - CC% TAS in 1:26:26
1:27:23
TheUnderscore76
Рет қаралды 261 М.
Joja% TAS in 20:48.819
21:27
TheUnderscore76
Рет қаралды 6 М.
Casual Junimo Kart Run (TAS)
43:00
TheUnderscore76
Рет қаралды 3,4 М.
KSP: Flying through a GAS GIANT with a Space Station!
37:37
Matt Lowne
Рет қаралды 32 М.
Testing GMODISM's Gimle against my Longest and Strongest ship
32:24
That Hitmann
Рет қаралды 3,8 М.
Stardew Valley - Vault % TAS in 7:32.281 [Unedited/Uncommented]
8:55
TheUnderscore76
Рет қаралды 1,4 М.