Live data from Hacker News

Super Mario 64's invisible walls explained [video]

youtube.com

41–49 of 49 posts

Re: Super Mario 64's invisible walls explained [video]

#41
post #40
post #17

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…

Videos like these can also be a fantastic way of introducing viewers to CS and math topics that they wouldn't otherwise have been exposed to. The video game theme gets them in the door; the detailed analysis teaches them some things which are applicable beyond that game.

Re: Super Mario 64's invisible walls explained [video]

#42

I 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…

> 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?

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]

#43
post #20

Earlier 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.

Good PhD theses are usually the opposite, they are lengthy to be approachable by a non-expert, unlike ordinary research papers.

Re: Super Mario 64's invisible walls explained [video]

#44

I 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…

Psychologically speaking my knee jerk diagnosis would be that you have an ego problem. Some random guy out there does something that doesn’t have anything to do with you, but you feel “attacked” because it makes you question your own lifestyle and values.

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]

#45

Earlier 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…

Who says he doesn't? Stop being so judgemental, get your nose out of others business. He may have a more fulfilling life than you even. Go find a hobby you actually enjoy instead of harassing someone whose found theirs.

Re: Super Mario 64's invisible walls explained [video]

#46

I 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…

> Yes, they aren't hurting anyone, and yes they're following their passion

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]

#47

I 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]

The comment you’re responding to is trying to genuinely explore their beliefs and it’s kinda gross for you to shit all over it in an ostracizing way. If you disagree then engage with your perspective without being unkind. The style of your response is in general the root of many society’s problems and I would have thought someone who espouses mind expanding practices would be better aware of that

Re: Super Mario 64's invisible walls explained [video]

#48

Earlier 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]

Crossing into personal attack will get you banned here, so please don't do that.

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]

#49
My summary:

The 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.

Post reply on HN