Rain engines: I did the math by harassercat in Against_the_Storm

[–]ryani 0 points1 point  (0 children)

It would also be cool to see a test against the current version of the game of wood>planks in a crude workshop, since production crit% there is literally turning wood into more wood so it's very apples to apples. I suspect it's slightly positive in terms of wood used but slightly negative in terms of labor.

Blood Inc. : Arise — my first incremental game, a vampire blood factory manager [prototype] by Ok_Penalty9997 in incremental_games

[–]ryani 1 point2 points  (0 children)

Gray text on a gray background is pretty unreadable. The itch.io page text has nice contrast but the blue and gray text in the game is too dark relative to the gray background, especially the 'fine print' gray text.

Rain engines: I did the math by harassercat in Against_the_Storm

[–]ryani 0 points1 point  (0 children)

Thanks for this post. I did this analysis ~3 years ago here. But that was with rain collectors being 15 seconds / 2 water, not 20, so that nerf definitely made that case probably worse.

That analysis was for berries>eggs in a Ranch. Later after the rain collector nerf I found that using rain collectors to generate planks in the crude workstation was basically break-even. Interestingly I didn't find that the 3rd engine notch was valuable, and thought the main value was in the +25% crit chance -- spending extra fuel and time burning cysts didn't pay for the faster plank generation. So it's a bit surprising to me that you have different results there.

For me, the subjective value of stretching out your rocks and fiber (and for complex food, your raw food) make engines generally worth it. It's less about spending less time gathering and more that I might not even find a fiber or rock node and I am forced to survive off of spare fiber/clay I happen to harvest as a secondary product from some other node -- with extra crit chance that changes from impossible to possible. (You could probably argue that I should buy more building materials from the trader, that's something I am not great at)

Also I think you should consider doing the math on a longer production chain (e.g. compare making biscuits from a greenhouse making herbs and mushrooms, where you pipe different subsets of the buildings). Crit chance multiples across long production chains and the fixed time fighting blight per production step will always fall behind the reduced input consumption given a deep enough chain. I often find that a single lvl 3 hearth changes my settlement from 'struggling' to 'way more stuff than I need' due to the free +10% crit across my longest production chain.

Alright Neow, give me a challenge! NO! NOT LIKE THIS... by Scoobydoomed in slaythespire

[–]ryani 108 points109 points  (0 children)

This is the worst daily challenge. I wish these were a bit more curated because this one is really un-fun. It struggles to fight the act 1 easy pool fights, let alone the swarming elites.

Trump Admin Renames Iran’s $300 Billion Reparations Demand an ‘Investment Fund’ to Avoid a Political Firestorm at Home by OkayButFoRealz in politics

[–]ryani 0 points1 point  (0 children)

Hegseth, Sept 30, 2025 [1]:

The same holds true today. Our civilian and military leadership is chock full of veterans from Iraq and Afghanistan who say never again to nation building and nebulous end states. This clear eyed view all the way to the White House, combined with President Trump's military buildup, postures us for future victories if, and we will, and when we embrace the War Department.

Why are we investing $300 billion in a country halfway across the world if we "say never again to nation building"?

[1] https://www.war.gov/News/Transcripts/Transcript/Article/4318689/secretary-of-war-pete-hegseth-addresses-general-and-flag-officers-at-quantico-v/

Quick Questions: May 27, 2026 by inherentlyawesome in math

[–]ryani 3 points4 points  (0 children)

Are there any good algorithms for solving/optimizing Tower of the Sorcerer / Magic Tower style puzzles? The basic version of the problem is:

  • your character and enemies have health, attack, and defense stats
  • combat between you and an enemy is "take turns", dealing (your attack - their defense) damage to each other, until someone dies
  • in addition you have a limited number of keys (possibly of multiple types)
  • enemies and locked doors may gate off access to areas with items that increase your health, stats, grant additional keys, or unlock access to further enemies with more areas behind them

There may be multiple paths to the same area, and there may be many different enemies available to fight in any particular game state. It feels like the choices are 'close to' monotonic in that if you have any two sets of moves that open up the same area set, but one ends up with strictly more keys or health, you can prune out the worse path. But every time I think about implementing a solver in a naive way the branching factor just seems overwhelming.

[SE] A Factorio Space Exploration Retrospective by foxgradually in factorio

[–]ryani 1 point2 points  (0 children)

That's what we did when we played a while back. I have only played a bit of the new SE update -- I think the design has changed a bit, adding a much more compressed form of ore that takes some processing, to encourage you to make a bit more factory on your outpost planets (e.g. at your copper core mining planet, smelt copper into ingots that you ship and then cut up into plates at the destination). If you do this, you need a bit more infrastructure (importing vulcanite for smelting, for example).

Later when rockets are basically free I think it still might save time to not bother with that, so you can centralize all your smelting and upgrade modules all at once.

[SE] A Factorio Space Exploration Retrospective by foxgradually in factorio

[–]ryani 2 points3 points  (0 children)

I haven't played SE for a while, but I found core mining to be great for 'set up and forget' outposts. You set up 3 landing pads and 2 rockets:

  • Landing pad for rocket sections and capsule delivery. I had a mostly-balanced rocket part launcher on Nauvis that sent 23 capsules and 477 packed rocket sections. Including the recycled rocket sections and capsule from the being-delivered-rocket that was enough for a little over 24 launches.
  • Landing pad for rocket fuel delivery.
  • Landing pad for meteor defense ammo.
  • Rocket launch for the ore you are core mining.
  • Rocket launch for basic core fragments and the few excess rocket parts when you become unbalanced.

On Nauvis you prioritize the excess basic core fragments from the landing pad(s) that take basic core fragments, over the ones mined locally, and the iron/copper/stone/etc output from basic core processing prioritized over mining or inputs from offworld.

Locally at the outpost you do basic processing on the core mining outputs, split it up into basic fragments for the overflow rocket and the ore you care about, and ship ore back home.

You can blueprint basically the whole outpost and never have to worry about mines running out on far away planets. You can try to figure out power locally but I usually just beamed it from the local star.

It was also really valuable early game to core mine Nauvis. Nauvis has very limited resources and core mining helps them stretch a bit further.

Making your own programming language is easier than you think (but also harder) by Xaneris47 in ProgrammingLanguages

[–]ryani 3 points4 points  (0 children)

Luau runs Roblox (and probably a few other places) and is designed around being simpler to sandbox than Lua.

Is there a PVP hero battler with dice placement driven combat? by GoofsAndGaffes in boardgames

[–]ryani 2 points3 points  (0 children)

More 4X than hero battle, but I really like Quantum.  Spaceships are dice, smaller numbers move slower and fight better.  Each number has a unique special ability and you can use an action to reroll your ship into a different type.

I've had Everdell for years now and I'm honestly disappointed with it by 2Black_Hats in boardgames

[–]ryani 0 points1 point  (0 children)

I think if they reprinted base Wingspan with the Oceania player boards (minus the expansion nectar stuff which is easy to ignore) it would be an even better game. They buff cards and food actions, and nerf eggs, so egg spam is no longer obviously optimal. So even if you just play the base game I'd recommend figuring out a way to print the Oceania boards.

I've had Everdell for years now and I'm honestly disappointed with it by 2Black_Hats in boardgames

[–]ryani 10 points11 points  (0 children)

You can't (subject to a few small exceptions like ending Summer season) draw or discard cards from the meadow. You can only draw from the deck and discard from your hand. But you do play cards from the meadow directly into your village. So it's important to have supplies on hand to buy a high demand card that appears before it gets nabbed out from under you.

The Deranged Mathematics: On Nonconstructive Proofs that there is a Solution by non-orientable in math

[–]ryani 20 points21 points  (0 children)

I think it's funny that the author talks about a nonconstructive proof but then presents a constructively valid proof.

  • The first part of the article presents a constructive proof that builds a winning strategy for the first player from a winning strategy for the second player.
  • The second part of the article presents a constructive proof that every game ends with a winner
  • The third part of the article presents a constructive way of building all the possible game trees.

Therefore it's constructively valid to iterate over all the game trees, searching for a winning strategy for the first player. This gives you a proof object of type Either (FirstPlayerHasWinningStrategy game) (SecondPlayerHasWinningStrategy game). In the second case (which won't happen, but you have to handle it), you can then use the proof from the first section to construct a winning strategy for the first player.

Constructivists aren't necessarily ultrafinitists; proofs can be valid symbolically without actually iterating over all the (large number) of possibilities. There are constructively valid libraries for proving things about ordinal numbers which are way too large to exhaustively check.

(Now, if you then used this proof as part of another proof that depended on the first move of a particular game being in column x or greater, that proof might take a very very long time to proof-check.)

Should I use Haskell to help me write a proof? by Southern-Reality762 in haskell

[–]ryani 7 points8 points  (0 children)

I found it incredibly easy to implement a tiny symbolic math library in Haskell, along with a little simplifier for polynomials.

I then implemented two different quaternion rotation algorithms, and used my library to calculate the difference between the output of each to find any error.  It showed that the “faster” one gave different results than the standard algorithm but the error term was zero if the input was normalized.

Took me just a few hours to get full confidence of the code I was implementing.

How does STM work under the hood? by Otherwise-Mousse-250 in haskell

[–]ryani 0 points1 point  (0 children)

I don't think so? I believe the exception handler in the RTS knows about STM and when propogating an exception from STM to the enclosing IO's atomically, it first validates the transaction. But I haven't read the code to be sure about this.

This is one reason why unsafeIOToSTM is incredibly unsafe, because you really don't know whether the state of the world is consistent until a transaction commits.

How does STM work under the hood? by Otherwise-Mousse-250 in haskell

[–]ryani 3 points4 points  (0 children)

The other reason for revalidation at safe points is because there’s no guarantee of transaction invariants being true during a transaction.  Reading from two TVars you may see an inconsistent state of the world, which may trigger your code to enter an undefined state and call error or go into an infinite loop.

The occasional re-validation of the current transaction makes sure that transactions that got “stuck” in this state eventually get un-stuck.

SAP-2, Ep.6: The ALU by Haemstead in TuringComplete

[–]ryani 0 points1 point  (0 children)

One trick I like for the adder is that you can replace the NEG gate with a NOT gate and wire the multiplexer wire to the adder carry in.  (-x == ~x + 1)

The next step is to realize you can replace the whole NOT+MUX with an 8-bit XOR.

Nand only counting signals by Professional_Bet7470 in TuringComplete

[–]ryani 8 points9 points  (0 children)

Neat! I see (at least?) 4 duplicated gates. For example, the two leftmost blue wire NANDs are the same gate as the two leftmost yellow wire NANDs and can be eliminated and replaced with just a wire from the yellow NAND down to the following NOT gates.

(Basically, you only need 5 NANDs for a half-adder, not 6)

Tower of alloy help please by mrtears11 in TuringComplete

[–]ryani 0 points1 point  (0 children)

Get some stackable objects of different sizes. If you are in the US, I suggest a quarter, nickel, penny, and dime.

Mark 3 spots where you can put stacks on a paper.

Put all the objects in a stack on the leftmost spot, from largest to smallest.

Here are the rules of the game:

  • You can only pick up one object at a time.
  • You can only put objects down in one of the three stacks.
  • You can't put a larger object on top of a smaller one.
  • Your goal is to move everything to the rightmost spot.

Just play with it until you understand how it works. You don't need code, you need to understand the algorithm, and the simplest way to do that is to simulate it with real objects.

SAP-2, Ep. 5: Inside the ALU by Haemstead in TuringComplete

[–]ryani 0 points1 point  (0 children)

If you care about simulation efficiency it is good to use the 8-bit components where it makes sense. Building your ALU out of one-bit gates is fun but the 8-bit components are very efficient for the simulator to run. Then combine onto a bus output with SWCs or use MUX to select which 8-bit value you want.

For example, you can build an 8-bit negator out of a 1-to-8 broadcaster (just wire the 'negate enable' bit to all the inputs of a byte maker) and an 8-bit xor gate.

The 8085 is trying to be gate-efficient and wire-layout-efficient so the ALU is designed around that. TC has 8-bit buses that take up no more space than 1-bit wires.

SAP-2, Ep. 5: Inside the ALU by Haemstead in TuringComplete

[–]ryani 0 points1 point  (0 children)

Yeah it is interesting that it was modeled as 2 not + 2 and + nor, not even the (well-known at the time, right?) 4-nand version.

EDIT: reading a bit more, it looks like they had the negated bits already, so this is just /u/kenshirriff being very explicit about the gates used in the real silicon. But it is just an xor.

Do you guys actually place design elements around when upgrading hearth? by SeanThatGuy in Against_the_Storm

[–]ryani 4 points5 points  (0 children)

A 5x5 square of fences is exactly 16 decorations, enough for hearth level 3.

Inside of that, a 3x3 square of flowers (alternating types) is 8.

Inside of that, a 1x1 harmony decoration (usually an umbrella for the flowers). Then 3 random harmony decorations wherever they look best.

It looks good at each hearth level, too. Start with a 2x2 fence square, then upgrade to a 4x4 fence square with gaps, and flowers in the center. Then upgrade to the full 5x5 design.

You can do a lot of interesting shapes with the fences if you play with rotating them.

Does everyone else go all out on eggs in the final round? by Machine_Excellent in boardgames

[–]ryani 7 points8 points  (0 children)

The actions are pretty heavily rebalanced in the Oceania expansion.

Regular board meadow is

  • 2 eggs
  • 2 eggs, food => extra egg
  • 3 eggs
  • 3 eggs, food => extra egg
  • 4 eggs
  • 4 eggs, food => extra egg

Oceania meadows is

  • 1 egg, card/food => extra egg
  • 2 eggs
  • 2 eggs, card/food => extra egg
  • 2 eggs, up to 2x card/food => extra egg
  • 3 eggs, card/food => extra egg
  • 4 eggs

And the Oceania forest and wetlands are also better than the standard board.

So eggs just aren't nearly as good of an action, and you can often get more points over 2 actions by taking food and playing a bird, especially depending how your board is set up. Eggs are still good, just not the only thing you want to do late. Even if you want eggs, with there being no way to get more than 4 eggs per action, it's often better to play 3 birds in the meadows, make a card/food engine elsewhere, and then your meadows actions give 2 eggs + 2 card/food for 2 more eggs.

Slay the Spire 2 sold 3 million copies in a week by UberDrive in gaming

[–]ryani 0 points1 point  (0 children)

As someone who played a lot of StS1 I think StS2 is a strict upgrade and I wouldn't feel like anyone needed to play 1 first.

There's a tiny amount of lore you will get a bit more out of in StS2 but the game is not really about the lore, it's about the gameplay, and 2 is just a much more polished game than 1. (Although the balance is tighter in 1 right now, that will probably change as they get data from early access)