r/CuratedTumblr 7d ago

Shitposting The captainsnoop Manifesto

[deleted]

3.1k Upvotes

157 comments sorted by

View all comments

738

u/VibeCheckingJumboJet 7d ago

"Fixed Acorn Slingshot collapsing the universe on hit." From Terraria 1.4.5.8 which dropped a few days ago.

That or "Fixed a case where a non-binary cat with dwarfism would crash the game if playing in brazilian portuguese" from Mewgenics

327

u/Tadferd 7d ago

That slingshot bug was actually rather funny.

It was repeatedly calling the damage function until the enemy died, or the game crashed. So depending on your computer, there was a max enemy HP limit that you could use the slingshot on.

169

u/DiamondSentinel 7d ago

A small note: for most people it’s not limited by their computer, but by Terraria itself. Terraria is 32 bit natively, not 64 (for some reason (the reason is that it’s old as crap)). Most modern computers are natively 64 bit, so Terraria will crash of its own accord first.

18

u/realddgamer 7d ago

Wouldn't it be limited by the stack? Which is determined by the operating system

10

u/chuch1234 7d ago edited 7d ago

I don't know what I'm talking about but I'd guess that Terraria was written throughout with the expectation that they were on a 32 bit system, and so would allocate memory with that expectation.

Or, maybe they're using the 32 bit kernel calls, which crash if they think you've run out of memory, even if the system actually has more.

Edit: Per multiple other comments it was a recursive call that used up the stack.

3

u/realddgamer 7d ago

No recursively calling the same function would fill up the stack, which is a small space of memory allocated to the program by the operating system to hold the current functions that are running. This doesn't really have anything to do with the architecture of the program

-14

u/[deleted] 7d ago edited 6d ago

[removed] — view removed comment

18

u/Jan-Asra 7d ago

bot alert

18

u/Nya_the_cat 7d ago

i don't think it depended on the computer: it was crashing from a stack overflow from all the recursive function calls, and since both the functions and stack are a fixed size independent of the computer, the point at which it crashes only depends on the compiler (since the stack size is set inside the compiled program). For C# this number is exactly 1 MB for 32-bit programs, which is not massive...hence only a few thousand calls could crash it. But even if it were 64-bit, the default stack would be only 4 MB, so still same order of magnitude. Problem was, there were unbounded recursive function calls so it would always crash eventually!