Earlier quoted context omitted.
it's a surprisingly deep topic involving Super Mario's 64 game mechanics such as "quarter steps", integer arithmetic, float-to-integer conversions, the chosen collision detection implementation and plenty more. There are eight different causes that manifest in the observed "invisible wall" symptoms. I find the level of detail given appropriate, and consider it as a valuable insight into game engine design as it was a…
I also think it helps to appreciate the historical context: this game was a major milestone in the development of the 3D platformer genre. Some of the bugs or treacherous optimizations may look naive to us now, but there had been few if any opportunities to make those mistakes prior to Super Mario 64. And in spite of the glitches, the game managed to be a huge success and highly influential even outside the platforme…
Super Mario 64's invisible walls explained [video]
41–49 of 49 posts
Re: Super Mario 64's invisible walls explained [video]
#42I don't mean to knock this video or anyone that gets a kick out of it. But does anyone else feel a sense of despair when they see that someone has put so much time and effort into something like this? I feel the same about speedrunners. Yes, they aren't hurting anyone, and yes they're following their passion, but I still feel an instinctual sense of despair when I see someone work so hard on something like this. I'm…
No, but I feel a sense of despair when someone is so solipsist as to consider their own values as some kind of objectivity against which to measure others.
Re: Super Mario 64's invisible walls explained [video]
#43Earlier quoted context omitted.
I skimmed it and it’s trying to be the authoritative “phd thesis” on the topic. Still, many sections felt far too wordy and long. Technical communication is a difficult skill.
True. If he wanted to make it a proper phd thesis he'd use language to muddy the waters so no one could understand what he was saying.
Re: Super Mario 64's invisible walls explained [video]
#44I don't mean to knock this video or anyone that gets a kick out of it. But does anyone else feel a sense of despair when they see that someone has put so much time and effort into something like this? I feel the same about speedrunners. Yes, they aren't hurting anyone, and yes they're following their passion, but I still feel an instinctual sense of despair when I see someone work so hard on something like this. I'm…
And no, please don’t take substances to fix psychological issues that just take some awareness and reflection.
Re: Super Mario 64's invisible walls explained [video]
#45Earlier quoted context omitted.
This is probably the most condescending comment I have read on HN all year.
Condescending is feeling sorry for someone who is doing brilliant shit because it's a waste of time, they should be bettering themselves. Like working harder at their job, or having a normal hobby like playing golf or watching football or fishing. You know, normal things like I do. It just seems so sad they what they are doing is a waste of time. Sorry I didn't add a "I don't mean to be a dick" comment like parent di…
Re: Super Mario 64's invisible walls explained [video]
#46I don't mean to knock this video or anyone that gets a kick out of it. But does anyone else feel a sense of despair when they see that someone has put so much time and effort into something like this? I feel the same about speedrunners. Yes, they aren't hurting anyone, and yes they're following their passion, but I still feel an instinctual sense of despair when I see someone work so hard on something like this. I'm…
Good, you're able to explain why it shouldn't bother you. The next question is why does it bother you? Any explanations from your side?
Re: Super Mario 64's invisible walls explained [video]
#47I don't mean to knock this video or anyone that gets a kick out of it. But does anyone else feel a sense of despair when they see that someone has put so much time and effort into something like this? I feel the same about speedrunners. Yes, they aren't hurting anyone, and yes they're following their passion, but I still feel an instinctual sense of despair when I see someone work so hard on something like this. I'm…
[flagged]
Re: Super Mario 64's invisible walls explained [video]
#48Earlier quoted context omitted.
I feel very deeply that my life is full of meaning, so it can't be projection. Not interested in trying to suppress my feelings with drugs either.
[flagged]
If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and taking the intended spirit of the site more to heart, we'd be grateful.
Re: Super Mario 64's invisible walls explained [video]
#49The mesh for rendering and the mesh for collision detection are separate, so the first cause of "invisible walls" is just that a wall exists in the collision mesh but not in the render mesh.
The other causes are mostly all because of tiny gaps in the level geometry. The game doesn't want to let you go somewhere where there is no floor below you, or there is a ceiling below you with no floor between you and the ceiling. (A floor is just a collision tri with normal pointing up, a ceiling is one with normal pointing down.) If you try to move into one of these places, you hit an "invisible wall". Tiny gaps in the level geometry (eg. tiny misalignments of vertices) can create these places with no floor below them.
The fact that collision detection is done with integer math, combined with certain geometric situations, make the game particularly prone to small gaps around the edges of platforms. The bulk of the video classifies these geometric situations in detail.
The game does not do continuous/swept collision detection, but moves Mario in discrete steps. You only hit the "invisible wall" if you are unlucky enough to land exactly on the gap at the end of a step, which is why you only seem to hit them sometimes. This is the same reason you can pass through regular walls when you move fast enough.
An exacerbating factor is a bug in the "check for floor under Mario" routine that the video calls "floor overshadowing" (the decomp calls it "surface cucking"). The game searches for the floor under you from highest to lowest, returning the first one below you... except there's no actual way to order tris in 3D space from "highest to lowest" (it uses the height of the first vertex in the tri). So a tri earlier in the list can "cuck" the correct tri later in the list, which can result in a floor between Mario and a ceiling not being found even when it exists.