I only got this so I wasn't sending out loads of anon asks and I figured I should probably do something or other with it but I don't know what yet.
Don't wanna be here? Send us removal request.
Text
When I was asleep, I dreamed about a popular tumblr post that went something like this: I’m incredibly jealous of fishes why? It’s because icebergs are a thing for them
As a human you will never get to witness a gigantic mythical ice creature descending from the heavens It’s so awesome it can only happen in fiction But for antarctic fishes, it’s just like “yep” “that’s wednesdays for ya”
They don’t know how good they have it! If I saw a Leviathan Frost Dragon manifest in the skies I’d pass out from excitement And yet these fuckers are just jaded to such happenings. This has been your annual repost from the best of Dreamworld Tumblr, enjoy. Oh, also the research session on the dream internet turned up the fact that dream icebergs are all shrouded in a miniature storm system with spectacular lightning and snow. And also that, off the coast of Brazil, some of these iceberg mini-storms have become self-sustaining even though the iceberg has melted, and they bring immense fertility to the seas below, by churning up the nutrients, so a whole bunch of fish follow them around to feed on the plankton bloom. Sadly, they’re hazardous to visit if you’re a fisherman. This is because the storm is so warm and full of nutrients that it snows mold. The legendary mold-storms of Brazil, responsible for their vast fishing exports.
48 notes
·
View notes
Text
The A-Button Challenge: Past the Pole 0x Blueprint
Reposting the context, because the other post might get separated in reblogging with most people too lazy to click the link: I’ve been lurking on the A-Button Challenge discord, and as a result, can speak fairly authoritatively about the currently extant plans to save one or more A-button presses, taking the number of A-presses to get all 120 stars in Super Mario 64 down from 19 to 14. These 5 planned saves can be divided into two chunks. There’s the two “Bully Battery” saves (detailed in the other post), and the three “Past Pole 0x” saves (in this post). The Past-pole plan is to eliminate three of the four A-presses inside Tick Tock Clock (the treadmill jump ones) and has fully come together mostly within the past year. It is fair to describe both of these two plans as the most complex plans ever assembled in any TAS of any game, though the Past-pole plan is complex in different ways than the Bowser in the Fire Sea (BitFS) plan from the last post. The BitFS plan must be painstakingly assembled from the end backwards with a large assortment of bruteforcing tools and optimizers, while the past-pole plan has large chunks doable by a human TASer, with some very notable exceptions. The BitFS plan, if all goes well, takes ten minutes or less, while past-the-pole takes hours. The BitFS plan is relatively easy to understand in a handwavy way, with the true insanity showing up when you drill down into the final few seconds of the maneuver on a frame-by-frame level. The past-the-pole plan has more of its complexity spread out in the overall outline of “what are we doing and why”, with many more steps. The BitFS plan has the pivotal piece figured out, and large initial chunks missing, while the past-the-pole plan is almost completely assembled except for the pivotal piece. The BitFS plan relies on abusing bully physics and parallel universe travel, to charge up unlimited energy, blast off at relativistic speed into the multiverse, and return. The past-pole plan relies on abusing Mario’s item-holding mechanics and the random number generator, to teleport objects about the level as needed while warping fate to pull off trillions-to-one improbabilities. A complete explanation past the break.
This is going to take a appalling amount of setup to explain. I recommend grabbing a nice snack and settling in, maybe bookmarking this for later, it’ll be a while. First, an in-depth explanation of cloning, HOLPs, HOLP preservation, and limbo storage. Second, a rough description of how the plan works and what obstacles it’s dodging. Third, a detailed analysis of the Tick Tock Clock course as a whole, to see why it’s way harder than it initially looks to save 3 A-presses with the plan. Fourth, a more detailed analysis of the plan and its many steps and the glitches that go into it, and the extra crap that must be done to squeeze extra A-saves out of this. Fifth, a closer look at the key most-difficult piece of the whole puzzle. Prerequisite Glitch Knowledge To understand this, it requires understanding the physics of how Mario holds, throws, and drops items. There’s four key families of glitches which recur over and over in this plan. Specifically, they’re about how to clone items (including extremely unusual ones), how to remotely transport items to where you want, how to keep the game from noticing that you’re doing that, and how to store the items for a later time. 1: Cloning. If you manage to grab a bobomb the instant it explodes, you will be holding onto, not a bobomb, but an empty item slot. The game will search amongst nearby objects in the level to figure out what goes in the empty item slot, letting you replicate, hold, and throw normally impossible objects like coins, fire, explosions, and particle spawners. These items will have unusual properties when you throw them, such as being frozen in time, and only capable of interacting with you once. So, as an example, a thrown fire will never burn out, and you can only be burned by it once. 2: HOLPs. This requires a digression into how the game handles Mario holding and throwing objects. The game stores a coordinate called the HOLP (held object’s last position), the last spot the game saw Mario holding an item. When Mario grabs and yeets an item, it is yeeted not from Mario, but from the HOLP, which is the last place the game saw Mario holding something. Which is usually right in front of Mario, making everything look normal. But there’s a curious thing. If you throw an item, the HOLP (last position of the held object) remains where you threw the item from! You can walk away and it won’t follow you. Now, the moment you pick up another item to do things with, the game will realize you’re holding an object and set the HOLP back in front of you where it should be, restoring normality. But if, hypothetically, there was a way to have the game not realize that Mario was holding something... Then throwing the object would throw it from the HOLP, which is set at the last place the game realized Mario was holding an object, ie, far away. And this lets you remotely throw stuff to any place you’ve previously visited and thrown stuff at! Specifically, there’s three key aspects of this. Throwing an item throws it from the HOLP (which is maybe far away from you). Dropping an item drops it at the HOLP coordinates but at Mario’s elevation (again, maybe far away from you). And it’s possible to set the HOLP in a different level entirely, go to a new level, and remotely throw something from the preset coordinates! This is called a preset HOLP. So, if I say “preset HOLP”, you know that means “set the coordinates in another stage, so you can start off your new stage strong by remotely throwing crap to the preset coordinates” 3: HOLP Preservation. Remember how I said that the HOLP was set at the last spot the game saw Mario holding an item? I meant “saw” extremely literally. It’s tied to rendering! This opens up 4 key glitches used in this plan to remotely transport items about the level without the game seeing you do it. From least useful to most useful, they are: Invisible Object Cloning (IOC). You’re carrying an empty item slot around to clone things. Sadly, pesky visible objects load into the empty slot, making the game notice you’re holding something, and ruining the HOLP. Don’t you just hate it when that happens? But instead, you could start off by loading an invisible object into the empty item slot. Now, since you’re holding an invisible object, the game doesn’t see you holding anything! (because it’s invisible, silly) Just stroll on over to where you need to go for further cloning shenanigans, the HOLP is undisturbed. Pause-Buffered Hitstun (PBH). When Mario gets hurt, he flashes, being invisible every other frame. When the game is paused, Mario is invisible the first frame you pause. So, if Mario gets hurt, and then keeps pausing 15 times a second while flashing in pain, Mario turns invisible. This lets Mario do things without the game seeing him do it, preserving the HOLP. Instant Release (IR). Mario dive-grabs into an item and bonks instantly afterwards, dropping the item. As Mario has grabbed and dropped an item on the same frame, the game didn’t see him do it (Mario’s too fast), so the HOLP doesn’t update. Blatant Camera Abuse (BCA). Mario walks off-camera. Now that Mario is offscreen, he can break the laws of physics with impunity, grabbing and throwing items as he pleases without the HOLP updating. 4: Limbo Storage. The game doesn’t like paying attention to things far away from Mario. So, if you remotely throw an item to a distant HOLP... the item won’t do anything, time won’t flow, the game isn’t paying attention to what happens there. But then, when you draw near, the game will go “oh shit, I totally forgot about this, one moment plz” and events will resume, and the item will be thrown from the HOLP as it should have been. There’s a variant of this which is a key part of the strategy. If a bobomb is dropped out of bounds, then as soon as the game notices this (because you got close enough to it), it will go “oh fuck, this should not be out of bounds, where do I put this...” and place the bobomb directly in front of Mario. Just get close enough to an bobomb stored in out-of-bounds limbo, and wham, the bobomb suddently teleports right in your face. The Plan (Rough) Alright, part 2, explaining the plan and why it works, in rough detail. To understand why the plan is what it is, we must first look at the obstacles. Tick Tock Clock is a very vertical stage, seemingly requiring many jumps. At one point, there’s a pole, which requires an A-button press to dismount. And getting off the elevator just before the pole, requires an A-button press to do. And getting to the elevator from the cage just before that requires a bobomb, which normally doesn’t exist this high up in the level unless you use the HOLP to import a bobomb. (just remotely throw the bobomb at the bottom of the level to the preset HOLP far above, climb high enough to activate the thrown bobomb out of limbo, and have the bobomb drop out of the heavens directly onto your face). Oh right, and getting to the cage in the first place requires another A-button press to go from a treadmill to the cog staircase leading to the cage. That’s 3 A-presses and one preset HOLP seemingly required to make it past the pole on the normal route. One A-press to go from the treadmill up to the cage, use the preset HOLP to bring a bobomb to you in order to go from cage to elevator, use a second A-press to go from elevator to pole, and a third A-press to go from the pole to past-the-pole. treadmill--(A)-->cage--(HOLP)-->elevator--(A)-->pole--(A)-->past pole There’s mitigating factors, though. A-presses 1 and 2 can be saved by a Star Dance Clip (SDC). Basically, when Mario collects a star, he does a funny little dance, which boosts him up in height a bit. A star spawns when 100 coins are collected. So, you can just clone a coin to put it where you need, make that the 100th coin you collect, and then you hit the star that spawns right afterwards, doing a funny little dance and getting some extra height! Enough to save an A-press. Problem. “getting 100 coins” is something you can only do once, so you can eliminate either A-press 1 or 2, pick one and only one. treadmill--(SDC)-->cage--(HOLP)-->elevator--(A)-->pole--(A)-->past pole Also you could use a preset HOLP (setting HOLP coordinates in another stage and then entering the clock so you can start off your plan by remotely throwing something where you want) to put something that hurts you at the top of the pole! Just climb the pole, and get knocked off the tip! But that means you can’t bring the bobomb up with you and you need to spend another A-press to get around that. treadmill--(SDC)-->cage--(A)-->elevator--(A)-->pole--(HOLP)-->past pole What does the standard 1 A-press route look like? Well, at the treadmill, you can build great speed, and jump once, leaping all the way past the pole in a single bound. treadmill--(SDC)-->cage-------------------(A)------------------------->past pole And yet, this new plan promises to get past the pole with no jumps! How is it possible? Well, roughly, the blueprint looks like treadmill--(S)-->cage--(S)-->elevator--(SDC)-->pole--(HOLP)-->past pole Where S is for Shenanigans. Set the HOLP at the pole, remotely transport something up to the pole to forcibly knock you off it later, make your way up to the elevator using Shenanigans, set the HOLP at the elevator so you can transport the stuff you need for the Star Dance Clip, remotely transport that stuff up to the elevator, do Shenanigans again to get back to the elevator, do the Star Dance to get a bit of extra height and make it onto the pole platform, climb the pole, and get knocked off by the thingy you transported up there at the start. You are now past the pole in 0 A presses. In more detail: 1: Set the HOLP (last spot the game saw Mario hold something) in a different level, with the coordinates set on top of the pole, and enter Tick Tock Clock. 2: Use the invisibility glitches I was talking about earlier to clone an explosion and remotely throw it to the top of the pole. 3: Quantum tunnel through a wall seam (ie, use floating point rounding errors to walk through walls) to set the HOLP out of bounds by the treadmill. 4: Go off-camera and drop a bobomb at the out-of-bounds HOLP, so now it will teleport right up in your face if you get anywhere nearby. 5: Problem, the “activation sphere” where the bobomb will teleport to you (it’s stored out of bounds and will now warp to you if you get close) is pretty big, so you’ve got less room to work with now. Use loads of random number manipulation to have a pendulum give you a lift all the way up to the cage, as that’s the only way to ascend that isn’t blocked by the activation sphere (waaaaay harder than it sounds) 6: Do a crazy maneuver where you dive off the cage into the edge of the activation sphere. The bobomb teleports to you, and in one frame, you grab and instantly release it while diving through the air. This sends the bobomb back to the out of bounds HOLP, but at a slightly higher elevation since dropping an object sets it to the HOLP coordinates, but Mario’s elevation. Mario falls out of the activation sphere in the very next frame, so the bobomb can’t go back to him again and remains in limbo. 7: Repeat steps 5 and 6 over and over again, to raise the limbo-stored bobomb higher and higher. Do step 5 one last time so you’re by the cage. 8: The bobomb you have stored out of bounds is high enough that you should just be able to walk over a little bit and pluck it out of thin air, like a rabbit from a hat! (you got too close and it’s in limbo so it teleports to you) 9: Use the bobomb to get to the elevator like usual, floating in the air. Now, you’re carrying an object, aren’t you? Discard the bobomb at the top of the elevator to set the HOLP there. 10: Drop down and use invisibility glitch shenanigans to clone a coin and some fire and remotely throw them to the top of the elevator. Everything’s set up for the Star Dance Clip now. 11: Repeat steps 3-9 to get back up to the elevator in the same way again. You did it once, you can do it again. 12: Remember the setup for this in step 10? Collect coin 100 while getting burned by fire (for extra vertical oomph) to Star Dance Clip off the elevator so you don’t have to jump. 13: Climb the pole and get knocked off it by the explosion you remotely set there in step 2. Now you’re done!! Well, actually, it’s more complicated than that, but this is a good understanding of it. Integrated Stage Analysis (or, why this plan is lame without extra work) Tick Tock Clock is kind of a weird stage because you can’t treat anything about it in isolation. There are three times you visit it and have to get past the pole, so that should save three A-presses, right? NO. Here’s the deal. It takes an A-press to jump into Tick Tock Clock each time you want to enter the level anew. (bad) There are three Tick Tock Clock stars where, right as you finish the level, you can do a glitch called Spawning Displacement to exit the level in such a way that you don’t need to jump back to get in the stage. The other three stars force you to exit in such a way that you need to jump to get back in. Collecting some of the stars with minimum A-presses requires a preset HOLP. You have to be in another level to set this up, so anything like this must be scheduled for right after entering the clock. There are two stars like this. So, it’s a bit of an interesting routing problem. You want to enter the stage a minimum number of times. The stars which require a preset HOLP have to be done right after entering. Some stars let you keep playing the stage afterwards. Others force you to leave the stage. So, an example plan for the 6 stages would go: enter(A)->Get a Hand(HOLP)->Red Coins->Roll Into the Cage enter(A)->Pit and Pendulum(A)->Timed Jumps on Moving Bars(A) enter(A)->Stomp on the Thwomp(2xA, HOLP) Get a Hand and Stomp on the Thwomp require a preset HOLP, so they must come right after entering. Get a Hand, Red Coins, and Pit&Pendulum are the three where you can reenter the level without having to jump to get back in. The other three force you to leave. There’s 3 entry A-presses, and 4 A-presses in the levels, for 7 total. This is the current state of the art. The past-the-pole plan does save an A press, but it takes a preset HOLP to do so. So, we can shave off an A-press like so: enter(A)->Get a Hand(HOLP)->Red Coins->Pit and Pendulum(A)->Roll Into the Cage enter(A)->Timed Jumps on Moving Bars(HOLP) enter(A)->Stomp on the Thwomp(2xA, HOLP) 3 entries, 3 A presses in-level, 6 in total. But trying to clean up Pit and Pendulum as well runs into two big problems. The first big problem is that, if you look in detail at P&P, it’s one A-press to jump off the treadmill, and then the spawning displacement trick to reenter afterwards requires the A-button to be held down. Revenge of the half-A press. Now, the half-A-press can usually leech off the previous one, so you just need to press A once when doing things normally, and keep it held down for a bit. But the “past the pole 0x” trick requires that A not be held down. So, yeah, you got past the pole. But at some point A must go from being not-held-down, to held-down, in order to keep the “don’t need to worry about reentry” A-press saved. Bam, a new A press ruins your day. Second problem: Let’s say the reentry problem wasn’t a thing, that you could do it in 0 A presses instead of 0.5. Well, then you have a problem of four stages requiring a preset HOLP (GaH, TJoMB, SotT, P&P), and you’ve only got three reentries from the outside to go around. Again, you either need to figure out how do one of the stages without a preset HOLP, or accept that you incur an extra A-press to enter the stage from having to do your work in four trips instead of three. The planned solution to this is absolutely fucking brilliant. Just rethink fundamental assumptions. Who said we have to leave the stage in order to set the HOLP? If we could set one of the HOLPS from inside Tick Tock Clock, we wouldn’t need to leave the stage to set it up, and everything could be done in 3 trips instead of 4. Sadly, Get a Hand has to come at the start of a session, even if its HOLP gets saved, because its 0.5x A press must leech off of a clock entry A press. Nope. Stomp on the Thwomp? Nope, that HOLP is waaaay too high up to set internally. What about the other two? Sadly, they’re the two pole HOLPs, and the whole point of the 0x pole plan is that you can’t get past the pole from below. But... Wait a minute... once you do the 0x pole plan... you’re past the pole. Ie, you’re high enough to SET THE HOLP AT THE POLE TO ENABLE ROUND TWO. This isn’t easy. You have to do a much fancier version of the past-the-pole plan to get it to work. Basically, when you go up to the elevator for the second time, you have to juggle two out-of-bounds bobombs up instead of one. This makes it so that when you get past the pole, there’s still one bobomb left over in limbo storage. Just walk over, and poof, it spontaneously manifests in Mario’s face. Throw it at the top of the pole, and you’ve internally set the HOLP. So, if Pit-and-Pendulum reentry can be done 0x instead of 0.5x, and a fancier version of the 0x pole plan can be made that leaves you with one extra bobomb in limbo storage, you can do: enter(A)->Get a Hand(HOLP)->Red Coins->Roll Into the Cage enter(A)->Pit and Pendulum(HOLP)->Timed Jumps on Moving Bars(HOLP) enter(A)->Stomp on the Thwomp(2xA, HOLP) 3 entries, 2 internal A presses, 5 total. Can we do better? Well, there’s one last thing to take care of. Stomp on the Thwomp requires the HOLP to be set really high for the 2xA plan. It requires a HOLP at the pole for the 0xA past-pole plan. We can only set one. So this requires somehow figuring out how to complete everything past the pole in 1 A press, without the old HOLP that let us do that. But, since we’ve got a fancier version of the past-pole plan worked out now, there is an all-new option of warping in 1 free bobomb to do shenanigans with. For a final score of: enter(A)->Get a Hand(HOLP)->Red Coins->Roll Into the Cage enter(A)->Pit and Pendulum(HOLP)->Timed Jumps on Moving Bars(HOLP) enter(A)->Stomp on the Thwomp(1xA, HOLP) 3 entries, 1 internal A press, 4 total. So, yeah, I basically presented vanilla past-the-pole, but to use it to its full potential, we’re also going to need to solve Pit and Pendulum 0xA reentry, fancy past-the-pole (with an extra bobomb available afterwards), and Stomp on the Thwomp with no HOLP and 1 extra bobomb. The Fancy Plan Actually, the simple plan has most of this already. The question is just, what needs to be modified to do the stuff we need? Step 11. It used to be “just copy earlier steps to get up”. But if we want a bobomb available past the pole, we need to store a second bobomb out of bounds too, adding more difficulty to it. The extra part is: Set up 3 explosion clones. Do Step 3 again. Run into the explosions, hurting Mario, to do the Pause Buffered Hitstun trick (with invisibility) to clone an invisible bonk particle spawner, now you can ascend the wall with your invisible item, and wander down by the cubes. Go off-camera, clone a bobomb, and release it so it’s at the treadmill HOLP at Mario’s current elevation. You’re very short on space now, so use sick RNG manipulation skills to force the pendulum to give you a ride up to the clock hand (exceptionally improbable). Then, at the clock hand, have it rotate counterclockwise (also highly improbable!) to arrive near the pusher bar area. Then just repeat steps 4-9 (as the simple plan mandates) with less space available. Woo yay we get past the pole from there, and then it’s time for the star-specific tricks! The plan forks into three directions for if you’re going for Timed Jumps on Moving Bars (B), Pit and Pendulum (P), or Stomp on the Thwomp (T). Step 14B: Get the heave-ho to flip you up to the next level, do pendulum RNG manipulation, ride the pendulum up to the moving bars, do squish cancel tricks to climb the moving bars, and get the star. The completely standard and vanilla ending to Timed Jumps on Moving Bars. Step 14P: Walk over, having the extra out-of-bounds bobomb stored in step 11 teleport to you. Grab it and throw it at the top of the pole to set the HOLP there for later use. Do even more pendulum RNG manipulation, to ride the pendulum over, and do a floating-point precise wall punch (instead of wall kick, which sends you further, but takes a half-A-press) to collect the Pit and Pendulum star, while bouncing off in a way that has its trajectory adjusted by the pendulum to barely land in the spot where you can do spawning displacement to save the customary entry A press. Unbelievably precise, but Pannenkoek did it. Step 14T: Manipulate the nearby have-ho in the tiny region of spare space you still have (out of the bobomb activation sphere) to flip you up to the next level, and do a bunch of pendulum RNG manipulation. Step 15T: Drop down to the pendulum, ride it over to the activation sphere of the bobomb, and have the bobomb return from limbo. Then, it... kinda gets stuck in the ceiling? So this lets you float in midair to a very special spot called the Pendulum Box Pedro Spot, that used to require using the HOLP to get into. You have to do it quite fast or else the bobomb explodes in your face. There’s a simplified version of this step that doesn’t require raising the second bobomb so much, which makes things a lot easier down below. Sadly, it relies on a glitch called the supersaturated bobomb, where the bobomb’s detonation timer overflows to the negatives so then it just doesn’t explode. This glitch takes 3 years for the overflow to happen. Everyone was horrified by taking 3 years to save an A press and wanted to go for faster, riskier methods. Step 16T: Complete Stomp on the Thwomp in the ordinary customary way. Do lots of RNG manipulation, get the pendulum to push you into the Pedro Spot, build speed, launch out with the push of the A button, punch your way to the edge to conserve vertical speed, you automatically launch vertically with great speed up to the clock hand in the perfect spot, it goes counterclockwise (improbable), and you fall off it one more time with vertical speed conserved to launch up on top of the Thwomp and finish the level. How’s the plan coming along? Well, almost all parts have actually been done in practice, on youtube! This includes the additional pieces to save extra A presses! The only missing parts are: 1: That step about riding the pendulum up from the walkway to the little island by the cage. The key part of the whole strategy. 2: I’m sketched out by the bobomb positioning needed for Stomp on the Thwomp 1x, it leaves very little room to maneuver and mandates doing the hardest version of pendulum riding (the hardest part of the whole strategy) to stay in the acceptable zone. There might be issues here. 3: Step 15T, about plucking the bobomb out of thin air near the pendulums, and using it to walk through the air to the Pendulum Box Pedro Spot, hasn’t been done. It’s been done with a hacked bobomb that’s had its fuse disabled (to simulate supersaturated bobomb), but doing it in practice with an actual bobomb with a fuse is still a missing piece. Probably doable. Squish Cancel Ground-Pound Chaining, or: Welcome to RNG Hell. The one big piece that’s missing is a piece done over and over again in the run. “Manipulate RNG to get the pendulum to lift you from the walkway to the island by the cage”. Basically, when Mario groundpounds, he rises up in the air a little bit. If he’s squished in this time, and the squish is canceled, he snaps out of the groundpound. A sufficiently quickly rotating pendulum is capable of doing this occasionally. So, it is theoretically possible to get an insanely good dice roll, and groundpound over and over, having it canceled each time, and gaining more and more height. and then, at the tip of the Pendulum’s tangibility radius, but still too low for Mario to reach the ledge... The sheer vertical ledge is very very slightly not vertical, down at the level of floating point rounding errors. So it is conceivable that the lower half of Mario’s body is touching the “vertical” ledge, but the upper half isn’t, being a micrometer away (a literal micrometer, in this case). “lower half of Mario touching wall, upper half not touching” is the signal to the game to look for a ledge for Mario to grab. It’s a bit too high, but that’s ok, the game sends Mario up there anyways. And he’s up! So, yeah, you’ve gotta chain like two dozen squish cancel ground pounds, one after another, with the probability dropping exponentially each time, and end up in a micrometer-precise spot to have a ledge grab glitch happen to send Mario up to the necessary spot. This is, to put it extremely mildly, hard. Existing brute forcers have pulled this off from the clock hand, not the walkway. Doing that only requires about a dozen squish cancel ground pounds chained into a micrometer-precise spot. Much much easier, because fucking exponents. Currently, a brute-forcer is being worked on for an alternate approach where the pendulum first shoves Mario into the ceiling (it is very hard to do this). But then Mario in the ceiling doesn’t fall down at all, so he can chillax out of bounds and take his time ascending, calling upon no great improbabilities to do so, until he gets to a good spot to do the squish cancel groundpound chain the rest of the way (Mario is high up then, so it’s quite feasible). This replaces “being on the bad side of exponentially decreasing odds” with “figure out how to get shoved into the ceiling, do that first”, which is clearly a much easier problem. And this is like, the one key missing piece to the whole strategy! It should take about an hour or more of RNG manipulation initially, and then mere minutes each time the step must be repeated, but that’s pretty doable.
12 notes
·
View notes
Text
The A-button Challenge: The Bully Battery Plan
So, I’ve been lurking on the A-Button Challenge discord (check previous post), and as a result, can speak fairly authoritatively about the currently extant plans to save one or more A-button presses, taking the number of A-presses to get all 120 stars in Super Mario 64 down from 19 to 14. These 5 planned saves can be neatly divided into two chunks. There’s the two “Bully Battery” saves, and the three “Past Pole 0x” saves. It is fair to describe both of these two plans as the most complex plans ever assembled in any TAS of any game, 3 years in the making for the Bully Battery one that I’ll be describing. If you’re curious, no, a 0xA 120-star run is definitely not happening. Maybe the A-press count could drop to, like, 10 eventually, if you apply a slightly unreasonable amount of optimism to the prospects of the 14 A-presses without plans. But A 0xA 70-star run (a standard completion of Super Mario 64, in 0 A presses) is only blocked by one single A-press left that hasn’t been saved yet. And it’s one of the five with plans. That one goddamn pole in Bowser in the Fire Sea (BitFS from now on)
So, I should mention that this one has sorta kinda has been saved. There’s an oscillating platform below the pole, and for the port of SM64 to the Wii, there’s a rounding error bug that wasn’t present on the original game, which means that the error in that platform position keeps accumulating. So, if you wait for three days, the platform eventually floats high enough to make it past the pole in 0 A presses. Problem 1: The Wii version of SM64 lacks a glitch present on the original Japanese version that lets you save 3 Japan-exclusive A presses, and so a solution that works on that version must be found. Problem 2: When watching a TAS of Super Mario 64 completed in 0 A presses, the gaming populace want to watch arcane wizard Mario push the game to its limits. They want to behold the adventures of a plumber capable of extraordinary feats of black magic glitchery, and perfected inhuman movement, but who skipped too many leg days so he won’t be jumping. They do not want to watch a “”“speed”””-run where there’s an hour and a half of Mario doing exactly that, and then 3 days of Mario lazing about waiting for rounding error to accumulate. This is because it would suck ass. So, a better way must be found, to get Mario further up in the level, past the pole. Said better way relies on three key pieces of information. Number 1: When Mario is on a tilting or rotating platform, the tilt or rotation is applied for one extra frame. If Mario is going stupidly fast so that on that extra frame Mario is very far away from the platform, then... applying the rotation matrix to a Mario very far away from the origin results in Mario moving a whole heck of a lot. Possibly up? That would get Mario past the pole. Number 2: BitFS has a tilty rotaty 3d platform that’s complicated enough that the developers rolled their own code for it. And as a result, they slightly fucked up their rotation matrix. Said platform almost always displaces Mario down instead of up, when he tries doing the aforementioned speedy rotation trick. Key word, almost. At certain extreme tilt ranges, the fucked up rotation matrix is capable of tilting a speedy Mario up, as desired. Number 3: BitFS has bullies. They are an enemy that bumps you. The game physics for this is very nearly an elastic collision simulator. But perfectly elastic collisions didn’t look aesthetically pleasing enough, so the programmers changed it a bit to make the impacts aesthetic. That change violates conservation of energy. And you know what that means! You can CHARGE UP UNLIMITED ENERGY. So, the basic plan is to charge up a large thermonuclear bomb worth of energy in the bully, use that to yeet Mario at 10% of lightspeed from the tilty platform, and then the small rotation matrix error is amplified by Mario being 1000 kilometers away in the next 1/30th of a second, giving Mario sufficient height. Then Mario just has to navigate through the Parallel Universe Grid at low-relativistic speed to land back in the main universe and kick Bowser’s ass. Princess Peach doesn’t appreciate how good she has it. Isn’t this just so much better than waiting around for 3 days? This is extremely far from easy, though. The strategy was beset by seemingly fatal problems from the start, and only Tyler Kehne had the ambition to see it through to viability. Problem 1: How do you trap a bully? You need to hold it in place, somehow, while still having the game register it as traveling at high speed, in order to accumulate energy. Problem 2: If you’ve got your bully trapped, then each time Mario hits it, only adds a constant amount of energy each impact, so to get a thermonuclear bomb’s worth of energy stored up, it’s going to take a unreasonable fuckload of time. Problem 3: The bully-trapping spot isn’t at the weird tilty platform. Once the bully is charged, you need to move it from the bully trap, to the tilty platform. It’s got relativistic speed, though, which is incompatible with “gently move the thing”. Problem 4: When the bully is going fast and hits Mario, Mario’s vast speed is entirely eliminated on the very next frame by bonking against thin air since he’s moving way too damn fast. You can’t get the energy out of the bully in a useable way. Problem 5: The platform can only displace you upwards at very extreme tilts that are hard to achieve in practice. Also, you can get around Problem 4 with a trick called squish canceling, but that requires you be under the platform. Every instant you’re off the platform, it’ll adjust back to normal, and this will very rapidly eliminate the rare sensitive upwards-displacement angle you need. So basically, going off the platform to get the speed from the bully, means that you unavoidably fuck up the platform angle. Problem 6: Charting a return route through parallel universes at low-relativistic speeds, traveling further than the diameter of the earth.... Is kinda hard. Especially because of your 1/30th of a second movement granularity, and angle granularity. And double-especially if you know what the deal is with parallel universe movement, and why it might be difficult to chart the proper return path when you’re traveling thousands of PU’s each frame, at weird diagonal angles. Solution time! Problem 1... yeah, there’s bully traps. There are different sorts of traps for different speeds, I don’t really understand it that much. Gotta dig deep into bully physics there. But it’s definitely doable. Problem 2 and 4: The Slow Bully Battery (SBB) builds energy a constant amount each iteration. Mario repeatedly whacks a stationary bully. But there’s another thing, the Fast Bully Battery (FBB), where, basically... the high-speed bully hits Mario, and on the same frame Mario gets squished by a ceiling, canceling the bonk, and then the squish itself gets canceled the next frame after that, so Mario retains the energy, and if Mario can then hit the bully again without slowing down in the meantime, it transfers the energy back to the bully at a 2.5x or 3x speed multiplier! Doubling or tripling the speed every single iteration can get you up to relativistic speeds exponentially faster than adding constant energy each iteration. It’s hard as shit to do, though. Problem 3: When a bully’s position on the next frame is out of bounds, it will reflect off out-of-bounds, changing direction, and gravity is not applied for that frame and the next. This means that when a bully is going fast enough that, on every frame or every other frame, it’s reflecting off of out-of-bounds, it’ll just... stay floating in air, gravity doesn’t apply. Also, there’s a very strong tendency for the bully movement to end up in semistable attractor states at these speeds, where it reflects off of parallel universes in a simple repeating pattern. This is called Hover Speed. Bully movement simplifies drastically at this stage, it’s quite easy to control, you don’t have to worry about gravity, you don’t have to worry about trapping, you can get it to where you want it to go, you can even do FBB iterations easily. It initiates at around Mach 7. Problem 5: This whole raft of shit is called the Final Speed Transfer problem. Or the FST for short. It’s the hardest part of the whole thing. I’ll be detailing the solution insanity later, but I can’t believe it’s been solved. Problem 6: Yeah, that’s a rough one. Get a computer to do it instead of doing it by hand? And so, roughly, the blueprint for the overall plan looks like this: Step 1: Get the bully to the appropriate location. Easy. (starting phase, <1 minute). Step 2: Trap it and start doing slow bully batteries to the appropriate speed needed. In the best case, it might be only a few minutes. In the worst possible case, it’ll be a full 24 hours. There’s a difficult sequence of steps to hit the bully with lots of speed to make this part go way faster, but noody’s figured out how to do it yet. (SBB phase, 1 minute best case, 24 hours worst case) Step 3: Do the first few fast bully battery iterations, doubling or tripling the speed each time, until hover speed is reached. Use bully traps, raising glitches, and overall cleverness here, to deal with the gigantic fucking headache of thousand-mph billiards with gravity and friction and slightly fucked up physics where you have to do extremely difficult glitches and never lose the ball. Expected to be an absolute nightmare and hard as shit. (Initial FBB phase, <5 minutes?) Step 4: Now that you’re at hover speed, you are afforded a much greater degree of bully control and further fast bully battery iterations are quite doable, doubling or tripling the speed each time to quickly raise the bully from mach 7 to relativistic speeds, and send it off to where it needs to be. (Hover Boosting Phase, <2 minutes) Step 5: Go on the platform and get the energy out of the bully while not fucking up the platform rotation angle in the process using UNFATHOMABLY COMPLICATED BULLSHIT WORKAROUNDS, then blast off to the Parallel Universes at 0.1 c. “The most complicated two seconds in any speedrun of any game”. (Final Speed Transfer, <10 seconds) Step 6: Return from the Mario multiverse at low-relativistic speeds. Get your computer to help you out on this one, this is not for humans. Apparently there’s a glitch called 1-frame crouchsliding that’s very handy here? I don’t understand it. (PU Return, ~1 second) So, how’s the team doing on this magnificent plan? Well... the problem needs to be worked in reverse. Bruteforcers must be coded for many steps in this process, and the overall problem needs a strategy of, like, finding initial conditions that get step N to work out, and making those initial conditions the optimization target that step N-1 is trying to hit, and working backwards. Not many people have the Mario knowledge and the coding knowledge at the same time. But it’s progressing slowly. So, here’s the deal with the steps, since we’re working backwards. Step 6, the PU return has had the brute-forcers coded up for it already, and it’s.. suprisingly doable! Lots of solutions, a nice rich solution space to work with, it’s basically solved. Step 5, the Final Speed Transfer... Tyler has solved it. I didn’t believe it. The explanation about how it works required, like, 15 steps, all in two seconds, and an appalling amount of glitches and subtle movement mechanics. Sadly, the solution required hitting three high-speed bullies instead of one (two of the impacts were to get across the platform in time before the tilt angle got fucked up). The plan was to find a firing solution where one high-speed bully would zip around the parallel universes in a chaotic pattern, doing relativistic ricochets off of the voids between them, to be in the main universe at the three exact right spots at the three exact right times with the three exact right velocity vectors. But as it turns out, this is an incredibly hard problem to solve, and they gave up after several months with nothing to show for it. But then, a breakthrough in the last two months! As it turns out, one of the bruteforcers revealed that there was a 1x6 cm sweetspot on the platform where Mario could stay on it at immense speeds to tilt the platform back into the right angle range, without rotation matrix fuckery declaring “oops, Mario is technically off the platform now, time to tilt it back to useless angles”. Everything works. And this means that two of the three bully collisions for the final speed transfer can be eliminated! They’re only there to get Mario across the platform fast enough, but if you can tilt the platform back to the right angle with the sweetspot, you don’t have to worry about “gotta go fast to not screw up the angles too badly while I’m off doing other things”. And so, with one bully collision needed post-breakthrough, the problem shifts from “have the bully zip around the multiverse to be in these three spots at the right times with the right velocities” to “have the bully be in this spot at this time, with this velocity”. much more doable! So we can move on to Step 4, the Hover Boosting Phase! Step 4, the Hover Boosting Phase. There’s a proof-of-concept for a single FBB iteration, the movement scripting tools are being worked on, and this part will probably go smoothly. Step 3, the Initial FBB Phase. This is expected to be absolute bullshit. It’s the hardest part besides the Final Speed Transfer. Nobody has any idea how long it’ll take to do this, as this phase hasn’t been engaged with that much. I expect at least three separate instances of a seemingly-fatal problem with this stage being defeated by a brilliant solution pulled out of Tyler Kehne’s ass. Roughly, the problem is figuring out how to do Fast Bully Batteries at all when hover speed isn’t drastically simplifying the problem for you. The worst case scenario is that this stage is impossible, and it’ll take a full 24 hours of Slow Bully Battery to charge the bully up to mach 7, to proceed with the plan. However, since Fast Bully Battery doubles or triples speed each time, and Slow Bully Battery adds constant energy each time, the last few iterations of FBB save most of the time. If only the last instance of Fast Bully Battery gets solved, that cuts the Slow Bully Battery time from 24 hours down to 4 hours. Two FBB instances being solved mean 35 minutes on battery duty, and three and four drop the slow battery time to 6 and 1 minutes, respectively. Step 2, the SBB Phase. Going to take some scripting work to have it flow nicely into the rest of the plan, especially if thousands of iterations are required because Step 3 went poorly, but expected to not be too much of an issue if Step 3 doesn’t completely fail. And Step 1 should be trivial if all else is done. So, that’s where we’re at. PU Return is solved, the Final Speed Transfer has had a big simplifying breakthrough and we’re just waiting on the scripting and bruteforcer tools to whip up a demonstration, FBB iterations past hover speed are expected to be easy when we get there, the first few FBB iterations are expected to be hard as shit and take ??? time, and things should be easily solvable from there. Oh right, one last thing. Presenting the absolute insanity that is the Final Speed Transfer blueprint. The simplified version, post-breakthrough, which still qualifies as the most complex 2 seconds in TASing. Most of the following is floating-point precise (ie, micrometer-precise if translated to real-world terms) Mario runs in arcs on the platform to build up speed (to get off the platform fast when needed), and get the platform tilted appropriately. Mario does a few pause-buffered dive recovers to haul ass across the platform and get there a few frames faster. Also, since Mario is within 4 cm of the platform when he does this, the platform will go “ah, Mario is on me, time to tilt” and we need all the tilting we can get. Mario lands with the control stick in neutral to instantly stop in place, as Mario is going too fast now, and the instant deceleration saves another 1/15th of a second. Mario walks very slowly for 1/30th of a second, putting him in a sub-pixel-precise spot on the platform called the NUT Spot. (Nonstatic Unit Truncation). The C-up button is pressed, to decelerate Mario, which cancels into idling, which, due to rounding errors in the platform rotational displacement, cancels into freefall off the platform. Gravity then applies to Mario, and then Mario applies direction adjustment in midair, to land back on the platform in the NUT spot, so then the platform is like “oh, Mario is on me, time to keep tilting”. All this occurred in one frame. This entire sequence of events with the NUT spot occurs 5 more times in a row, so for 1/6th of a second, Mario is having gravity continually applied to him, while being in a limbo state of being on and off the platform for the purpose of good platform tilting. Now, with Mario’s stored gravitational acceleration, he can fall off the platform fast, saving 2/15ths of a second of falling, decreasing the amount that the tilting platform tilts back to normal. The relativistic bully impacts Mario, and being below a ceiling, he can do the squish cancel speed transfer. Now, Mario can’t really move unless his next intended position is in-bounds, (it is not, currently) so the platform, in the process of tilting back to normal since Mario is off it, ends up tilting so Mario now technically counts as being on it. Mario is now in the 1x6 cm sweetspot where rotation matrix stuff doesn’t screw him over, and can just hang out there for 4/15ths of a second, as the platform continues to tilt. Then the platform tilts too far, Mario counts as off it, and then it tilts back in such a way that guess what! Mario is back on the platform again. Another 4/15ths of a second goes by, this “Mario’s off the platform and back on it” glitch happens again, and now Mario’s got... almost an entire second before the platform tilts so Mario falls off it for good. This luxuriously high amount of time, a full second and a half, is easily enough so that the platform tilt requirements are finally met, and Mario adusts his angle slightly to zip off to the parallel universes and get a good height boost. Sadly, Mario is flying forward, a sure ticket to getting stuck in an alternate universe, or crashing the game. But there’s one last glitch. The 10k glitch, so named because past 10,000 speed (around mach 9, and we’re well past that), Mario can instantaneously reverse his speed direction in a single frame. Mario redirects his relativistic speed backwards in an instant, to navigate back to the main universe with 1-frame crouchsliding. Finally touching down past the pole, in 0 A presses, the last A press to be saved in a full-game run. THIS IS THE FUCKING SIMPLIFIED VERSION OF THE STRATEGY, IT USED TO BE EVEN WORSE HOW IN THE HELL IS A PLAN LIKE THIS CREATED IS TYLER KEHNE A MORTAL MAN Oh, one last thing! Bully Battery plans also have promise to save another A-press, the one in Lethal Lava Land. Because there’s a bully there, and that means INFINITE ENERGY. That plan is much simpler. Partially because nobody’s really working on it yet, so the plan is missing a lot of details. The optimism without a concrete plan is because everyone’s like “well, there’s a bully there, and a bunch of really janky geometry and platforms to interact with, and we only need sub-sonic bully speeds because Hyperspeed Lava Boosting is a thing (and it looks incredibly cool). Fuck it, we’ll probably be able to whip something up after we get BitFS taken care of” Damn this was long.
53 notes
·
View notes
Text
The A Button Challenge and its applications
So, the latest internet rabbithole I’ve been sucked down is the A-Button Challenge. The epic quest to get all stars in Super Mario 64 in the minimum number of A button presses. Can you beat a game based around jumping without jumping? This is especially interesting because Super Mario 64, being one of the first 3d platformer games ever made, is blessed with an astounding profusion of silly glitches, while still not permitting arbitrary code execution (as far as we know). The result is.... calling it “art” is an understatement. The challenge has somehow managed to hit the optimal point between impossibility and triviality, forcing the construction of the most complicated strategies that have ever been used in any TAS (tool-assisted speedrun) of any game, ever. This isn’t just me gushing over a new special interest. “Most complicated strategy ever TAS’d in any game” is a straightforwardly accurate description of the upcoming batch of A-press saves. This is for much the same reason as the electron can be studied with a single piece of lab equipment, while making it up to the Higgs Boson requires building the LHC first. Part of me wants to infodump about said strategies (which I have recently comprehended) and how nuts they are, but for this post... Y’know how people wonder about why science is slowing down (or if it even is), and whether or not it’s because of the problems just getting harder over time? One of the interesting things about the ABC is that it provides an exceptionally tidy little sociological testing ground for observing what happens in a field where the problems are objectively getting harder in an easily quantifiable way (for once the easy A-presses are saved, only the hard ones remain) And you don’t even have to worry about any ideology corrupting your observations because no ideology gives a shit about the social dynamics of speedrunning communities! Just compare your observations to real-world patterns at the end and you’re done. Please reblog, this seems unusually likely to generate good discussion. Observations below the cut.
First observation: Since this is taking place on an accelerated timescale, the legendary researchers of yore who did mighty things and have a bunch of shit named after them (Pannenkoek2012), are still around and can be compared against the cream of the crop of the new generation where problems don’t come easy and everything must be solved by a team (Tyler Kehne, DS273). I’d say the verdict is that “legendary researchers of yore” are pretty dang good and hold up well if compared against the state of things in the modern day, but the best of the current day noticeably outperforms them. Put another way, if Euler was immortal, for comparison purposes, Terry Tao (with similar breadth of knowledge) could definitely beat him, but Euler would be a pretty solid mathematician by modern standards. Second observation: There’s sort of a lock-in effect where, back in the day, things were easy enough that it was actually feasible to fire up your TASing software and save an A-press. But nowadays, saving an A-press requires big team efforts, and probably most of the difficulty is in coding the brute-forcers necessary to search for a very tiny optimization target in a very large space, instead of manually doing the work. It seems that it’s important to have something that a noob can tractably attack, to get them involved in actual research. Even if it’s artificial, like the A-button trials, a custom-made course designed to use most of the glitches in the game in the process of beating it without the A-button. If you were entering the A-button challenge now, you’d face a tremendous difficulty cliff, instead of having all the easy and intermediate and hard A-saves to work on along the way and get the depth of knowledge needed to actually help. I now believe that “lack of an onramp for noobs to discover things and make progress themselves” can easily be a powerful enough force to kill an entire field (where “kill” means that all the top people in it date back from the days where such an onramp existed and there’s a true degradation in top talent over time instead of just people bitching about the good old days). Third observation: Why is there always just one person working on [very important thing]? Why is only Tyler Kehne working on the FST for the BitFS save? Why is only Sjmhrp working on the SCGP Chain for the TTC saves? (you don’t need to know what these are acronyms for.) Those are key bottlenecks that everything else is waiting on! Part of it is because there’s just not that many people in the community. Another part of it seems like a universal human bias. They’ve been working on it for a while, and have gotten pretty decent at it, and so, if you’re not them, you look at [important thing], and see that someone is working on it at all, and that they’re much better than you at it. Why, if you were to work on it, it would accomplish nothing, for you are strictly worse than them at the thing. (it’s also possible there might be a status thing going on here too where trying to get better at [important thing] than That One Guy Working On It is an implicit claim that you can do their Distinctive Thing better than they can) Of course, this is self-reinforcing. Nobody’s better at [important thing] than them because nobody’s trying it. It’s entirely possible that someone mediocre might be the first one to pick up [important thing], and with enough effort you could do their job better than they’re doing it. Or that [important thing] can productively have two people working on it. But the whole time you’re ranking up your ability to work on [important thing] you’ll be feeling like you’re duplicating effort and just following in the footsteps of someone who did this shit already. Fourth... well, it’s not an observation, more of an interesting note. It’s handy to ask the question “what obstacles guard this from being solved”. Some A-presses are unsolved because there’s just very very few resources in the area to work with, and those are the ones most likely to be impossible. The JRB A-press is unsolved because everyone who’s attempted it has walked away with learned helplessness from its uncanny ability to cause any plan to barely fail. The SSL A-presses are unsolved because nobody’s checked yet whether the sketchy plan for them will work or not. The TTC A-presses are unsolved because it takes ~10 different glitches in one monstrously complex plan to save them, so the strategy could not have been attempted before discovering all the glitches first. Also, the most important step in the plan is very nonobvious. And extremely improbable, so there needs to be someone good at both TASing and coding at the same time to create the optimizers needed to manipulate the RNG accordingly. The BitFS A-press is unsolved because it’s just hard as fuck. It’s only near getting solved due to the biggest talent in the community putting in 3 years of effort on that one specific problem, anyone but Tyler Kehne would have failed long ago. The LLL A-press is unsolved because it has some overlap with the BitFS A-press, which is regarded as a much more interesting problem and has sucked up all the attentional resources that would go towards the LLL A-press save. Of course, these specific answers don’t generalize too well to the real world, but the question “what is blocking this from being solved/what must a solution do differently than past failed attempts/what is the armor guarding this problem made of” is a very good question to ask for any problem. I could probably make more observations here, but it’s late and I’m sleepy and in the interests of “provide a good on-ramp for noobs” and “try not to be that One Person Occupying A Niche”, I’ll leave it as an exercise to the reader to predict interesting things that might be present or absent in such a community, PM me about it, and I can confirm or deny or elaborate on them.
600 notes
·
View notes
Text
I got nerdsniped by this. So, it seems like there’s two big possible ways to go. The first way is energy conversion, where you’re just asking “what metal would yield much energy if I made a kg of it” (and handwaving away minor issues like immediately dying if you were next to a kg of some of the spicier metals, and probably destroying the Stone, too.) The second way is going “this will be cheap, unforseen uses will be found” and then looking for the rare metal with the most useful-looking properties, to have widely available on the market. If you’re going for the first one, you can get about 40x more power if you pick something that decays by spontaneous fission, which few things do. The issue is that “fission of 1 kg of matter” is also the sort of thing that happens in nuclear weapons, and so if you, say, picked one of those superheavy elements that has a half-life of a few seconds, it’s indistinguishable from setting off a nuke right next to your precious stone. If you can spread the nuclear-weapon’s worth of energy over an hour or so, because longer half-lives, then.... yeah it’s still going to be pretty bad, that’s still detonating >5 tons of TNT per second. Very bad for keeping all the nasty stuff contained. Actually, Nobelium fulfills this, because the decay product of the most stable isotope fissions with high probability and doesn’t stick around too long. Basically, there isn’t anything that spontaneously fissions and has its half-life in a region where it would make sense to contain it. So that leaves alpha-decay compounds, or making nuclear fuel. The latter is quite controllable (in the sense of not dying immediately when you whip up the stuff) but pretty bad from a proliferation standpoint. For the former, I think the best choice might actually be Actinium-227, because it alpha-decays 5x in a row (for 5x the power), definitely won’t go critical, and with its 20 year half-life, will last for a good chunk of time cranking out a dozen kilowatts/kg without going boom right in your face (instead it cranks out gamma rays in your face, but compared to the other options, that’s pretty good) But what about going for something non-nuclear to crash the price of? Tbh, my favored metal would be either Iridium or Ruthenium. Iridium is considerably stronger than steel, even beating out tungsten, and is spectacularly resistant to chemical attack, being absolutely immune to corrosion under normal circumstances, and able to tank being heated to thousands of degrees, or high-temperature concentrated acids (or pretty much everything else) quite well. If you’ve got some extreme reaction conditions, if iridium can’t contain it, then pretty much nothing else can either. The problem is it’s really hard to form into the shapes you want. And for ruthenium, it still is stronger than steel (though not by a huge margin), has several potential applications in electronics, is fairly corrosion-resistant, and is also the key bottlenecking ingredient for a new type of low-cost solar cell (which is pink and you can also make flexible sheets of it). So, yeah, Ruthenium would probably be my pick.
suppose you discover the philosopher’s stone, allowing you to turn base metals into gold and become very very wealthy (you’re still working on getting the elixir of life FDA approved). assume, further, that there’s very few practical limitations on how much gold you can make; you could outpace the current amount of gold mined per year by multiple orders of magnitude, if you cared to work out the logistics.
Now, obviously if you did this the price of gold would collapse. you don’t care because by the time you’ve sold enough gold that it stops being profitable you’re set for life (even accounting for your new immortality), plus have enough capital to get that FDA approval, but other people do. The world’s gold mining companies come to you and say they’ll pay you a huge amount of money if you agree to sensible caps on your gold transmutation per year.
1) setting aside whether that’s good business sense, can you legally sign that contract or would that run afoul of anti-competitive agreement laws?
2) lots of people (and banks and governments) use gold as a store of value. how much financial damage would you be doing to the world by making the value of gold drop?
3) gold has industrial applications and isn’t just valuable cause it’s shiny and rare (it’s a pretty good conductor and resistant to corrosion). how much damage to the world are you doing by not making electronics cheaper to make? how many more industrial applications would gold have in a world where it’s as cheap as copper?
4) gold mining has horrible environmental consequences. how many people are you killing by not driving the mining companies immediately out of business?
[original post]
320 notes
·
View notes
Text
Post Is Review: Baba Is You
So, I have been introduced to Baba Is You. It is a puzzle game. A very very good one. Up-front warning here: For the sorts of people likely to see this review who don’t want to get sucked into video games, stay way the hell away from this one. I’ve lost a worrying amount of time to it so far, it’s basically mathematician/programmer crack. It seems closely analogous to the warnings I’ve heard about Factorio (though I haven’t played Factorio). The one major mitigating factor for it over Factorio is that there’s a bit over 200 levels, and once you crack a level, that level is over with and has minimal replay value. So, for anyone sucked into the game, your task to surmount is finite, and the game can only eat a bounded chunk of time, instead of being an open-ended sandbox like Factorio and Minecraft. This is especially important for me because I have a very strong completion instinct for games, you haven’t truly beaten a game until you’ve gotten 102% completion and all achievements, and this instinct interacts poorly with open-ended games. Now that the warning is out of the way, on to gushing about the game. Block-pushing puzzles have been done to death. The core innovation is that the fundamental rules by which the level operates are also blocks which you can push around, dismember, and reassemble. Objects only have properties if they are declared to, and if you manage to create a new rule about the properties of an object, it will have that property regardless of how nonsensical the result is. Much like computer programming. The computer does exactly what you told it to do, whether or not you intended it. So, as just a taste of what’s possible, walls are only wall-y because most levels have Wall Is Stop as a rule. If that rule is absent or you break it... the walls become purely decorative. If you had Grass Is Stop instead, then the grass would perform the role of a wall. Lava is only lava-y because many levels with lava have Lava Is Hot as a rule, along with Baba Is Melt. Break one of those and you can walk on lava with no issue. If you formed both Door is Hot and Door is Melt, all doors would self-destruct.
Touching a flag to finish the level? Well, that’s because Flag Is Win is a common rule. You can make other things win instead. Forming Baba Is Win is often an auto-win because you tautologically occupy the same space as the winning object. Also, an occasional tactic of levels is having Flag Is Win as a rule in a level with no flag and no ability to split “Is Win” off and attach it to something else. Hell, you can only interact with the game because of Baba Is You, because “Is You” is the bridge rule which binds your key inputs to the motion of an object. So, it’s somewhat hazardous to mess with Baba Is You because then the interface between your keyboard commands and the level state shuts down. However, if you’re able to set things up carefully enough, you can make other things you. Like rocks and keys and water. And also there’s wacky meta things. The best nonspoilery example is “Word”, which makes semantics count as syntax. If Rock Is Word, and [insert physical rock here] Is Push, then you can push rocks around, because the rock also counts as “Rock”. Anyways, it’s a blast. Seeing as how the game is built entirely on the feeling of the insight click when things look impossible (with a dash of implementation difficulties when trying to do complicated things), the game is extremely sensitive to spoilers, stay away from them. Especially when the temptation is strong, there are some bullshit-hard levels in this game (looking at you, Floatiest Platforms) but it feels amazing when you finally crack them. Time to give four tips for hard levels. Tip 1 is to start off a level by categorizing what rules cannot be affected (and so are permanent rule background), which words can sorta be affected (like words up against a wall where you can’t move them but you can stick stuff on them), and which words are freely movable to play as you wish with them. This helps narrow the search space for what sorts of things you can do. Tip 2 is if you can manage to state precisely why a level is impossible, you’re probably very close to a solution. Accordingly, for levels you can’t solve, it’s handy to take a break and try to crystallize why it can’t be done. You’ll probably spot some implicit assumption or alternate strategy in the process of doing this. Tip 3 is to attempt problem reductions. Which subtask, if it was magically solved, would let you solve the level from there? Focus on that. Tip 4 is that, for novel words, it’s important to quickly get a good model of how they work. I’ve seen someone else do a blind playthrough of the early game regions and one of the most frustrating things is watching someone blunder into an unexpected interaction and just wave it off instead of pausing and staring at the result until it makes sense (because then, in later levels, they don’t know that they can implement interactions that an attentive player would know are possible). Play around! Try to predict all the interactions of the new word with other stuff and notice when predictions are wrong! Stare at confusing results until they make sense! As these tips indicate, there’s some heavy overlap between puzzle solving for this game, and the task of mathematics or algorithm creation, which is why it’s so nerd-snipe-y. So, if you can afford to lose the time, I heavily recommend Baba Is You.
31 notes
·
View notes
Text
Yet Another Damn Monad Tutorial
Monads are infamous for being badly explained. The category theorist may say “A monad is just a monoid in the category of endofunctors”. The programmer may point to some code as a clear example, but lo, you do not know much of how to read Haskell code. Fortunately, I don’t like category theory and have little programming experience! So I’m perfectly qualified to explain monads. I will assume some basic mathematical competence, though. I didn’t get monads until I spent a while playing around with concrete examples, so this will be long and concrete-example-heavy. Basically, what underlying structure do probability distributions, powersets, having a “process failed” error message, and infinite lists have in common? That’s a monad. What they have in common is there’s four basic operations you can do that are analogous in all of the cases. Yes, yes, you can define some of these operations in terms of the others, but going straight for the minimalist foundations doesn’t help with learning something for the first time. Operation 1: Embedding! Let’s say you’ve got some set X, and a point x that’s in it.You can embed your point as a probability distribution. Just map x to the probability distribution that puts all its mass on x. You can embed your point as a set. Just map x to the set containing only x. You can embed your point into the space X + error (a single extra point representing that something went horribly wrong somewhere). Just map x to... itself. You can embed your point as an infinite list. Just consider the list [x,x,x,x...] Operation 2: Lifting! Let’s say you’ve got some function f, of type X->Y. You can lift f to a function Delta X -> Delta Y (takes a probability distribution over X, spits out a probability distribution over Y). Just... sample from the distribution on X, apply f to whatever point you drew to get a y, and this random process gives you a probability distribution over Y. You can lift f to a function P(X)->P(Y) (takes a subset of X, spits out a subset of Y). Just... take your subset of X, apply f to all the points in it, bam, you get a subset of Y. You can lift f to a function X+error->Y+error. Just apply f usually, and map the extra error point to the extra error point. You can lift f to a function from lists of stuff in X to lists of stuff in Y. Just apply the function to each entry in the list. Operation 3: Flattening! There’s a way to go from a probability distribution on probability distributions on X to just a probability distribution on X. Just... randomly draw a probability distribution, randomly draw a point x from whatever distribution you just picked, and... that’s a random process picking points from X. There’s a way to go from a subset of the subsets of X to just a subset of X. Union together the subsets in your family, bam, you’re done. There’s a way to go from (X+error)+error to X+error. Just map the internal and external error points to the same “an error happened” point. For lists... well, if you’ve got a list of lists, you can make a new list by going [entry 1 of list 1, entry 2 of list 2, entry 3 of list 3, entry 4 of list 4...] Operation 4: Applying! The type signature here is (Delta X) x (X->Delta Y) -> (Delta Y). Ie, if you’ve got a probability distribution on X, and a stochastic function from X to Y, can you get a probability distribution on Y? Yes. Draw a point from x, apply the stochastic function to it to randomly get a y, bam, this is a random process generating points from Y. For powerset, it’d be P(X) x (X->P(Y)) -> P(Y). Ok, we’ve got a subset of X, and a function mapping points in X to subsets of Y. Can we get a subset of Y? Yup, just apply the function to all the x’s in your set, to get a family of subsets of Y, and take the union. For error, it’d be (X+error) x (X -> Y+error) -> Y+error. If you started off with error, the output is error. If you started off with some x, try applying the function-which-might-fail, you’ll either get an error or some point in Y. For lists, it’d be L(X) x (X->L(Y)) -> L(Y). It’s a similar thing as flattening here. Using k for our function from X to lists of stuff from Y, and d for our list of stuff from X, you’d make [entry 1 of k(entry 1 of d), entry 2 of k(entry 2 of d), entry 3 of k(entry 3 of d)...] It should be kinda weird that all four of these operations, embedding, lifting, flattening, and applying, are analogous between the four cases I brought up. Well, that’s what a monad is. It’s something you can do to types/spaces/sets to make another one. Like going from X to probability distributions over X (probability monad), or subsets of X (powerset monad), or X+error (error monad), or infinite lists of stuff from X (list monad). And it can’t just be any old process, it needs to come equipped with these special functions. There’s gotta be some way to Embed your original space into the monad-y space. There’s gotta be some way to Lift functions between original spaces to be between monad-y spaces. There’s gotta be some way to Flatten two applications of the monad into just one. And there’s gotta be some nice way to Apply monad-y functions (probabilistic functions, set-valued functions, functions that might fail, list-generating functions) to a monad-y input to make a monad-y output. Now, this is a redundant presentation of the defining functions. You can define some of these functions from some other ones, and there’s also some stuff you’ve gotta check to make sure you got the functions right so they cohere nicely with each other and you didn’t just make up random crap. But the official functions that define a monad are usually pretty obvious. I’m not really sure why they’re so useful in functional programming, but they are. And that’s a monad! That general sort of pattern.
44 notes
·
View notes
Text
A: That’s for SSRI’s, Bupropion lacks the issue with abrupt discontinuation and taking a while to kick in. B: Also, if someone doesn’t know that SSRI’s take a while to kick in and withdrawal is rough, the most probable failure mode is the person not starting in the first place, I can’t imagine someone taking a month of SSRI’s consistently if it doesn’t feel like they’re doing anything without having the minimal knowledge of “yo, you have to take these for quite a while” C: I also think if someone’s going through withdrawal, they’d be much better off if they could, y’know, just pop down to their local store instead of having to deal with the local pharmacy being out of stock or making appointments for a refill. I hear that sucks. D: Isn’t “maybe you’d commit suicide because you’re less apathetic” a fully general counterargument against trying to cure depression? Like, the way I look at it, is that if someone’s the sort that would kill themselves after getting less apathetic, it’d be as easy for them to do it with a psychiatrist prescribing it to them as if the antidepressants were behind the counter, which would be about as easy as if the antidepressants were on the usual shelf. This is because people are, for >95% of their waking hours, unsupervised by whoever is handing out the substance. Sticking it behind the counter is not selectively filtering for people unlikely to commit suicide when they get less apathetic. You could just as well argue against prescribing people SSRI’s or Bupropion because their psychiatrist can’t supervise them most of the time and maybe they’d commit suicide because they’re less apathetic.
New EA cause area: Get first-line antidepressants from “prescription-only” to “on the shelf next to the ibuprofen and cough syrup”. I’m dead serious about this. This post brought to you by the typical mind fallacy going “holy shit how many people are wandering around with subclinical depression and thinking life’s just like that”
30 notes
·
View notes
Text
New EA cause area: Get first-line antidepressants from “prescription-only” to “on the shelf next to the ibuprofen and cough syrup”. I’m dead serious about this. This post brought to you by the typical mind fallacy going “holy shit how many people are wandering around with subclinical depression and thinking life’s just like that”
30 notes
·
View notes
Text
I was thinking about how in video games “temple” is basically a word for “building with lots of pillars that has loot in it” and then I was like “haha what if there was a post apocalyptic game where you just looted megachurches” and wAIT GOOD IDEA ACTUALLY
32K notes
·
View notes
Text
(this happened a while ago but felt worth posting) So, I went to the DMV for driver’s license stuff. The building they were in moved, so I got the new address, and headed there, and I was struck by the fact that unlike the usual complaining about degenerate modern architecture, the new building they were in actually looked... rather nice. Not a gorgeous building for the ages, but just a building that you’d rather look at than not look at. Nice enough to stop in the middle of the parking lot and ogle for 20 seconds or so. I wound up sending an appreciative email to the firm that designed it and found out they were responsible for several other buildings on the local university campus. It was a good experience. Well, definitely not the rest of the DMV experience, that was as bad as usual, but the building at least looked decent.
8 notes
·
View notes
Text
What’s the deal with salting asterisks into words that I’ve been seeing lately? The use case where it’s very sensible, that I’ve been seeing for a while, is when you want to prevent anyone from being able to search that you have made a post about someone or something, like, say, G*m*rg*te. But I’ve seen stuff like “stup*d” used, and I’m like “yo, everyone knows what word you’re using, you can just say “stupid” if you want, the asterix has no effect”. Is it just a tribal signifier that everyone picked up on? [EDIT: Apparently there’s a sensible reason for this, it’s because twitter has a word filter, and it mostly took off on twitter because it doesn’t affect meaning while still dodging the word filter] [EDIT2: Wint is apparently a prophet, check this out from 2010. https://twitter.com/dril/status/26878008485] [EDIT3: Alternate etymology suggested in the comments, that it started out as a way of emphatically staying on the mention side of the use-mention distinction, like the N-word, and expanded in scope from there, eventually reaching the point where I’ve seen someone in twitter comments calling someone else “ret*rded”, which definitely isn’t on the mention side of use/mention.]
9 notes
·
View notes
Text
So, I have found out about the Minecraft Manhunt series. Basically, there’s this guy, Dream, who was a speedrunner (yup, that guy who cheated in his speedrun attempts), and his task is to beat Minecraft. There are also several of his friends present, who are also good at the game, and have a special item which always points towards him (for tracking) and their task is to kill him once before he beats Minecraft. Apparently the creation process is “agree to pay money to friends if they kill me so they have an incentive, and if a hunt doesn’t come down to the wire, don’t publish it”. Given that full footage has been posted of some of the hunts, then even if it’s staged (which I highly doubt), they’re at least able to do the whole thing in one take, which is super-impressive. It is apparently a big internet thing and there are fans and antifans arguing about stuff, and.... The series is actually really good. It is unironically top-notch. It’s very popular and the popularity is deserved, I never thought I’d be saying this. I don’t even care if it’s staged. If you’ve played Minecraft before, you’ll be able to appreciate it. The main reason for the appeal is that, gameplay-wise, Dream is exactly what you’d get if [Favorite Action Movie Hero] had a baby with Bugs Bunny, and then that baby trained in Minecraft combat. The [Favorite Action Movie Hero] part comes in for two reasons. First, Dream is still a decent speedrunner (despite the whole cheating thing) and has the movement to match. Producing a few moments where you’re like “but that’s a sheer vertical cliff with lava below! Where does he go from here?!” and then... Huh, apparently since the cliff is vertical, you can place blocks on it. While running and jumping on those blocks at the same time. Effectively parkouring and building the parkour course at the same time. Damn, didn’t know that was possible. That sort of thing. The second reason is, when you die in Minecraft, you lose your stuff. If you have more stuff, you’re more of a threat. Therefore, despite being a 1 vs many fight, there is a very strong incentive for Dream to kill those hunting him, or else things are just going to snowball. The foes will be back eventually. But it buys some breathing room as they have to accumulate gear again. So there’s a whole lot of instances where our plucky hero [bursts out of a wall/jumps out of a tree/swims up from the ocean/attacks while they’re on the edge of a cliff] in a valiant attempt to defeat their multiple pursuers in unfair combat. Just like an action movie. Expect lots of screaming. Mostly from George. And then there’s the Bugs Bunny part. Minecraft has a whole lot of mechanics. Some of these interact with each other in unexpected ways. And, about once or twice a video, some absolute bullshit gets wielded to devastating effect, making every viewer go “that’s brilliant, I wish I had thought of that”. A very incomplete listing of these: 1: As your foes knock you off a tall cliff into an ocean of lava, chug a fire resistance potion in midair, and then you can just sink to the bottom of the lava ocean and safely escape by digging. “Wait, shouldn’t we have gotten the death notification already...???” 2: There’s a portal that you must to go through to complete the game. All foes are huddled around on the other side of the portal, with full armor and weapons and traps, to kill you the moment you step through. Send a dozen crates of lit TNT through the portal instead and savor the screams. 3: You are stuck up a very tall pillar above a lake, and they are pillaring up to reach you. Equip rare boots with a “freeze water” enchantment, and jump down to the lake below. Everyone else sees you jump, and they jump down too to kill you. You land safely in the water. Your boots promptly freeze the surface of the lake. Everyone else goes *splat* on the ice sheet. 4: Wear the same exact armor as the hunters, and go into the game settings to switch your skin to perfectly mimic that of one of the hunters. Successfully blend in with the hunting group. 5: You’re stuck on top of a mountain as the hunters close in. Use a glitch involving a boat to just... fly your boat off the top of the mountain, rowing through the air to safety. 6: Your foes have enchanted diamond armor and cannot be killed with the gear you have? Simple. Just...[insert 20 minute talk here about the physics of Minecraft nether portals to explain what the fuck happened]... and then your foes are permanently trapped on top of the Nether, which is an endless field of bedrock inaccessible without glitches. The only way to escape is to die and respawn, losing all items. Anyways, it’s unironically awesome, and you should check it out.
28 notes
·
View notes
Text
It’s always tricky making posts about infohazards because the word refers to just... way too many things, of extremely varying levels of “would be bad to have learned”. And also, for obvious reasons, you can only vagueblog about this stuff. Further issues arise when it’s a lower-level thing where 4/5 people will be fine with the thing and 1/5 people should not have found out about it in the first place, and hiding it results in 4/5 people going “calling this an infohazard is super-dumb, it wasn’t harmful to me at all” and 1/5 people going “I regret finding out that this was a thing” With that said, I don’t feel especially harmed, but... it’s apparently possible to have a piece of audio leave you with random spikes of tension and unease that are still showing up a month later, from your lizard brain going “this song/background noise reminds me of the Thing”. I would not have guessed in advance that was a possible outcome.
16 notes
·
View notes
Photo
I have a blanket and a spoon. And also Tohru from Miss Kobayashi’s Dragon Maid, so I think I’ll make it.

17K notes
·
View notes
Text
I *think* I just managed to schedule my vaccination. My state just open up vaccines to the general public 30 minutes ago and hell yes I’m the type to camp websites at midnight. Teensy problem, though: They said to bring my insurance card. I am not insured. Is Walmart the sort of place where you can just throw money at them to get a vaccine without insurance?
7 notes
·
View notes
Text

@ego-sum-id-quod-cantum-ludere
Yes, it is.
You seem to be under a misunderstanding, with the belief that these Starship SN-series test vehicles are representative of full spacecraft. They're not.
The Starship SN-series are glorified grain silos, plumbed up with three engines, four large flaps, primitive landing gear, and a control system. They are not spacecraft, rather full-scale test vehicles, to improve the final design, and build experience doing completely new things to rocketry, in a cheap, disposable, and rapidly achievable manner.
SN-8, SN-9, and SN-10 were built to test the bellyflop/ skydiver and flip maneuvers, whereby a re-entering spacecraft falls on its side, using four large fins to control its direction like a human skydiver, before flipping upright and burning its engines to land. Before SN-8, this had never been done in history. SpaceX have now done it three times in four months, with 100% success rate for the skydiver maneuver and 67% for the flip. Let's be clear, the reason why Musk called SN-8 a success, when it exploded, was because it had two main test objectives: to descend under aerodynamic control, and to flip itself for the landing burn. It did both of these successfully, as did SN-10 on Wednesday. That makes both flights a success for their primary objectives, providing SpaceX a ton of data on what nobody has previously done.
Surviving the landing is not really that important right now, which seems dumb, until you consider that these vehicles are getting scrapped after one test anyway, not built for multiple flights. Landings have already been done with SN-5 and SN-6, which have both now been scrapped, and it's noteworthy that none of them have more than rudimentary, single-use landing legs.
With such disposable, single use test vehicles, it's actually better that things go wrong. Making these rockets very quickly and cheaply whilst they're just unmanned test vehicles allows more room for error, and more space to learn from it. SN-8 had a fuel pressure issue that cost the landing? Added a helium pressurisation system for the next vehicles. SN-9 lost an engine during re-light? Light all three and shut down extras if performance is nominal.
An explosion of a test vehicle is not a failure; It's a lesson. If you complete all the primary test objectives first, as SN-8 and now SN-10 did, then it's a resounding success.
You can tag your posts with "people are going to die" all you want but it doesn't make it true. Case study: Space Shuttle Challenger disaster. NASA built the Space Shuttle knowing the design was incredibly high risk. The earliest missions has a predicted 1/9 chance of LOC (loss of crew and cargo, ie, seven astronauts die) and even the final missions had a 1/78 chance. The shuttle was an absolute deathtrap, in large part because it attempted things never done before, but did absolutely zero full scale, unmanned flight testing. They never gave it a chance to go wrong in a controlled environment, because the Shuttles cost billions of dollars, and they couldn't afford to lose them. Then, when design flaws did show, they started killing astronauts on actual mission launches and returns.
You don't realise it, but SpaceX is on track to produce a safer rocket, for less money, in far less time, because they're willing to make a mess.
82 notes
·
View notes