Avatar

Open Source Slut

@opensourceslut / opensourceslut.tumblr.com

Computer nerd, Linux, python, communism, fantasy, vegan, cooking | trans woman, bisexual, she/her
Avatar

Fun fact: We know the size of the Pokémon world because Scarlet and Violet has framerate issues

Avatar

Video games tend to do this thing called "culling," where they don't render things that aren't in use. In Breath of the Wild, there's no reason for Link to be able to see how many apples are on a tree in Hateno when he's all the way in Tarrey Town, or know how many Bokoblins are running around Hebra Mountain. Link has a radius around himself that spawns in people, enemies, items, etc, so that the player gets the full experience of a rendered world without the game having to keep track of 850 Hearty Radishes sparkling.

This is good.

Scarlet and Violet has really AGGRESSIVE culling. The devs knew the game was framey and did everything they could up until the last possible second to save on resources.

The player has a single square that's always rendered around them, which takes about 10 seconds to run across. Besides that, all that's visible is whatever the camera is facing; if the camera can't see it, it does not exist.

You might think that this would be good for performance, since the game isn't calling as many assets constantly. And you would be right, if the things culled were ALL that the game was trying to render.

We all know at this point about the memory leak problem the game has, where it won't toss garbage data it's not using. This is supposed to account for the framerate drop; however, if it was ONLY the memory leak, it should start out smoothly, then decay over time until it's unplayable.

So what gives?

This is the ocean.

It's pretty. It's got a tiny bit of reflection, some gentle waves, a nice gradient. A beautifully made ocean without repetitive textures is always nice.

THIS IS THE OCEAN.

IT IS NOT CULLED.

Look at the SIZE of this thing! Paldea is an ANT in the middle of this puddle. It's rendering ALL of this, ALL its sparkles and waves, ALL the time.

Now, this is usually the part of the post where I'm like "and because we know the size of the ocean, based on the coastlines and wind direction, we can figure out how big the rest of the planet is by comparison!" like I did with Breath of the Wild over a year ago.

No.

Another video game term you might not be familiar with is a "skybox." Basically, to give the illusion of faraway objects, clouds, mountains, etc, and to hide the black void most 3D games are built in, games will have a texture wrapped around either the level or where the player is standing. For example:

This is a level from Twilight Princess called Sacred Grove. You normally can't see the bottom parts of this, hence why it turns into a gray plane, but the parts you CAN theoretically see by looking through the trees are colored so you think you're looking at a sky. You can see the edge of the void down in the bottom right corner.

Here's another one from Twilight Princess. You can see the different textures that stack on top of each other, as well as the blue skybox that's centered around Link when he's in the area. You, as the player, FEEL like you're in a small part of a larger world, because the devs cleverly structured together elements you CAN see in other areas into the background.

More complicated versions of skyboxes, typically semi-circular, are called skydomes.

They tend to look kind of like snowglobes, because you do not need to render anything that can't be seen. There's no situation in which the player should be able to fall lower than the level, so there's no reason to render the dome into a sphere in the event that that happens.

In Scarlet and Violet, it would make sense for the skydome to end where the ocean does. There's no situation in which the player manages to go past or underneath the ocean, so even if you wanted a gigantic ocean size like they have, you don't need to use more sky to encompass that.

They did not get this memo.

You might be thinking to yourself "wow, that looks like the curvature of the Earth!"

AND YOU WOULD BE RIGHT!!!!!

Why is this here. Why is it so big. I can't even see Paldea anymore. What exactly was planned for this.

Clever readers might have noticed that I labeled this "Skysphere" and not "Skydome."

That's because it for some reason is a sphere. Paldea is sitting in the middle of a fully rendered gigantic sphere in space. For some reason.

Look at Earth. Look at Spain, which Paldea is supposed to mimic.

I overlaid Spain over Paldea and made them roughly the same size. Assuming the two to be 1:1, the OCEAN is bigger than Earth.

If I then take that size and apply it to the skysphere:

HI. WHY IS THIS A THING.

The skysphere is bigger than the PROPORTION OF THE SUN TO THE EARTH:

I will be taking this as canon sizing until the Pokémon Company comes out and either CULLS this monstrosity and stops forcing our Switches to render THE SUN, or until the Pokémon Company comes out and gives us a canon planet size.

*includes all non-cishet gender and sexual identities. Feel free to comment or tag your Gay Realization stories.

Tbh mine was prepubescent and arrived in 2nd grade when I started flipping through a children’s illustrated copy of The Iliad and saw a picture of a muscle-bound Hector holding up his infant child Simba-style and I thought “oh my god, I want him to hold me up like that?? 😱”

Around that time I also thought it would be cool for Machamp to hold me bc he has four arms (double the holding!), and I low key thought I could fix Vegeta

Sad to be the one to tell y'all, but aborted children and children died before christening don't get into heaven. They go to the Limbus, the outermost circle of hell, where the souls go who are exempt from paradise without it being their fault

You need to update your sources

Since 2007 unbaptized children go to heaven and limbo doesn't exists anymore

Avatar

mf aint even read the patch notes

lmfao this is so funny 😭

OH MY GOD. HE STOPPED GETTING IMPRESSIONS BECAUSE HE PAYWALLED THE API

AHAHAHAHAHA

I’d assumed his followers were mostly bots because his feed is deeply boring, but I’d never put 2 and 2 together before.

YOU KILLED YOUR BOT FOLLOWERS IN COLD BLOOD MY DUDE

HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA*deep breath*HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA

Could you explain this to me so i can appreciate how funny this truly is?

Yeah, I’ve never written a Twitter bot before but let me give it a shot based on my understanding of what happened.

APIs are kind of complicated to explain to someone who’s never coded for web before, so I’m just going to explain the bits that are relevant to this issue.

Probably the most important thing to know is that websites operate on two levels: the visual interface, which is how humans interact with a website and involves buttons and pretty colors and nice fonts and fights over how many px wide a border should be. And then there’s a more computery level where, eg, the text you typed into the interface actually gets packaged up and saved to a database somewhere and then retrieved and displayed.

There are a lot of different ways to make this background computer-doing-computer-things part of the website. For simple websites that won’t be updated much you can get away with a very simple version that’s just built from a couple of relatively simple scripts and html documents. However, once you’ve built a website that’s complex and going to be updated frequently, particularly by users, an API helps manage those actions and make internal updates and expansions easier.

An example: Let’s say leaving a ❤️ on a tweet actually requires 3 actions in the background: you have to tell the database(s) that store twitter information 1) the user id of the person who is leaving the ❤️ and the user id of the person who is receiving it 2) you have to check that the person leaving the ❤️ is not blocked by the person receiving it (they have permission to leave ❤️s on that account) and then 3) save the actual ❤️ to the Twitter database. Rather than making the user do those three actions on their own, the API has a “leave a ❤️” option that you can just send two usernames to and it does all those steps for you.

Companies can decide how much of their API is open to the public. I’ve never had to set up this but of a website on my own, so I’m not as clear on how this works (maybe someone else can weigh in). But there are ways of making an API’s actions only available to the website’s devs and the user interface. Or you can chose a subset of the API’s actions and allow them to be used by anyone who knows how to write a script that can interact with them. That free-to-use part of the API is called an “open API”.

Up until very recently, Twitter had an open API. It had a lot of different uses. Some people used it to run anti harassment tools. Others used it to scrape data. And you could write Twitter bots to use it. I followed a bunch of bots that tweeted images of art by various artists. (Mikhail Vrubel and Remedios Varo were two favorites I discovered through those bots.) And of course it was also how fake followers and harassment bot armies of various descriptions also used Twitter.

But then

On February 2, Elon announced that the Open API, which up until then had been free, would abruptly become a paid service, effective February 9. Basically everyone who used the open API was incensed: One week is not really enough time to decide if you want to (or have) the budget to suddenly start paying for something you weren’t paying for before. A lot of people who wrote just-for-fun bots had to suddenly let them die. Some peoples’ security tools were rendered useless. Elon was banking on people paying to continue using the service anyway, but it was pretty clear that what was actually going to happen was everyone would use Twitter even less than they had before.

And as we all remember, the rollout of this pay-to-play option went super well and Twitter definitely did not accidentally revoke its own API access when it first implemented the paywall. 😆

Three days later…

The Super Bowl 🏈

As we see above, Elon’s followers are MOSTLY bots. Who knows what kind. Maybe some are are purchased, some may be part of various far right bot armies, etc. How many of those bot owners decided to pay to keep the bots going? How many of them even still have control of them after an utterly disastrous pay-to-play rollout?

Of course Elon got surprisingly low engagement on a Super Bowl tweet!

He killed 70% of his followers 3 days before.

Pretty good explanation of APIs! And I'm chortling with glee at Elongated Muskrat's self-own.

Deep Space Nine 2x5, “Cardassians”

Keiko does not have time for your space-racism, Miles.

Why is she with him

The cynical side of me would say that the answer is “because the show writers said so”

But I think another answer is, Because Miles proves himself open to being corrected. He isn’t too proud or defensive (or bogged down by toxic masculinity) to listen when people call him out on bigoted bullshit: he listens. Keiko is with him not because he messes up so bad sometimes, but because when he does mess up, he stops, and thinks, and behaves better in the future.

I also appreciate the comments from @firespirited and @onsomekindofstartrek on how the ethnicities of the actors of Keiko and Miles influence this scene, so be sure to check those out in the notes y’all!

Someone had to be the “bad guy” exhibiting the bigoted view for this important scene to take place, and I appreciate that Miles’ actor was willing to play that role. Together, these two skilled actors create a compelling scene that demonstrates to viewers 1) that alluding to the “bad breeding” of any group is very wrong indeed in any context, and 2) that one effective method for calling out bigotry in loved ones is simply to express disgust and disappointment in them, because if they truly respect you they’ll get the message and fix their attitude.

There’s also 1) the fact that O’Brien is saying this because his role on DS9, narratively speaking, is to be the everyman, the representative of the ‘guy on the ground,’ the average person. The average person has these kinds of bigoted views that they don’t recognize until it is pointed out to them, and NEED to be called out.

And 2) O’Brien saying this is also a bit of character continuity - when the Cardassians were introduced in TNG’s “The Wounded,” it also introduced that the Federation and the Cardassians had been involved in a war against one another, O’Brien being on the ground during what is commonly referred to as “the Setlik III massacre,” where Cardassians, believing the Federation colony to be a military outpost, wound up slaughtering a population of civilians. Brutally. O’Brien’s captain at the time lost his entire family in it. O’Brien later admits to a Cardassian officer “I hate what I became because of you” in response to what he went through that day - when he had to kill a Cardassian soldier, the first time he’d ever killed. 

And, particularly at this point, several years after marrying him, after living on a Cardassian-designed station for over a year, Keiko surely knows this. So she understands why he said what he said. But she is not going to condone it. She’s not going to let that he said it get a pass. She will call him out for his words, even knowing where they come from.

And on top of that, he’s saying this in front of, or near a child who was abandoned by his people on a world full of people who hate him for his species. He’s heard this, and worse, about himself all his life.

It’s one thing for Miles to let stray comments like this slip in privet conversation lightyears away from the nearest person effected by it. As has been pointed out, Keiko would understand this comes from a place of pain and trauma.

But it’s another to say this about an innocent child in his presence. Or the presence of their daughter where she could learn this ugliness.

This is an excellent piece of exposition on a very important scene between these two characters. Not only does it set up the dynamic of their relationship for the rest of the show, but it also gives O'Brien’s character room to question his assumptions about all Cardassians, and to realize that the average Cardassian citizen is not the evil incarnate he had made them out to be.

O'Brien does and should still hate the Cardassian military, and the Obsidian Order, but he realizes the average Cardassian citizen is not at fault for Setlik III, is not at fault for the occupation of Bajor, is not to blame for the war between Cardassia and the Federation which took place, I believe, around the beginning of TNG. Cardassia is a fascist militaristic dictatorship, and the citizens suffer just as much, though in different ways, as those Cardassia has oppressed and waged war with.

O'Brien’s newfound understanding can be seen in his interactions with Gilora Rejal; he’s not openly hostile, as he is whenever faced with Dukat or even Garak, because she’s a civilian scientist, and engineer like he is, just trying to get the bits and bobs of the station to function in order to achieve a goal. Hes willing to listen to her suggestions, and work alongside her (when she lets him). Even the awkward scene where it’s revealed he’s been flirting unknowingly with her is a huge step for him, because he’s not outright disgusted like he might have been in TNG.

O'Brien’s not perfect, not even as the ‘every man’; but the character growth we see from him is refreshing for a straight(?) white male character from the 90s. His willingness to look past his pride and change for the better is testament to that in and of itself.

Allow for regular people to not be perfect and to grow from it, like he does. That’s good writing.

Miles has PTSD-type issues related to Cardassians. He was in the Federation-Cardassian War. That captain he served under then had his family killed by them. He’s going to have some realistic bigoted generalizations. But Keiko calls him out on it, and she does so in a way that’s not calling him a bad person, because he’s not. She knows about his issues.

And he paid attention. That’s what’s important.