wormingdead

11 Followers
141 Following
76 Posts

"The most wildly successful project I’ve ever released is no longer mine. In all my years of building things and sharing them online, I have never felt so violated."

https://beyondloom.com/blog/onwigglypaint.html

Edit: I am not the author of this. Please go check out https://beyondloom.com/ for more of the author's work.

so i wanted to learn some category theory.

opened up a textbook on one side, agda on the other, and started trying to formalize the concepts and proofs

but i hit a bug in how agda’s pretty printer behaves. one i couldn’t easily work around

so i decided i’ll finally start contributing to agda and try to fix it myself

started poking around, accidentally figured out a different bug that I previously thought wasn’t worth looking into

but okay, gonna keep digging into the bug that actually led me down this path.

soon i found myself wanting to take a look at how agda’s AST looks in practice in one specific case, only to find that there isn’t really a way to do that, because haskell’s Show prints way too much information, all in one line, filling the entire terminal screen with mostly irrelevant info

so i did the natural thing and started writing a pretty printer for this purpose

eventually i got annoyed that each time i compiled agda, it would spend a good 30 seconds doing some kind of build system bookkeeping

like, i measured. a build with the entire cache fresh already would take 30 fucking seconds

as 30 seconds is enough time for me to start scrolling through fedi, i decided i need to look into this

so i started poking around the surprisingly complex makefile, learning more than i ever wanted to know about make

finally found the culprit: in a maze of includes, recursive make invocations and variable expansion, various variations of stack –dest-dir would get called like. way too many times during the build. and each of those would take 750ms to initialize, print the path to the build directory and exit

sigh, okay. i guess i’ll need to optimize the makefile a bit

managed to get it down to 10s for a do-nothing build. scoured the internet looking for a feature of make that would be useful to bring it down further

didn’t find it. as far as i can tell, “expand lazily, but then cache it” is not a behavior that’s available in gnu make, despite the absolute abundance of features they added on top of what posix specifies

now, thankfully i know better than to attempt upstreaming a feature into gnu make. and anyway, in this case the good folks at stack overflow gave me a hint on what absolute crimes i could commit in that makefile to make it go faster

but while i was contemplating my plan, i wondered: why does stack take 750ms to print a path in the first place?

after execsnoop and strace didn’t give me any hints, i decided to try using the linux profiler “perf”, which i’m sure you know is a master class in UX design

(it is not)

so i open the “perf report” and see a bunch of addresses for which i don’t have debuginfo. suspiciously small addresses too, like 0x5ddc

i start to notice the feeling of despair creeping up on me, but decide to persevere for at least a little bit more

i choose the hottest sample on the report and select “Annotate 00…005ddc”

now, i want you to consider that what i saw next was enough to get me to write out this entire rant. take a moment to internalize that.

what batshit insane assembly did i see? what could possibly have been this upsetting?

“Press ‘h’ for help on key bindings”, it said. followed immediately by “erf: Segmentation fault”, that’s right, erf, without the p.

then came a backtrace. one that listed the function name for each stack frame, as well as the source code file in which it were defined.

but the line number of all these entries is fucking 0 for some reason, as if to mock me

like, it’s not like i cared at this point where exactly the segfault happened, because even i do have my limits

but the computer apparently decided to find one more place in which it could subtly signal that there’s a nugget of insanity lurking within, to really get that eye twitchin’

and all i wanted was to learn some category theory

I have put together a short video that might help you switch from Windows to Linux as a game developer.

Check it out and send it to fellow gamedevs!

I'm not a youtuber so I hope I'm making sense here. Let me know if you have any questions or need help! Cheers!

https://www.youtube.com/watch?v=WKtNIHdNUH8

#linux #windows #linuxgaming #gamedev #indiedev

I've been running an indie games studio for 15 years now, and it felt like a good time to boil down what I've learned into 4 pieces of advice:

https://www.pentadact.com/2026-01-08-15-years-of-indie-dev-in-4-bits-of-advice/

I hope it's of use, not least because goddamn I forgot how long blog posts take to write.

@Moot hi, your discussion of VRChat has gotten me interested, could I ask for your opinion on the VRChat age verification system? the way the website describes it seems risky to use, so I'm wondering how important/effective it is in the community.

Apologies for being a stranger in your feed.

I wrote too damn much about how payment processing works and what happened to Valve and Itch and I know no one's going to read all this crap, but it's out of my brain now.
Payment Processor Fun 2025 -- Making Your Own MSP

Ah cool, Archlinux had another oopsie-whoopsie that was only communicated on the mailing lists.

They found malware on the AUR. Reminder that anyone can put stuff on the AUR and when an AUR client offers to let you inspect the package build scripts, it's because it's no one's job to make sure the package is safe.

"But people tell me to install stuff off the AUR all the time and I'm no dev that can understand these scripts" -- Yup! This is one of Arch's primary problems. It's why they make it non-trivial to bootstrap into getting stuff off AUR to begin with, but that's not enough when 98% of Arch users need something off it.

Weh.

[SECURITY] firefox-patch-bin, librewolf-fix-bin and zen-browser-patched-bin AUR packages contain malware - Aur-general - lists.archlinux.org

@mauve Sorry to bug you while you're undoubtedly busy, but have you considered making a Steam News post for DQ1 about releasing Mists of Ruins? I was expecting to be able to look at my Steam News feed to get a link to DQ2's page.

Congrats on the release!

it's hard to believe it but Defender's Quest 2, a game i signed on to work as a designer for, and then took over as lead developer after Lars stepped back, is finally coming out tomorrow.

when i say this was brought over the finish line by sheer force of will, i mean it. multiple tragedies on the dev team and a lot of problems had to be overcome.

hope people like it. at least i'll be able to get some rest finally. #gamedev

https://store.steampowered.com/app/252190/Defenders_Quest_2_Mists_of_Ruin/

Steamで25% OFF:Defender's Quest 2: Mists of Ruin

タワーディフェンス『Defender's Quest』シリーズの最新作で、ミークを乗り越え、未知の危険から自分の船を守ろう!

Release 3.2.0 · libsdl-org/SDL

Announcing the SDL 3 official release! SDL 3.0 is finally here! We have many many people to thank on the road to get here, but I'd like to call out special thanks to: @slouken and @icculus, lead d...

GitHub