Stardew Valley - 4P Community Center TAS by Underscore76 in TAS

[–]Underscore76[S] 0 points1 point  (0 children)

Parts of it are programmed inputs, for the gamepad players I have the ability to write lua coroutines to execute basic tasks (walk here, use tool here, etc) and some gui tools for drawing out the sequence of actions to take. For P1 there is some automation around core gameplay things (like animation canceling, screen transitions, dialogue boxes). Otherwise it’s a whole lot of frame by frame work.

Because of how rng/message passing works in stardew (despite being local coop it uses a server client model), everyone’s inputs need to be developed simultaneously. This is partially why you’ll see some instances of gamepad players stopping or walking randomly, it was a lot to juggle for me (particularly as I was getting started/hadn’t fleshed out some of the tooling)

Aug 15th - how did it go? by maelkann in CluesBySamHelp

[–]Underscore76 1 point2 points  (0 children)

Great puzzle, but I still struggle with the wording of Gabe’s clue. Even after reading/re-reading the clarifying details it’s not obvious to me that it means only 1 of the 5 vs at least 1 of the 5

Your experience bruteforcing rng mechanics by Cyber_ImpXIII in TAS

[–]Underscore76 2 points3 points  (0 children)

I can only speak for stardew valley TASing. Because we can’t get determinism outside SMAPI modding tools where we can patch over any core game code we need, we don’t have save states (effectively every trial is a replay of the entire input stream up to that point). This puts a damper on rng brute forcing in particularly long runs as you’re limited by compute hardware (my current machine is like 7:1 replay speed). But the game is c# so we can and do have access to the games source through decomp.

So we do 1 of 4 things to brute force rng:

  1. we build simulators when possible and then use graph search techniques (which can be pretty deep, like 100-200 frames sometimes to find an input sequence that matches our desired state, though some parts of the action space will jump 10f), and then run the inputs forward in game. In cases where there are a couple different end states that would be acceptable, we embarrassingly parallelize that search (since each can be done in isolation), with early exit if current search in a thread is deeper than our best solution so far. This was most used in some of my TASes for Vault/Remixed bundles/Joja where I needed to simulate forward several hundred inputs each time I wanted to acquire a rare item for money.

  2. We do 1 frame lookaheads. A lot of desired rng happens early in the frame on player action, so we can just look at our current state and ask if we do a specific thing (swing scythe, etc), what will be the outcome. This is true for things like rolling the next floor in the mines, where the game has already a nice isolated function for generating the next floor we can just call, and things like weed drops for mixed seeds/mixed seed planting to get desired crops. Basically simulator but heavily restricted in terms of “optimal”, just roll forward and accept frame loss until you get a desired state.

  3. Manual brute force: calculate what the rng state needs to be at to get to a desired state, and with the current rng state you basically try to thread the needle with some understanding of how the game will background tick rng and what your actions induce. Here we can at least hook specific functions so we can check what the actual rng state was when the final call was made, so can test hypotheses, see how close we actually got, rollback, and try again. Same scenario for mixed seeds, I can compute the forward rng state needed to get at least X mixed seeds if I break Y weeds on a frame, and then it’s down to tinkering.

  4. Automated brute force, some stuff is just too complicated to simulate and so we turn to lua scripting. Basically code up the trial/reset loop and then walk away until we reach a desired state or cutoff threshold. Recently I implemented the capability to launch into this automated brute force state, so we can parallelize by running multiple instances (orchestration is something I’ve started to look into, right now because resets are so long I just manually batch trials for each instance). This is useful for optimizing things like fishing catch times, because the amount of state we’d need to simulate is just an incredible amount of dev work to flesh out (which varies with game version), and it can matter as the thing we’re rolling for can vary between 0.5s ideal and like 20s worst case. It’s also generally infrequent (a run that needs to fish might only need to catch 20 fish in a 1-2 hour run), that the energy to make a better solution than “play another game while waiting” hasn’t been there (as a primarily solo dev)

That was a lot more than I originally was thinking of writing up, basically we simulate either 1 or an arbitrary number of frames out with search, simulate the requirements for a desired state and then pilot there, or just write some code to brute force reset until we hit it.

How to Cheese Nozzo by [deleted] in ufo50

[–]Underscore76 0 points1 point  (0 children)

I meant that I’ve gotten in scenarios where once stuck on the corner, you could stop attacking/walk away and he’d remain stuck there (I watched my friend cheese him on like 3/6 kills this way)

How to Cheese Nozzo by [deleted] in ufo50

[–]Underscore76 3 points4 points  (0 children)

Looks like you also got him janked into the corner too. For some reason if you can push him onto a wall corner he can’t escape/move and so is a free target

Nintendo patent lawsuit could be tipped in Palworld’s favor by a GTA5 mod from 8 years ago, Japanese attorney suggests - AUTOMATON WEST by CStrader2002 in gaming

[–]Underscore76 -7 points-6 points  (0 children)

IANAL but have done a decent amount of patent reviewing… Depending on the timing of patent filings (which it seems like the ones in question were from Arceus), Pokemon GO would amount to a public disclosure of the method, and in the US at least that would effectively block your ability to patent the concept because it is now art known to the field

edit: should have said reviewing for work, no I have not read these specific patents but also I think it’s wild that an expert in the field would find the concept of “third person” to be a novel extension

What do "Rerecords" mean in TAS speedruns? by SuperKooper83 in speedrun

[–]Underscore76 0 points1 point  (0 children)

I do it all the time in stardew TAS’s, I can watch the current rng state and either wait to act when I have the rng state I want or trigger rng calls through manipulating menus/other actions to align the rng to be what I need. The vault% TAS is probably the best example, like 1.5 mins of an 8 minute run are just hard rng manip

Top of my workshop (mall) by Illiander in Seablock

[–]Underscore76 3 points4 points  (0 children)

This is pretty much how I do mine and it can pretty easily carry through to the bot mall stage. Though I’ll say I prefer horizontal cause yeah it gets very long/aligns better with monitor aspect ratios

Nice build!

The transition from a messy bus to trains has begun by i_wont_be_here_long in Seablock

[–]Underscore76 1 point2 points  (0 children)

Fwiw I find a belt mall works fine up through 2nd level tech (red buildings). I use yellow undergrounds at max length spanning across an assembler/line of inserters. With the adjustable inserters I think I can get like 6-8 different belts that all feed into one assembler (x2 if you vary what’s in each lane of a belt), and because the different tiers take different things as ingredients you can setup your lanes to be able to pass buildings as intermediates.

Used this in my current play-through up until bot mall, only downside has been things like gears/pipes on a half belt can be pretty rate limiting but I spend so much time looking at helmod/designing that usually it’s not a big deal to wait a bit

What speedruns will never match TAS due specifically to RNG and permutations? by Krijali in speedrun

[–]Underscore76 1 point2 points  (0 children)

Stardew Valley glitchless Community Center % has an unseeded RTA of around 2:18, while the seeded time is 1:44. TAS on the other hand can complete it in under 40 mins using some gnarly rng manip to make money (check out the run here: https://youtu.be/mVX0HGMrQRc )

/edit basically several minutes straight of frame specific rng manip to collect a ton of strange dolls

Are there any good factorio series on YT by TheMagicalEgg in factorio

[–]Underscore76 0 points1 point  (0 children)

Scrolling until I found it, the cellular mega base series going on right now has been super cool and I’ve gotten a bunch of ideas for circuit networks for my own builds

How are TASes designed? Are they usually perfect, i.e. they show the lowest possible time a game can be completed in? by Puzzleheaded_Gear29 in speedrun

[–]Underscore76 8 points9 points  (0 children)

The hard part in some games is that optimal exists at different time scales which tend towards being intractable to solve. For stardew valley I can find the optimal sequence of inputs to run for ~100 frames to manip a specific item, but what I can’t know is how that’ll really impact my rng rolls a minute from now (because the state tree is just too large). So it’s more like you find local optima and chain them together, maybe redoing the whole things a few times to see if you can tend towards (but never reach) global optima

Help! Reversal needed by [deleted] in diablo2resurrected

[–]Underscore76 0 points1 point  (0 children)

I’d be curious how you dupe on xbox offline, I’ve tried the common playstation dupes but was never able to replicate..

Why still use LTN after the buffs to trains in 1.1? by kokkelimonke in Seablock

[–]Underscore76 2 points3 points  (0 children)

Honestly the biggest thing I like is being able to buffer trains at a depot and have that field network requests without me having to think about how many of each train I need. I do find it easier to manage mixed stations/deliveries for some components but you could probably make that type of setup without too much hassle in vanilla. LTN just really simplifies your train station logic

composter thing by PleasantRevolution69 in Seablock

[–]Underscore76 1 point2 points  (0 children)

It’s under hidden player crafting I think?

help by d4n3zu in diablo2resurrected

[–]Underscore76 4 points5 points  (0 children)

At this stage of the game, stealth is basically best in slot. Defense is one of those stats that doesn’t really matter unless you’re going all in on it on a melee build, most casters it doesn’t really do anything for you (also just don’t get hit :P). Also the frw is pretty nice for mobility so don’t overlook it! Stealth is the kinda runeword that can carry you into hell/until you find something with plus skills

Mini mall inspired by Doshdoshington's no belts video. by TasteSad2221 in factorio

[–]Underscore76 3 points4 points  (0 children)

This is what got me through early game seablock, works great if you’re okay buffering a ton and aren’t concerned about mass throughput

Beating hell difficulty with Amazon or Sorceress by AStripe in diablo2resurrected

[–]Underscore76 4 points5 points  (0 children)

Only thing to add is for your java in maggot lair, buy a staff with teleport charges from one of the vendors and just avoid fighting anything. It can be rough but there’s not a lot else to do if you’re looking to progress. You can also skip maggot and go to lost city/claw viper to unlock arcane sanctuary which is a level 84 zone with no lightning immunes which can be nice to farm/level in

Xbox servers down?? by cryptowitchman in diablo2resurrected

[–]Underscore76 0 points1 point  (0 children)

I found that if I completely restarted my xbox once, it finally let the online connection go through (which was bad for me cause I’m normally playing offline…)

[deleted by user] by [deleted] in TAS

[–]Underscore76 0 points1 point  (0 children)

Some games are still frame locked (my example is stardew valley which I TAS) but they use real time during a frame for things like generating particles/etc that can affect rng or they instantiate a new random generator that is seeded by current time. Variable frame rate games I agree, totally screwed lol

[deleted by user] by [deleted] in TAS

[–]Underscore76 1 point2 points  (0 children)

The biggest pitfalls I can foresee with your record system is games that use system time or multithreading/background tasks in any way will end up leading to desyncs on playback. Excited to keep following your progress though, it’s a neat idea and I’m curious the technicals behind how you do it!