How Modders fight Mario 64's Biggest Problem

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 เม.ย. 2024
  • Patreon: / kazestuff
    Streams: / @kazeclips
    🐦 / kazeemanuar
    MERCH: kazemerch.myspreadshop.com/all
    New step function: • I removed SM64s collis...
    Pannen's video: • SM64’s Invisible Walls...
  • เกม

ความคิดเห็น • 530

  • @KazeN64
    @KazeN64  12 วันที่ผ่านมา +326

    Since people keep suggesting to just put a death barrier under levels, here are 4 reasons why that's a bad idea:
    1) You can now fall through the level into the death barrier when there would be holes.
    2) Those holes are harder to detect and will be less likely to be caught before release.
    3) Slanted walls/floors with vanilla physics can be clipped through pretty easily - the death barrier under the level would make this a lot easier and players would end up clipping into the level all the time.
    4) It's more triangles = more RAM = less vroom vroom

    • @dazcar2203
      @dazcar2203 12 วันที่ผ่านมา +9

      death barriers are usually one big square, i.e. two triangles. does that really have much of an impact on performance?

    • @KazeN64
      @KazeN64  12 วันที่ผ่านมา +28

      ​@@dazcar2203 its 1 extra nodes per cell and 1 extra iteration per cell. probably like 4us of data throughput more in an average frame and 32kb of extra data used

    • @Edamori
      @Edamori 12 วันที่ผ่านมา +1

      How does adding a death plane make clipping easier? Is it because there's no longer OoB walls holding you back after you've worked your way through a slope?

    • @Edamori
      @Edamori 12 วันที่ผ่านมา +2

      Btw I think 3 is the only real concern here, 1 and 2 can both be solved by fixing geometry before applying the death barrier (or the simple fact that most seams are hard to fall into unintentionally), and the death plane is 2 more triangles at most which with modern hardware is a laughable amount of process power lost and certainly more than handlable for an N64. Preventing all invisible walls in 5 minutes at the slight cost of speed and with some seams remaining is more than reasonable as a tradeoff versus spending hours of your life debugging and fixing geometry.

    • @KazeN64
      @KazeN64  12 วันที่ผ่านมา +14

      @@Edamori sure but why take a patchwork fix when you can apply a very real fix like i describe in the video.
      If you've ever played sm64 x banjo tooie (the one made in 2015ish?) and beat glitter gultch mine you'll see why a patchwork fix is not good enough unfortunately

  • @kimgkomg
    @kimgkomg 13 วันที่ผ่านมา +1532

    Now we just need Tom Scott to make a video on Britain's oldest invisible wall and my invisible wall hunger will be complete

    • @RedUmbre
      @RedUmbre 13 วันที่ผ่านมา +91

      an in depth analysis of the history of mimes is in order

    • @charlesnathansmith
      @charlesnathansmith 13 วันที่ผ่านมา +143

      "You cannot see it. It's not on any map. You wouldn't even know.. it's.. there" *slow pan over to nothing*

    • @lucbloom
      @lucbloom 13 วันที่ผ่านมา +30

      RIP Tom Scott’s posting regiment

    • @sosukelele
      @sosukelele 13 วันที่ผ่านมา +29

      ​@@charlesnathansmithanother perfect Tom Scott parody promt

    • @donaldpetersen2382
      @donaldpetersen2382 13 วันที่ผ่านมา +17

      He'd need an invisible train to yell over in the background.

  • @hps362
    @hps362 13 วันที่ผ่านมา +751

    I was thinking of exactly this after the Pannen video. Then again, I've seen Simpleflips die to nothing enough times to know that invisible walls at the very least exist in some older ROMhacks.

    • @KazeN64
      @KazeN64  13 วันที่ผ่านมา +334

      yeah if anything they are more common in romhacks - because romhacks typically have more complex geometry and don't align all their stuff to world axis.

    • @coach7304
      @coach7304 13 วันที่ผ่านมา +8

      ​@@KazeN64I subscribed to your TH-cam channel

    • @QnjtGWonQNqVsbYyzjx4
      @QnjtGWonQNqVsbYyzjx4 13 วันที่ผ่านมา +9

      @@KazeN64maybe you can try to rewrite mario 64’s collision type detection next

    • @theinbunch1380
      @theinbunch1380 13 วันที่ผ่านมา +10

      Shoutouts to Simpleflips

    • @MrGamelover23
      @MrGamelover23 12 วันที่ผ่านมา +3

      ​@@KazeN64You've already basically completely rewritten the game from scratch, so maybe you could rewrite the collision detection system?

  • @fancy_tord5175
    @fancy_tord5175 13 วันที่ผ่านมา +213

    according to sm64 logic, the leaning tower of Pisa might be home to the largest and most famous invisible wall, as the wall that leans in doesn't stop the out of bounds hitbox from leaking through
    (spelling error, logic error check in progress)

    • @maxtes252
      @maxtes252 13 วันที่ผ่านมา +70

      No, it leans far enough for the wall to actually be a ceiling. However, there are tons of little details that would let ceilings leak through even if it wasn't leaning

    • @radiationgaming889
      @radiationgaming889 13 วันที่ผ่านมา +20

      @@maxtes252 ah then we must see if the other side is floor and if it is subjected to floor overshadowing

    • @redtaileddolphin1875
      @redtaileddolphin1875 12 วันที่ผ่านมา +23

      pannen showed the to scale leaning a wall can have before becoming a floor and it’s pretty fuckin slight so as much as I’d LOVE to see someone bonk above the leaning tower I think that one’s safe..
      but are its vertices aligned?

    • @fancy_tord5175
      @fancy_tord5175 12 วันที่ผ่านมา +13

      @@redtaileddolphin1875 just remembered that, gotta reword that
      considering it's circular/tube like shape, the walls would probably be on 2 of the sides, not the exposed lean-in side of the wall. unless the scale of wall and floor angles were increased for that wall to qualify as a wall surface

  • @Altimos
    @Altimos 13 วันที่ผ่านมา +390

    Yeah, making an invisible wall free version of Mario 64 would be great, but y'know what would be better? Chaos Mario 64: Bonk Edition where practically every vertex in the game is misaligned just enough to make small 1-unit wide invisible walls EVERYWHERE.
    That would be a monumental task though.

    • @cadelisowe4887
      @cadelisowe4887 13 วันที่ผ่านมา +40

      Maybe an easy way to do that would be to automatically adjust the x,y,z coordinate of each vertex ± 5 units or something crazy small

    • @RipleySawzen
      @RipleySawzen 13 วันที่ผ่านมา +84

      @@cadelisowe4887 ±1 unit would be more then enough to cause this chaos. Also adding random ceilings everywhere on the floor.

    • @aprilnya
      @aprilnya 13 วันที่ผ่านมา +48

      just make the collision check return that theres a ceiling 1% of the time :3c

    • @bigbang2a
      @bigbang2a 13 วันที่ผ่านมา +7

      @@RipleySawzen That sounds so evil, I love it

    • @3lH4ck3rC0mf0r7
      @3lH4ck3rC0mf0r7 13 วันที่ผ่านมา +37

      It could be an effect of Mario 64 Chaos Edition to randomly set Mario to the hard bonking animation state. No need to change any collision :)
      It would be even funnier, since then he could randomly bonk on nothing while standing completely still, or completely ruin a jump by bonking midair. For bonus points, if Mario was on the ground as the effect triggered, set his Y speed to be positive so he gets some airtime from the earth-bonk.

  • @joan_bros_speedrun
    @joan_bros_speedrun 13 วันที่ผ่านมา +505

    As a hack creator, this is way more annoying for the creator to have invisivle wall in his level than for people who play it, the slopes invisible wall is the worst one definitly

    • @DouglasZwick
      @DouglasZwick 13 วันที่ผ่านมา +28

      Hey, don't be so hard on yourself, I mean I haven't seen your stuff, but I'm sure you're not a hack

    • @Tony_Goat
      @Tony_Goat 13 วันที่ผ่านมา +8

      ​​​@@DouglasZwick When he said he's a hack creator, he means "I create hacks for Mario 64" (e.g. custom maps/ROMs).
      Edit: Typo

    • @DouglasZwick
      @DouglasZwick 13 วันที่ผ่านมา +24

      @@Tony_Goat I was joking, but I appreciate your comment!

    • @mochafennec
      @mochafennec 12 วันที่ผ่านมา +4

      @@Tony_Goat It was so, painfully obvious that it was a joke. Please update your sarcasm detector's drivers

    • @lpfan4491
      @lpfan4491 12 วันที่ผ่านมา +2

      @@mochafennec It really wasn't. You wouldn't believe the amount of people who would actually read "hack creator" like that.

  • @benjaminoechsli1941
    @benjaminoechsli1941 13 วันที่ผ่านมา +429

    "I'm sure people would love a patch that does nothing but remove this problem. Someone, get on that." 🗿

    • @angeldude101
      @angeldude101 13 วันที่ผ่านมา +41

      This would be easier to make if Kaze released his source code so people could copy from it.

    • @BigBinky3000
      @BigBinky3000 13 วันที่ผ่านมา +35

      @angeldude101 Yeah I always got the vibe that he just doesn't want anyone doing better than him

    • @mariotheundying
      @mariotheundying 13 วันที่ผ่านมา +96

      ​@@BigBinky3000 or just "it'll be released after I'm done with the hack"

    • @sfc0450
      @sfc0450 13 วันที่ผ่านมา +53

      Coming from Kaze, it sounds like code for "Yeah, I might take a crack at it when I have more time"

    • @DengueBurger
      @DengueBurger 13 วันที่ผ่านมา +3

      @@BigBinky3000yeah I wonder why he doesn’t release it. Maybe he just wants to get paid for all of his work doing that, not just give it away for free online.

  • @Tom-jw7ii
    @Tom-jw7ii 13 วันที่ผ่านมา +63

    It’s amazing the programmers decided it would be better to work around these bugs rather than fix them. Especially the floor overshadowing; imagine how many times the level designers had to reorder vertices to prevent the same bug over and over without ever realizing their job could be so much easier!

    • @harmhoeks5996
      @harmhoeks5996 13 วันที่ผ่านมา +14

      Sometimes gonna finish 🏁

    • @OhKayEl
      @OhKayEl 12 วันที่ผ่านมา +8

      Just goes to show how much of a threat the PS1 was back in the day 😂

  • @dreigon31
    @dreigon31 13 วันที่ผ่านมา +229

    First a pannen video on this now a kaze video on it, sm64 community eating good rn

    • @retrokoh1507
      @retrokoh1507 13 วันที่ผ่านมา +13

      Feeding families

    • @digi3218
      @digi3218 13 วันที่ผ่านมา +3

      Dang how did you know I just had whataburger

  • @iwersonsch5131
    @iwersonsch5131 13 วันที่ผ่านมา +51

    The final boss is a convex corner between two walls in a wallkick section

    • @KazeN64
      @KazeN64  13 วันที่ผ่านมา +17

      i think frame's rounded walls patch fixed that!

    • @iwersonsch5131
      @iwersonsch5131 13 วันที่ผ่านมา +14

      @@KazeN64 i have to disagree, rounded corners hold you back on crossovers, all while not giving you any feedback cue for what is happening, making them worse than vanilla imo

    • @KazeN64
      @KazeN64  13 วันที่ผ่านมา +15

      ah, i thought we were worried about invis walls only there. yeah i imagine getting rounded on those corners is not a great experience in kaizo hacks like that

    • @galoomba5559
      @galoomba5559 12 วันที่ผ่านมา +1

      Isn't that already fixed by removing quarter steps? Or to stay more vanilla, just don't allow the wall reference to be deleted in a quarterstep?

    • @iwersonsch5131
      @iwersonsch5131 11 วันที่ผ่านมา

      @@galoomba5559 That works for glitchy bonks, but there can also be other stuff like indefinitely getting pushed to stay in the corner, and if the floor extends further out than the wall you end up with a deathpixel or at least an edge that will give you a false sense of security for crossovers

  • @snoergee
    @snoergee 13 วันที่ผ่านมา +88

    It would be cool to have a mod that helps modders see hitboxes like in pannens video, so you could see them leak out

    • @weirdboo
      @weirdboo 12 วันที่ผ่านมา +5

      That's what I was thinking the surprise would be at the end of Pannen's video.

    • @StraightOuttaJarhois
      @StraightOuttaJarhois 10 วันที่ผ่านมา +3

      It wouldn't be possible for a mod, because you'd need to raycast on every unit of the map to discover where they are, which is far beyond the N64's capabilities. Perhaps with an emulation tool, which is how I assume Pannen did it, though who knows if it even runs in real time.

    • @animowany111
      @animowany111 10 วันที่ผ่านมา +4

      @@StraightOuttaJarhois I'm pretty sure Pannen used the sm64pc port source to make the visualization tool

  • @B4naNaMast3r46
    @B4naNaMast3r46 12 วันที่ผ่านมา +8

    this is EXACTLY the followup we needed after the inviswall video put the fear of an unjust god in our hearts

  • @foxdancemedia
    @foxdancemedia 12 วันที่ผ่านมา +18

    I know I'm a huge nerd for pointing this out but the vertices aren't rounded, they're truncated. Rounding would set the value to the nearest whole number, but instead they convert it to an integer by just discarding everything after the decimal point. This means the vertice would always be set to the next-lowest coordinate value; for instance, 12.9 and 12.1 would both be converted to 12.

    • @MateusSFigueiredo
      @MateusSFigueiredo 6 วันที่ผ่านมา

      Rounded down

    • @TheRedSmarty
      @TheRedSmarty 6 วันที่ผ่านมา +3

      ​​@@MateusSFigueiredo Negative numbers round up when truncated. Rounding towards 0.

    • @MateusSFigueiredo
      @MateusSFigueiredo 6 วันที่ผ่านมา

      @@TheRedSmarty oh nice, thanks

  • @keiyakins
    @keiyakins 13 วันที่ผ่านมา +93

    I wonder if at some point in development they planned Doom-like no-slopes geometry, because none of the errors would crop up with only perfect vertical walls.

    • @coach7304
      @coach7304 13 วันที่ผ่านมา

      I subscribed to your TH-cam channel

    • @gideonrabson4600
      @gideonrabson4600 13 วันที่ผ่านมา +30

      The edge vertex issues would still exist for stairs and the like.

    • @videopsybeam7220
      @videopsybeam7220 13 วันที่ผ่านมา +12

      and by the time they'd abandoned that idea, the code was already written. granted, it'd have to have been pretty early in development, perhaps at the very beginning, since even the earliest beta levels discovered have slopes. but who knows?

    • @widget5963
      @widget5963 13 วันที่ผ่านมา +14

      @@videopsybeam7220 could also be they just wrote the majority of the code for a very alpha "here's a floor and some boxes" test environment... then never updated it.

    • @ricarleite
      @ricarleite 12 วันที่ผ่านมา +6

      Mario 64 was a mess of a development. Parallel teams contradicting each other, rushed dev, cut content at the last moment, an incomplete hardware design, a new method of game design that the team was unaware of how to implement, and Miyamoto in his most tyrannical. The game's code is a mess, a big giant mess held together by code duct tape and luck

  • @ZorMon
    @ZorMon 13 วันที่ผ่านมา +43

    I love how this game is actually a broken mess behind the scenes and still manages to feels almost bug free for the casual players.

    • @nicks.2457
      @nicks.2457 9 วันที่ผ่านมา +1

      N64 games, man

    • @SpanishArmadaProd
      @SpanishArmadaProd 9 วันที่ผ่านมา

      yeah because normal people are trying to play the game as intended and not in some broken way that youre not supposed to be in ...

    • @AmaroqStarwind
      @AmaroqStarwind วันที่ผ่านมา

      Error: You killed Mario

  • @FioreFire
    @FioreFire 13 วันที่ผ่านมา +12

    seeing the awkward earliest solutions to problems that nobody really had much experience dealing with yet back then is always really interesting

  • @jonasskjtt5542
    @jonasskjtt5542 13 วันที่ผ่านมา +81

    Will you ever make a "deluxe" version of SM64 where you implement all the quality of life improvements that is known to you?
    Can't wait for the release of your game!

    • @T.T_CenrryTH
      @T.T_CenrryTH 13 วันที่ผ่านมา +2

      That would be pretty awesome

    • @thisnameisbad3609
      @thisnameisbad3609 13 วันที่ผ่านมา +23

      already confirmed, though after release of the main mod

    • @at13c
      @at13c 13 วันที่ผ่านมา

      check out HackerSM64 its has a bunch of fixes and optimizations for SM64

    • @TakumiJoyconBoyz
      @TakumiJoyconBoyz 13 วันที่ผ่านมา +2

      I'd really love that but for Mario 64 Star Road.

  • @imnbah
    @imnbah 13 วันที่ผ่านมา +52

    Would ALWAYS having a death barrier beneath the level (Even if you can't fall in it) fix ALL Out of Bounds invisible walls?

    • @KazeN64
      @KazeN64  13 วันที่ผ่านมา +81

      sure but then you can fall into it. check out glitter gulch mine in the mario 64 x banjo tooie hack... it tried exactly that

    • @LocalAitch
      @LocalAitch 13 วันที่ผ่านมา +11

      The same vertex misalignment can also cause floor gaps that Mario can get through, making that death barrier reachable.

    • @IkeSMB
      @IkeSMB 13 วันที่ผ่านมา +29

      It does sound like a massive improvement to have 1 unit holes in the ground instead of 1 unit columns of inviswall, especially because it seems like a lot of those holes would be in an unreachable spot right next to a wall.

    • @LuigiXHero
      @LuigiXHero 13 วันที่ผ่านมา +4

      What I was thinking is instead just have a floor a jump height below the level so if you fall into it you can just jump back up.

    • @jlewwis1995
      @jlewwis1995 13 วันที่ผ่านมา +2

      ​@@LocalAitchwell I feel like players accidentally clipping out of bounds by landing or walking in the wrong spot is less bad than having their entire gameplay experience interrupted by an infinitely tall invisible wall thats seemingly there for no reason, so it would still be an improvement

  • @TheBreadPirate
    @TheBreadPirate 13 วันที่ผ่านมา +3

    This is the perfect sequel video to Pannen's video.

  • @JonLipton
    @JonLipton 12 วันที่ผ่านมา +7

    I just realized I’ve been misreading this channel name as “Kaze Emulator” for years

  • @AmaroqStarwind
    @AmaroqStarwind 13 วันที่ผ่านมา +22

    The vertices aren't rounded, they're *truncated*

  • @timmygilbert4102
    @timmygilbert4102 13 วันที่ผ่านมา +8

    To make an invisible wall visualiser like pannen, just rasterize the level top down, at slightly more than the integer precision of vertex, then for each polygon keep track of facing in the rasterize pixel, track the depth span of each wall line at each top down pixel, then draw the vertical span in a regular rendering, to visualize them.

    • @MagicGonads
      @MagicGonads 12 วันที่ผ่านมา +3

      you will have to do this at various heights as some invisible walls are not infinitely tall (and this only finds issues in level geometry, not those caused by objects, unless you want to make a raster view for every possible configuration of objects and heights)

    • @timmygilbert4102
      @timmygilbert4102 12 วันที่ผ่านมา +1

      @@MagicGonads you just rasterize top down back to front, and put a per pixel list of state with depth value, then for each list, you remove data that cancel itself...

    • @gavros9636
      @gavros9636 11 วันที่ผ่านมา +1

      ​@@MagicGonadsseeing as an object collision only exists when you are close enough, and almost always will be triggered by the objects own ceiling you can just cast rays from the objects ceiling straight up that stop when they hit a floor triangle.

  • @AresSon0fZeus
    @AresSon0fZeus 13 วันที่ผ่านมา +20

    I hope one day we can get a fixed ROM to play this game in its final form.

    • @pvzmariosonica8fan
      @pvzmariosonica8fan 6 วันที่ผ่านมา

      Super Mario 64 DS has entered the chat

  • @rabidcopy3052
    @rabidcopy3052 13 วันที่ผ่านมา +44

    This is something I never considered until that video last week. Imagine how many romhacks inadvertently add invisible walls without realizing it. The whole invisible wall thing has shifted my view of the game and has made me somewhat paranoid. They can be practically anywhere.

    • @alumae_star
      @alumae_star 13 วันที่ผ่านมา +13

      At least we know where all of them are for vanilla SM64 now

    • @xX54MXx1
      @xX54MXx1 13 วันที่ผ่านมา +22

      for all I know I could wake up with an invisible wall right above my face

    • @nembyt.a.2841
      @nembyt.a.2841 13 วันที่ผ่านมา +12

      there are misaligned edge vertices under your skin!!! careful not to bonk on them.

    • @galoomba5559
      @galoomba5559 12 วันที่ผ่านมา +1

      Romhacks tend to have lots of invisible walls for the same reasons as vanilla, yeah

  • @retrofraction
    @retrofraction 13 วันที่ผ่านมา +4

    We need all the modding bros to collaborate on a perfect version of SM64.
    Where all it does is fix all of the code and gets the game running locked 60 on actual hardware.
    It would be epic.

  • @3dmarth
    @3dmarth 13 วันที่ผ่านมา +6

    8:13 6 months of freedom from bonking invisible walls! Congratulations on kicking that habit!

  • @fighterguard
    @fighterguard 13 วันที่ผ่านมา +5

    I was hoping you would respond to Pannenkoek's documentary. I knew you already knew about the problem, its causes, and had clever solutions for them in your mods. Thank you for your hard work!

  • @CompleteAnimation
    @CompleteAnimation 13 วันที่ผ่านมา +39

    Are invisible walls still a thing in that SM64 PC port that came out a few years back?

    • @KazeN64
      @KazeN64  13 วันที่ผ่านมา +65

      yes

    • @AlexanTheMan
      @AlexanTheMan 13 วันที่ผ่านมา +56

      It is a straight port, so everything including bugs and flaws has carried over.

    • @Accrovideogames
      @Accrovideogames 13 วันที่ผ่านมา +4

      @@AlexanTheMan It's not. Developers actually took the time to patch bugs and improve quality of life. It's weird no one has patched the invisible walls yet.

    • @AlexanTheMan
      @AlexanTheMan 13 วันที่ผ่านมา +4

      @@Accrovideogames That highly depends on what kind of build you got, I'm pretty sure the first one was just put out there with little to no maintenance only to be quickly struck down by Nintendo.

    • @teranokitty
      @teranokitty 13 วันที่ผ่านมา +8

      @@bywonline Why not both? Compatibility options could turn bug fixes on and off.

  • @SpottedHares
    @SpottedHares 13 วันที่ผ่านมา +4

    “Mario 64 is a perfectly made game” average gammer shill
    “Ok onto terrible design decisions number 1702” Kaze

    • @TheRealOAFs
      @TheRealOAFs 13 วันที่ผ่านมา +1

      Lol true

  • @AmaroqStarwind
    @AmaroqStarwind วันที่ผ่านมา

    A guy named *Marc ten Bosch* wrote an article about removing quaternions from 3D engines, by reimaging all rotations as happing in a plane rather than around an axis. It's worth a read, check it out when you have the chance!
    He also wrote a 4D physics engine (as in four spatial dimensions, not 3D plus time), if you're curious.

  • @austinbevis4266
    @austinbevis4266 12 วันที่ผ่านมา +2

    Thank you for not posting a 3 hour long video about this

  • @WilfredCthulu
    @WilfredCthulu 13 วันที่ผ่านมา +18

    It's a good thing this is being more talked about since it means the more it'll potentially be streamlined for developing and playing.

  • @ramsescampollo2506
    @ramsescampollo2506 13 วันที่ผ่านมา +9

    No way a kaze upload immediately after a pannen one

  • @SpecialJess2
    @SpecialJess2 13 วันที่ผ่านมา +3

    Im sure some people want an invisible wall less rom but honestly a rom that visualizes the walls is more helpfil as it will help practice

  • @zakesters
    @zakesters 11 วันที่ผ่านมา +2

    2:56
    Glad finally to get an explanation of this at the source code level. Just another one to file under S for "somebody please get me some of whatever those developers were on."

  • @sahilhossian8212
    @sahilhossian8212 13 วันที่ผ่านมา +3

    Lore of How Modders fight Mario 64's Biggest Problem momentum 100

  • @coryswanson2247
    @coryswanson2247 13 วันที่ผ่านมา +1

    That Pannenkoek video was so well put together, I can’t wait to see Kaze’s explanation

  • @pdlbackup
    @pdlbackup 13 วันที่ผ่านมา +16

    Interesting, I never knew this was such a big and weird issue!

  • @ChaunceyGardener
    @ChaunceyGardener 13 วันที่ผ่านมา +29

    Mario 64 code is becoming more reliable than the Apollo 11 code.

  • @rodneylives
    @rodneylives 13 วันที่ผ่านมา +1

    The reason they did it this way is, simply, it was the first 3D platforming engine they made, one of the first made anywhere. Roughly contemporaneous with the original Tomb Raider, which has much simpler geometry. It's kind of crazy that Mario 64's areas are so complex, it looks like they took an "art first" approach, where Mario should just be able to navigate arbitrary terrains. The result was a bit janky, but ultimately successful, I think history has vindicated their approach, it formed the foundation of an engine that would be used over and over through the N64 era, and they got much better at doing 3D platforming engines in later iterations.

  • @JcFerggy
    @JcFerggy 13 วันที่ผ่านมา +6

    I was waiting for this video. I hope that one day either you or someone else compiles all your optimizations, while also correcting any floor gaps, to make a bug fixed version complete for Mario 64.

    • @thisnameisbad3609
      @thisnameisbad3609 13 วันที่ผ่านมา +2

      It's planned, but after the main mod releases

  • @SuperStingray
    @SuperStingray 7 ชั่วโมงที่ผ่านมา

    I love how Mario 64 is the most involuntarily open source program ever made.

  • @shizulu
    @shizulu 13 วันที่ผ่านมา +1

    You're one of my favourite invisible wall youtubers, awesome video kaze

  • @mooshdragodile
    @mooshdragodile 12 วันที่ผ่านมา +3

    I love how at least once every video they say something along the lines of "So this single change I made makes the game work properly and its performance is better".
    You could make a drinking game out of it

    • @KazeN64
      @KazeN64  12 วันที่ผ่านมา +4

      LMAO i wanna make sure people don't comment something like "okay but now its more performative so that's probably why this bug existed" - because i've gotten so many comments like that about simple changes before.

  • @Ragesauce
    @Ragesauce 13 วันที่ผ่านมา +1

    Seeing videos like this gets me hyped to play your completed optimized original SM64 I can't wait for the release!

  • @Deaganus
    @Deaganus 13 วันที่ผ่านมา +2

    I didn't realize it was a nearly 4 hour video until about 30 minutes in. I got scared and ran away.

  • @fista1331
    @fista1331 12 วันที่ผ่านมา +1

    Please don’t ever stop schooling us about Mario 64. This game holds such a huge space in my heart. Love learning new things from someone that has dedicated so much of their time to it.

  • @discussions.
    @discussions. 13 วันที่ผ่านมา +1

    figuring out where each music comes from was also fun alongside enjoying the video

  • @Back-Air
    @Back-Air 13 วันที่ผ่านมา +1

    I never thought that I’d watch so much invisible walls in a week. Nice work btw !

  • @The-Anathema
    @The-Anathema 11 วันที่ผ่านมา

    I mean, out of bounds invis walls are the easiest to deal with, just put a deathfloor in the level (and if you want to emulate the oob level boundaries, just slap big untextured walls on the level). It's a hack, but it works.
    Ceilings are harder to deal with due to the inherent problems with the jankass collision system, the best solution is obviously to rewrite it but barring that... follow strict technical guidelines when designing your levels, avoiding split edges wherever possible (even at the cost of making a mesh more dense) and when not possible you have to take care to intentionally cause overhangs rather than underhangs.
    It's... workable, it's still better to fix the underlying problem though by either changing how collision works as such:
    1) patch OOB blocking and killing mario, encase levels in invisible walls and put a deathfloor at the bottom [even when not normally reachable]
    2) make ceiling hitboxes not be infinitely tall (ideally change collision to work like it does in the majority of games actually)
    and/or
    change to at least fixed point precision coordinates instead of integer coordinates, though the N64 actually has hardware support for fast floating point operations so there's not that much reason to not just go for it. It's a bit slower but such is life. Anyway, fixed point precision maths combined with the technical modeling restrictions mentioned can ensure that there is no 'leaking'. This is a pain in the arse, just fix it properly instead.

  • @IronicHavoc
    @IronicHavoc 12 วันที่ผ่านมา +1

    If somebody were to mod those visualized invisible walls into base SM64, I wonder if it would be useful for speedrunners to practice with.

  • @NihongoWakannai
    @NihongoWakannai 13 วันที่ผ่านมา

    I finally finished watching the invisible wall video and then kaze uploads the sequel, nice

  • @VacantPsalm
    @VacantPsalm 12 วันที่ผ่านมา

    A hidden gift from this video is helping people empathize with how easy it is to miss these things. It's kind of hard to watch Pancake's video and not think the devs were just a little too careless / sloppy. Watching 8:01 is like "ok, yeah, that looks like it sucks."

  • @PhazedAU
    @PhazedAU 12 วันที่ผ่านมา

    surely a good way to circumvent the out of bounds invisible walls would be to just add a death barrier even when one is not needed.
    And if you use out of bounds as the border of your level, just have the out of bounds floor be a silhouette of the stage. Sure extra polygons aren't great, but i feel it wouldn't impact performance much

  • @BaalFridge
    @BaalFridge 13 วันที่ผ่านมา +5

    The fusion of Pannen and Kaze would rewrite the entire code of mario 64 from scratch and have it run at 4k 120fps on original hardware.

  • @sspringNG
    @sspringNG 13 วันที่ผ่านมา +1

    thank you, Mr. Kaze

  • @studhouser6969
    @studhouser6969 12 วันที่ผ่านมา

    Every time I watch one of your videos, Kaze, I just want to go model M64 levels or something. You have an inspiring vibe, my man. Thanks for the content, as always.

  • @rdgfb
    @rdgfb 13 วันที่ผ่านมา

    i watched the entire pannen video when it was premiering, this video is a good sequel to it!

  • @Shrek_es_mi_pastor
    @Shrek_es_mi_pastor 8 วันที่ผ่านมา

    2:15 that sounds really close to the "slime trail" phenomena in Doom. Luckily those are only visual bugs.

  • @incandescence5547
    @incandescence5547 12 วันที่ผ่านมา +2

    I'm honestly surprised that the mod Pannen used to visualize invisible walls isn't publicly available. I wonder why

  • @eyeiaye
    @eyeiaye 13 วันที่ผ่านมา +2

    I'm surprised to hear that there isn't a standardized tool for the modding community to use of a visual debugger like in the pannenkoek video that makes it super obvious where the invisible walls are. Does that exist already? Is something like that feasible?

  • @MJDevel
    @MJDevel 13 วันที่ผ่านมา +1

    I think another way to solve the issue would be to apply wall logics as a result of the 1/4 steps function only when 2 consecutive such test give the same output. Since most invisible wall are thin, they should only detect a collision on 1 while actual wall are thick would still be detected accurately the vast majority of the time.
    Also since this logic will always be loaded and CPU is not the bottleneck, maybe it would even be possible to double the test to 1/8 steps so that effect can still apply at the same 1/4 steps despite the fact wall logic would be waiting for 2 positive collision detection.
    Of course I think your solutions is better, I'm just thinking of a solution that would result in a minimalistic change vs the original source.

  • @henstudios_official6498
    @henstudios_official6498 3 วันที่ผ่านมา +1

    Beta testing for Yoshi’s Island??? I need my hands on that SOON!!
    (It’s been like more than a year since the demo and I haven’t stopped being interested!)

  • @MagicGonads
    @MagicGonads 12 วันที่ผ่านมา

    To manually fix 'holes' in levels with the death barrier, you could remove the death barrier and now check for OOB invisible walls, then put the death barrier back. You still can't find ordinary holes (that just go down to a lower floor that isn't the death barrier), but at least you won't fall out of the level.

  • @WD_RatLad
    @WD_RatLad 13 วันที่ผ่านมา +9

    yipeeee new kaze emanuar upload

  • @-Kerstin
    @-Kerstin 13 วันที่ผ่านมา +2

    If you can just get a script that checks the map for small invisible walls and tells you where they are you can move the vertexes a unit or two until the wall goes away then the problem is solved.

  • @chaoslord8918
    @chaoslord8918 13 วันที่ผ่านมา +4

    Finally. Solid evidence that Kaze has seen pannenkoek's "Invisible Walls" video. I can rest easy now.

    • @jambone4464
      @jambone4464 12 วันที่ผ่านมา

      Based avatar

  • @Badsy_the_Edgecat
    @Badsy_the_Edgecat 12 วันที่ผ่านมา

    yknow, i wonder how much would be fixed by just, like, making ceilings not go on forever, and by making Out of Bounds some kind of specifically-set thing or whatever

  • @Nico2718_
    @Nico2718_ 13 วันที่ผ่านมา +23

    I always love all of your videos, even cooler to see your video after Pannenkoek's one! I have one question: I'm pretty ignorant, so I'm probably missing something, but doesn't removing quarter steps make you also need 1/4 of the speed to clip through walls? Like, the sliding speed you get on slides of 100 should be enough to clip through a wall, considering you normally need less than 400 speed to do so. Maybe I'm missing something though

    • @KazeN64
      @KazeN64  13 วันที่ผ่านมา +29

      usually yes - but i use the move validation to raycast from mario's old position to his new one to check if it passed through any geometry. that way i can just snap mario back and check if a move there is valid. that prevents all movement through walls.

    • @Nico2718_
      @Nico2718_ 13 วันที่ผ่านมา +8

      @@KazeN64 oh, I understand, that's great! Thx for the explanation!

    • @angeldude101
      @angeldude101 13 วันที่ผ่านมา +8

      You don't need to check 4 discrete positions for wall collisions when you can just do what most games do and check the entire continuous path instead. This is what ray-casting is for.

  • @lewissweeney8737
    @lewissweeney8737 13 วันที่ผ่านมา

    I can't believe we have follow-ups for near 4 hour videos regarding invisible walls!

  • @sammymcfone8281
    @sammymcfone8281 13 วันที่ผ่านมา

    Dude you totally inspire me.
    I just recently got back into reverse eng after watching your vids.
    Had to relearn x64 from from x86 asm... not hard just more registers lol.
    Im also currently upscaling everything in Minecraft using an xbr app i wrote.. for the lolz.
    Love your vids . keep em comming. :)

  • @jasonhunter1685
    @jasonhunter1685 5 วันที่ผ่านมา

    Thank you for the trunkated version Pannen's video. I'm about 3 hours into rhe video and still have an hour to go. I will still watch it to its end. Just I think it's good to have a shorter version out there for people who just want to gwt the gist of it.

  • @Ant3rn
    @Ant3rn 11 วันที่ผ่านมา

    For a specific map this could be solved like an integrational tests do: make raycast from each point of inner volume with collision checks run over the Ray’s hits. With such simple geometry on modern hardware it should be quick enough.

    • @KazeN64
      @KazeN64  11 วันที่ผ่านมา

      yeah agreed that'd be awesome to have as a tool.

  • @k1ll1nat0r8
    @k1ll1nat0r8 12 วันที่ผ่านมา

    Hey Kaze! Just here to let you know I’m loving the new videos

  • @dorrivix4214
    @dorrivix4214 13 วันที่ผ่านมา +2

    a 'stupid' solution to the oob invis walls would be to add a death plane to every world regardless if you're meant to reach it or not. but that would be treating the symptom and not the cause. someday, I would like to see a fixed and optimized sm64 running on intended hardware.

    • @galoomba5559
      @galoomba5559 12 วันที่ผ่านมา

      Kaze made a comment explaining why that's a bad idea

  • @scarab5648
    @scarab5648 13 วันที่ผ่านมา

    A video from you today is a birth day present to me❤
    Your channel started my love for math and deepened my interest in programming!
    Serious, you make good stuff in a gamedev and technical way.
    N.t.: Sorry for the bad english btw

  • @MegaManNeo
    @MegaManNeo 11 วันที่ผ่านมา

    If we ever get to see time machines in our lifetime, I see you going back to 1995/1996 and work with Nintendo to release a polished version of Super Mario 64.

  • @naota3k
    @naota3k 12 วันที่ผ่านมา

    1:03 lmfao this caught me completely off guard.

  • @pirojfmifhghek566
    @pirojfmifhghek566 13 วันที่ผ่านมา +4

    Thank you for condensing this down into ten minutes. I started watching that video without realizing it was FOUR HOURS LONG JESUS CHRIST. Props to that guy for being thorough, but goddamn.

  • @kevadroz
    @kevadroz 13 วันที่ผ่านมา

    I feel like checking for ceiling/oob on at least one adjacent unit and another unit adjacent to Mario's to the side relative the first one (so, search for an 'L' formation) and using a collision in an adjacent unit if not meeting the condition would pretty much solve this at a negligible cost (idk how much frametime this would cost when used but since you are really only meant to collide this way whit these on the level boundaries it's probably wouldn't matter much against the benefit that it would create.)

  • @miguelhervaspalomares5978
    @miguelhervaspalomares5978 12 วันที่ผ่านมา

    In pokemon sun and moon, we have the same inacurate stairs collision physics

  • @Xeraclom14
    @Xeraclom14 13 วันที่ผ่านมา

    I remember the old days (around 2010) when we didn't even know why it happened, it all seemed random. Making invisible wall-free maps in sketchup was a nightmare

  • @Marsk1tty
    @Marsk1tty 12 วันที่ผ่านมา

    I knew you'd make a video after that absolute masterpiece by pannenkoek!

  • @lostskull7467
    @lostskull7467 13 วันที่ผ่านมา

    I still wish that the subscribe button from your outro was a series of [!] floor buttons that looked like a single long rectangular button and had the subscribe text on top, and maybe their origin sits below the map, so when Mario runs through them and presses them, it reveals the "subscribed" gray button as a map texture. Finally, the last button gives Mario the star.

  • @rabidguineapig
    @rabidguineapig 13 วันที่ผ่านมา

    I was hoping to get your opinion after watching that nearly 4 hour long documentary! I think it would be cool if you made a Mario 64: Kaze edition that fixes everything in the way you do it while adding all of your optimizations and optional enhancements like the added lighting effects and extra move set. That would be amazing!

  • @lpfan4491
    @lpfan4491 13 วันที่ผ่านมา

    The port of all of the improvement-changes to the base game will be legendary, when it happens. Until then, Kaze will continue making the romhack the changes were made for absolutely cracked. It absolutely approaches the territory where one could be fooled for it being an early GC game.

  • @temper8281
    @temper8281 12 วันที่ผ่านมา

    You could weld vertices in a prepass of the level.

  • @camomagic1
    @camomagic1 12 วันที่ผ่านมา

    His mod has been in development longer than super mario 64 itself.

  • @feresoththedamned2688
    @feresoththedamned2688 12 วันที่ผ่านมา

    the title of this video is a question i had in my mind ever since i watched the Pannen's video

  • @commanderproton7763
    @commanderproton7763 13 วันที่ผ่านมา

    Neat. It was nice seeing pannen explain invisible walls and you explaining ways to fix them. Hope that hack you're making is doing good progress.
    One thing I was wondering about in pannen's video is he brought up the squishing mechanic. I know there's a failsafe in the code so that if Mario stays squished too long, he auto dies to avoid softlocks. How does that exactly work/look in the code and are there any places in the vanilla game that it can happen? I've only ever seen it occur in Chaos Edition or other ROM hacks.

  • @psymar
    @psymar 10 วันที่ผ่านมา

    Wouldn't the easiest solution to the floor gaps be "just add a death floor to every level whether or not it should be accessible"?

  • @PFazu
    @PFazu 13 วันที่ผ่านมา +1

    the reason they made ceiling hitboxes go up until it hits a floor is so you cant clip inside thwomps as they squish you at high speed. with your patch it will be surprisingly easy to clip through the few in the game with a well-timed jump as the thwomp's ceiling hitbox combined with mario jump will move through mario fast enough to get through it within a frame and then mario has all these weird hitbox interactions within the thwomp like walls and floor on its top that will let mario escape unscathed. Their implementation stops mario from moving into the thwomp if the speed is too high and sticks him in place. they wanted squish mechanics to be "fool proof" its also why they have priority over other hitboxes too.

    • @KazeN64
      @KazeN64  13 วันที่ผ่านมา +3

      They are 500 coordinates in size. Their max vel is 75. Marios max vel is about 80. You cant even get 1/3rd through them. And if you could, the bug would be the same with and without the changes

    • @PFazu
      @PFazu 13 วันที่ผ่านมา +1

      @@KazeN64 is "they" (500 coordinates) your new ceiling hotbox or the thwomps? it sounds like it's the thwomps from your reasoning that the bug would exist in either case but you don't need to go through the entire thwomp if the ceiling doesn't go up until it reaches a floor like your patch.

    • @lpfan4491
      @lpfan4491 12 วันที่ผ่านมา +1

      Even if this did break the Thwomps, one could just tweak them instead. There is no good reason to just make ceilings "infinite until stopped" across the board.

    • @PFazu
      @PFazu 12 วันที่ผ่านมา +1

      @@lpfan4491 yeah it isn't a good reason but I think it's why it's done like that

  • @Lewis---
    @Lewis--- 13 วันที่ผ่านมา +4

    I appreciate your summary of that pannen video because even as a SM64 enjoyer there ain't no way I'm watching a 4 hour extended feature film about invis walls 💀

    • @bonczy5990
      @bonczy5990 13 วันที่ผ่านมา +6

      you should do that and you won't regret it (approved by 15 year old me)

    • @Lewis---
      @Lewis--- 13 วันที่ผ่านมา +2

      @@bonczy5990 Nah man I get the basic idea and that's enough, I'm not trying to study for an exam 😂

    • @Rot8erConeX
      @Rot8erConeX 10 วันที่ผ่านมา

      @@Lewis--- the video isn't actually that bad. Pannen basically describes a type of invisible wall (he breaks them into 8 types). Then he shows each of that type of wall in the vanilla game, and for each one, if a speedrunner has lost a run to it, then he shows a clip of them doing so.

  • @AkumaAPN
    @AkumaAPN 13 วันที่ผ่านมา

    Nice! Now your new Mario game will be even cleaner!

  • @michaelbread5906
    @michaelbread5906 13 วันที่ผ่านมา

    A level deliberatly themed around invisibke walls has potential.

  • @pbgamer115
    @pbgamer115 13 วันที่ผ่านมา

    Been learning a lot about Mario 64 invisible walls lately 😂

  • @epicwade6346
    @epicwade6346 13 วันที่ผ่านมา +1

    4:37
    Mario sunshine has this same collision issue. We noticed nintendo put a really big polygon under the map to solve any potential invisible walls caused by level bounds. why would you generate a lip of geometry inside of the wall or is N64 just that weak that it can't handle large scaled collission triangles 🤔

  • @ShuckleShellAnemia
    @ShuckleShellAnemia 13 วันที่ผ่านมา

    Hyped for the eventual release of this mod! By the way, do you have backups of all your files? I would hate for you to lose so much work due to a hardware malfunction.

  • @runed0s86
    @runed0s86 13 วันที่ผ่านมา

    Wow, thank you for doing a a reaction video on pan and cock's video!

  • @lachlanlau
    @lachlanlau 13 วันที่ผ่านมา

    watched the mentioned video then i got recommended this one