lupi

cow of tailed snake (gay)

avatar by @citriccenobite

you can say "chimoora" instead of "cow of tailed snake" if you want. its a good pun.​


i ramble about aerospace sometimes
I take rocket photos and you can see them @aWildLupi


I have a terminal case of bovine pungiform encephalopathy, the bovine puns are cowmpulsory


they/them/moo where "moo" stands in for "you" or where it's funny, like "how are moo today, Lupi?" or "dancing with mooself"



Bovigender (click flag for more info!)
bovigender pride flag, by @arina-artemis (click for more info)



MOOMANiBE
@MOOMANiBE

that video on mario 64 invisible walls is incredibly impressive but also I feel like the sheer amount of "for some reason"s and "this game is soooo glitchy and buggy" comments in the video are going to do a lot of work disguising the fact that every single one of these optimizations are probably the only reason ANY of that shit runs on the n64 hardware to begin with

experienced gamedevs didn't take these shortcuts for fun, they likely were under signifiant time pressure, under a shifting technical landscape, and trying to optimize for complex collision on a processor whose clock speed is significantly outdone by any post-2007 graphing calculator

the fact that by and large ONLY speedrunners see these issues is frankly a real testament to how well they did


You must log in to comment.

in reply to @MOOMANiBE's post:

Agreed. Learning how they were doing collision checks for terrain combined with the fact that I genuinely can't remember ever encountering issues with it as a child blew my mind. I really don't love how speedrunners talk about games on a technical level.

I always found it strange, because by all intents, DOOM is "hella buggy" in a lot of the same ways, and even worse in some cases, but the overwhelming majority of DOOM speedplayers, competitive or otherwise, seem to understand the shortcomings as part of the system and not chastise the developers for the choices they made at the time.

maybe partly because the Doom engine is open source so there is a lot of relatively easily accessible information available as to how and why it works the way it does? while Nintendo is very tight lipped about all of their development, and has historically garnered much stronger criticism

have you seen any of the videos from the guy doing the big speedup romhack? kaze emanuar, i think. he's very much on team "look they were doing the best they could as some of the first programmers on this system, and with 30 more years of knowledge of that hardware, that's why i can do this" in a lot of his videos on the subject, and it's incredibly refreshing

I've always appreciated that about Kaze Emanuar; taking the time to implement these incredible optimisations but recognising that a lot of these techniques were just not known at the contemporary moment when M64 was written, and that certain compiler modes were left unused because the trade-off for speed was overall stability. Very informative and you still get the satisfaction of seeing it all blaze along at 60Hz on real hardware!

I'll note, I still remember when CodeWarrior shipped their first "optimizing compiler", and everybody's code broke at first. That was a few years after Mario 64 shipped. Probably SGI's compiler was more mature than CodeWarrior's, and probably Mario 64 could have shipped with the optimizing compiler on, and we don't know whether it being turned off in M64 was intentional or an oversight— but if they'd been for much of development QAing it with the optimizer off, how hard would it have been for QA to determine it was the same when you turned it on?

Well, we know that a source tree that compiles to the same binary could be run with compiler optimizations with no observable issies, and also that they were confident enough to turn them on for the PAL release. I doubt anyone would have even noticed if not for a couple of other errors of the "good enough next task" type.

Yeah, I felt that especially when he was kind of talking shit about "copy and pasting" stuff. Like, why would you design and model four different individual stone platforms or whatever when you can just make one and put it in a few different places?

like it's not lazy, it's CLEVER

https://gamerant.com/halo-3-covenant-level-rocks-all-the-same/

take a look also at the Sea of Clouds in FFXIV; a look at the map reveals where several pieces of level geometry are used in multiple places, rotated and redecorated, but you'd never really notice while you're on the ground (as it were)

Elden Ring doesn't even bother with the redecoration; there's several places in the game where they just flat-out reused the same scenery objects without any real change, but again it only stands out because so much else is unique

I /love/ seeing games broken open by speed running, like Mario 64 or Ocarina of time, but the fact that people will call them "Hella buggy" "glitchy" ect even though 99% of the tricks used would never be encountered by a regular player always bugs me.

I speedrunr Virtual Hydlide at the 'highest level' and I've tried to move away from a model of talking about it like the devs were idiots and fools and blah blah blah. Like, yeah, the framerate is terrible, and it's pretty obvious why, but under constraints, reusing a 3D engine you already have working is not completely silly... except it was a golf engine. sucks air through teeth

honestly, I think they weren't even aware of the case of these floor/wall/ceiling leaks and misalignments - and probably encountered "invisible walls" themselves, but chalked it up to incredibly rare floating point glitches (which is sort of true) and didn't have time to investigate.
had they known that they even existed, they'd have probably had tooling to prevent it.

as it stands, the way they implemented physical/interactible world surfaces is honestly clever and maybe not the best way to do it, but the best way they knew how to for sure, considering they likely invented that technique from first principles.

it reminds me of ppl talking about gen 1 pokemon where its like, "the fact that all of these glitches Do This is actually a testament to how hard it is to just crash pokemon" where its like, the parallel universes from the classic pannenkoek video is like, "its so cool that the game loads in a fake version of the level instead of going "you are in a place that doesnt make sense im going to crash now"

It doesn’t really load or spawn the parallel universes; they’re just a phenomenon created by using short ints (which have a maximum value they can represent) to store coordinate data that’s being used to check for collisions. When given unexpectedly large coordinates as Mario goes far away from the actual level itself, the coordinate values used for collision checking loop around after hitting the max those variables can represent, which then produces a “parallel universe”. None of them really “exist” to the game at all, and nothing is being loaded or spawned or anything.

I don’t think this is even an intentional behavior designed to prevent crashes; they just never expected this case to ever happen since no level is nearly big enough to reach the maximum coordinates that can be stored in short ints.

honestly I've started closing videos when the person making them gets all negative about an old-ass game with optimizations they couldn't even dream of

like, okay bro let's see your ass go back to the 90s and write good games within the limitations of the n64. I'll wait

And this was a launch game! They weren't even totally familiar with the hardware yet, and were probably developing the game on constantly-shifting hardware over the course of development.

yeah like a number of these optimizations smell like late-on additions to me, ESPECIALLY the one where height object sorting is determined by the relative heights of the objects' first vertices; that's the kind of optimization you add because it turns out you can't do something more complex in realtime and then you beg your testers to "tell me if you see anything weird as a result"

Yeah, that would make a lot of sense. Especially given, again, it's a launch game - being tied to the hardware meant they had a release date set in stone, and there comes a point where you're doing whatever you possibly can to get it working in time for a hard deadline you can't move.

Also something reeeaallly worth observing is that it takes an INCREDIBLE amount of what looks like special-casing if you just write out the algorithm to make physical game mechanics feel "natural".

I agree with this real hard about Super Mario World (so many people say it's super buggy but they're doing crazy nonsense that took 30 years to learn, c'mon), but the invisible wall video hit differently for me! I don't play SM64 that often, and I still remember a couple of these hitting me back in the day. Like yeah that actually is buggier than I thought, and now we know why instead of just "this game is broken"! It feels different to me than the parallel universe-level stuff that's totally outside the realm of normal behavior.

I love that they're bugs caused by a physics system cobbled together by people making one of the first 3D games that worked well 99.9% of the time, and then broke horrendously in a few places. I spent half the video thinking "oh god would I have even tried to fix this if I was working on this game and I caught it."

you see this in modding occasionally as well and I've definitely taken part in it before, i think once issues become obvious to you it's very easy to forget these don't come up in normal playthroughs and because "the developers" often become more of a concept than a group of people, and so it's easier to get more toxic about the stuff you get hindsight on (especially since often there's a feeling of "ok these guys got paid to do this stuff, we're doing it for free and we know their game better than they do, they must suck etc etc!)