Avatar

Snuggle Squiggle

@snugglesquiggle / snugglesquiggle.tumblr.com

24 — it/her — website is serpentsquiggles.neocities.org — read me dissect me spread me — discord is snuggle_squiggle — icon by @malk-with-tea (cropped)

tag reference:

the main thing i've been working on lately is Hostile Takeover, a longform murder drones fanfic about a lesbian killer robot torn between her directives and her own needs.

my most extensive work, though, is the many writing about Black Nerve, a dark fantasy setting with giant insects wield magic that dissolves life and matter, mutant bat-blood and of course esoteric fungi. there's a couple of novels and LOT of lore posts

i have a website which is probably the best place to see all of my stuff:

but to get a taste of what you can find on that site, keep reading

How do you *accidentally* make a programming language?

Avatar

Oh, it's easy! You make a randomizer for a game, because you're doing any% development, you set up the seed file format such that each line of the file defines an event listener for a value change of an uberstate (which is an entry of the game's built-in serialization system for arbitrary data that should persiste when saved).

You do this because it's a fast hack that lets you trigger pickup grants on item finds, since each item find always will correspond with an uberstate change. This works great! You smile happily and move on.

There's a small but dedicated subgroup of users who like using your randomizer as a canvas! They make what are called "plandomizer seeds" ("plandos" for short), which are seed files that have been hand-written specifically to give anyone playing them a specific curated set of experiences, instead of something random. These have a long history in your community, in part because you threw them a few bones when developing your last randomizer, and they are eager to see what they can do in this brave new world.

A thing they pick up on quickly is that there are uberstates for lots more things than just item finds! They can make it so that you find double jump when you break a specific wall, or even when you go into an area for the first time and the big splash text plays. Everyone agrees that this is neat.

It is in large part for the plando authors' sake that you allow multiple line entries for the same uberstate that specify different actions - you have the actions run in order. This was a feature that was hacked into the last randomizer you built later, so you're glad to be supporting it at a lower level. They love it! It lets them put multiple items at individual locations. You smile and move on.

Over time, you add more action types besides just item grants! Printing out messages to your players is a great one for plando authors, and is again a feature you had last time. At some point you add a bunch for interacting with player health and energy, because it'd be easy. An action that teleports the player to a specific place. An action that equips a skill to the player's active skill bar. An action that removes a skill or ability.

Then, you get the brilliant idea that it'd be great if actions could modify uberstates directly. Uberstates control lots of things! What if breaking door 1 caused door 2 to break, so you didn't have to open both up at once? What if breaking door 2 caused door 1 to respawn, and vice versa, so you could only go through 1 at a time? Wouldn't that be wonderful? You test this change in some simple cases, and deploy it without expecting people to do too much with it.

Your plando authors quickly realize that when actions modify uberstates, the changes they make can trigger other actions, as long as there are lines in their files that listen for those. This excites them, and seems basically fine to you, though you do as an afterthought add an optional parameter to your uberstate modification action that can be used to suppress the uberstate change detector, since some cases don't actually want that behavior.

(At some point during all of this, the plando authors start hunting through the base game and cataloging unused uberstates, to be used as arbitrary variables for their nefarious purposes. You weren't expecting that! Rather than making them hunt down and use a bunch of random uberstates for data storage, you sigh and add a bunch of explicitly-unused ones for them to play with instead.)

Then, your most arcane plando magician posts a guide on how to use the existing systems to set up control flow. It leverages the fact that setting an uberstate to a value it already has does not trigger the event listener for that uberstate, so execution can branch based on whether or not a state has been set to a specific value or not!

Filled with a confused mixture of pride and fear, you decide that maybe you should provide some kind of native control flow structure that isn't that? And because you're doing a lot of this development underslept and a bit past your personal Balmer peak, the first idea that you have and implement is conditional stops, which are actions that halt processing of a multiple-action-chain if an uberstate is [less than, equal to, greater than] a given value.

The next day, you realize that your seed specification format now can, while executing an action chain, read from memory, write to memory, branch based on what it finds in memory, and loop. It can simulate a turing machine, using the uberstates as tape. You set out to create a format by which your seed generator could talk to your client mod, and have ended up with a turing complete programming language. You laugh, and laugh, and laugh.

Avatar

i feel like getting shot would feel so interesting for two seconds and then it would probably feel bad

“Wounded by a Fascist Sniper” - George Orwell, excerpt from Homage to Catalonia (1938)

http://wesclark.com/jw/catalonia.html

just saw a youtube channel with three digit subscriber count and nine videos that probably have less than than 2k views in sum across all them - except for their newest vid, which has 58k views. i wonder if they're having a good month

Been a hot minute since I've drew anything Hollow Knight related, but this is a celebratory moment in Hollow Knight history.

Hey this is the devil speaking. Yeah you should start a discord server moderated only by you and invite upwards of 200 people. Make sure there's two vent channels. Nothing bad will happen if you give people unlimited leeway to say whatever they want. Several hundred people and it's only you moderating btw

UM GUYS. I JUST NOTICED A CRAZY ISSUE W THE TUMBLR UPDATE.

YOU CAN SEE THE ICONS OF ANONS SOMETIMES.

The way I was able to recognize several anons in one of my inboxes bc of this error. Oh my god. Guys. This isn’t supposed to happen.

Weighing in to say:

YES, I SEE THIS ON MOBILE. HOWEVER I DO **NOT** THINK IT'S SHOWING THE ANON'S REAL IDENTITY.

The profile pictures I see next to anon asks are profile pictures that belong to other, non-anon asks in my ask box also. Some info

  • there are 14 asks in my inbox from the last ~5 days
  • 9 anons, 5 logged in users
  • ALL 14 show pfps, including the 9 anons
  • ALL THE SHOWN PROFILE PICTURES BELONG TO THE 5 LOGGED IN USERS

I think the bug is the inbox INCORRECTLY attributing anons to neighboring, logged-in asks.

Which is still a bad bug! Considering it makes it look like a long-time follower of mine sent me a spam ask.

And is worse if, say, one of these was anon hate.

But it's NOT the anon's real identity. It's a neighboring ask asker's identity

So if you have anon hate in your inbox that looks like it's attributed to your dear friend, who sends you lovely asks all the time, it was Not them.

CONFIRMED THE BUG IS INCORRECT ATTRIBUTION.

Thanks @thepatchycat for being a test subject. As you can see the icon being attributed to this ask is NOT the patchy cat

The pictured icon belongs to @watchingforcomets who sent me a nice ask about nail polish yesterday which I have not yet answered!

All this excitement aside, I'm frankly just happy that Silksong is real and still being worked on so I really don't care when it comes out

Also my stance is still that Team Cherry should shadowdrop it on launch day, turn off their phones and immediately go on vacation

Op I hope you don’t mind this addition but. In regards to my previous tags , I made a meme

CORRECT

I'm gonna blow your mind with this, folks in the tags, but I think people have been super brainrotted by big studios having hype trains for their releases. I don't think a dev's job is to do marketing. A dev's job is to fucking develop.

You know what I think is good practice? Not putting a release date until you're absolutely and totally sure you can meet it instead of putting a release date and having to crunch to meet it OR move it repeatedly, which will disappoint people anyway. The time to do marketing campaigns, ideally, is AFTER the game is done and you're trying to convince people to buy and play it.

tl;dr I don't fucking care about the marketing who gives a shit about marketing

OP kind of gave the game away with the smug followup. i'd almost nod along if the preening at the end didn't make me go wait, who would actually be on the side of billionaires in a context like this... let's check the notes - oh, people don't like that this is a gamergate dogwhistle explicitly taking aim at people who think diversity is a good thing

Bugaboo Pocket released today on Steam! (Will be out on switch later 2025).

I’ve been excited about this game now for over a year! If you loved tamagatchi’s as a kid, you’ll love this game! You get to raise your very own digital pet insects, dress them up, and decorate their homes! 🐛

i get that it is recreationally fun to whine and hate. i support all whiners and haters and i agree nintendo should be bankrupted and have to sell all its games for negative ninety dollars. but if new mario games are $80 i just think its really easy to not buy new mario games. like when peoplare like "games are 1 squillion dollars" im like okay maybe for you if you want to buy the new zelda or cod the day of release. for Me, video games are like $15. sometimes $0

You are using an unsupported browser and things might not work as intended. Please make sure you're using the latest version of Chrome, Firefox, Safari, or Edge.