How can the N64 handle fast moving objects? | Portal64

Sdílet
Vložit
  • čas přidán 30. 08. 2022
  • In this video I show how I got the physics engine working well enough to allow objects, and the player, to fall forever from a portal on the ceiling to a portal on the floor.
    Thanks to my brother, Joseph Lambert, for helping me edit the video this time
    Latest ROM Download
    github.com/lambertjamesd/port...
    N64 Homebrew Resources
    / discord
    n64.dev/#community
    If you want to code using the official N64 SDK
    crashoveride95.github.io/n64h...
    If you want to use an open source SDK
    libdragon.dev/
  • Věda a technologie

Komentáře • 592

  • @Fatih_M177
    @Fatih_M177 Před rokem +1471

    This is very impressive, the fact you were able to make portal in n64, while some people are still struggling to do that in goldsrc

    • @golarac6433
      @golarac6433 Před rokem +145

      goldsrc is not open source so its hard to do major modifications

    • @gragogflying-anvil3605
      @gragogflying-anvil3605 Před rokem +232

      @@golarac6433 And neither is the n64. But I assume there's a lot of community made documentation for it. Not sure if that's the case for goldsrc.

    • @MrBrax
      @MrBrax Před rokem +46

      @@golarac6433 but the SDK is

    • @SheepyChris
      @SheepyChris Před rokem +191

      It makes absolute no sense for the N64 to be "closed source", do you believe this project is made on an already existing engine in the console? This game was literally built from the ground up and its developer can do anything with it, which is not the case with goldsrc lol

    • @golarac6433
      @golarac6433 Před rokem +44

      @@SheepyChris lol, n64 is not documented, most of what people can do with it is based on reverse engineering the system

  • @KrakenCasting
    @KrakenCasting Před rokem +564

    4:45 "Sorry if you were here for a game update and instead were hit with a math lecture" It's the true James Lambert experience! XD

    • @probablynot8154
      @probablynot8154 Před rokem +20

      I'm absolutely here for both! some channels make joke about skipping the maths and then skip them but then the videos get less interesting...

    • @ananime1
      @ananime1 Před rokem +6

      I'm pretty sure this is the definition of "I came looking for silver and found gold."

    • @calhoot3577
      @calhoot3577 Před rokem

      He didn't say that. Your quote is wrong.

    • @TrippyMango
      @TrippyMango Před rokem +1

      As a game developer i can safely say while creating a game you need to be able to write (some times difficult) calculations. So game development can math go hand in hand

  • @mlugg5499
    @mlugg5499 Před rokem +123

    7:18 - the original game has two mechanisms to deal with this. The first is that when you go through a portal which significantly changes the concept of "up", the game will force the player to duck for a few ticks. The second is a complicated mechanism called FindClosestPassableSpace which is responsible for making sure the player never gets stuck in geometry around portals (there's a good video by UncraftedName if you're interested) but the first thing might be sufficient for this bug depending on some details of your collision and the size of your hitboxes

  • @otodusobliquus3836
    @otodusobliquus3836 Před rokem +1593

    I'm taking electrical engineering classes at my college, so trust me when I say that your lectures are very easy to follow, interesting, and entertaining! Not to mention that your presentation is very clean and clear, so I would honestly love to see more along with the future updates! (perhaps some VERY faint background music might also enhance them)

    • @sirspamalot4014
      @sirspamalot4014 Před rokem +4

      Also doing Electrical Engineering, and my maths lectures were so bad I stopped going and just taught myself the content.

    • @fiffy6572
      @fiffy6572 Před rokem

      IT engineering classes here
      cant agree more

    • @_wija
      @_wija Před rokem

      michigan tech?

    • @themadduck8784
      @themadduck8784 Před rokem

      @@sirspamalot4014 CS classes here, my lectures were so bad I stopped going and never learned it because I'll never use it again. Passed that stupid theory class, that's all that matters.

    • @d3vitron779
      @d3vitron779 Před rokem +2

      Naval nuclear electrician here, can agree

  • @dantesquivel0
    @dantesquivel0 Před rokem +130

    Please never stop providing the technical explanations. I find this stuff absolutely fascinating and it's wonderful to have it broken down with visual aids and applied to a game.

    • @googleuser4720
      @googleuser4720 Před rokem

      Please stop providing technical explanations. It is absolutely NOT fascinating nor wonderful. Visual aids only please!

    • @TeurastajaNexus
      @TeurastajaNexus Před rokem

      @@googleuser4720 :D

  • @Gagootron
    @Gagootron Před rokem +65

    I want MORE math lectures. I love knowing how you squeeze the most out of the N64!

  • @TrekDelta
    @TrekDelta Před rokem +76

    I really like this. I wonder what would Kaze Emanuar, or even Valve themselves would think about it.

    • @james.lambert
      @james.lambert  Před rokem +169

      I'm hoping Valve thinks, "Wow that is cool we should let him finish it"

    • @illpunchyouintheface9094
      @illpunchyouintheface9094 Před rokem +26

      As long as he doesn’t try to sell and only offers it for free then everything should be fine. Value only cares if you try to sell things for the most part.

    • @irazander
      @irazander Před rokem +2

      @@illpunchyouintheface9094 well gmod exists although I guess that's just a compiler game thing

    • @TrekDelta
      @TrekDelta Před rokem +10

      @@james.lambert Just a question, what do you think about binary space partitioning (.bsp) and how would you implement it? The original Quake was from 1996. Quake had a world editor and it allows lightmaps and radiosity baking after compiling it. Is this possible on the Nintendo 64?

    • @sharp14x
      @sharp14x Před rokem +3

      @@TrekDelta The Source engine uses BSP, lightmaps and radiosity baking.

  • @spocite
    @spocite Před rokem +87

    I’ve been loving these update videos, its nice to see how much can be done on the N64!

  • @ThwompantsGarbageDump
    @ThwompantsGarbageDump Před rokem +203

    Looking great so far. I'd suggest putting a slight white noise in the GLADOS voice clips so they sound less compressed than they actually are.

    • @C.I...
      @C.I... Před rokem +37

      I think it sounds like they're just clipping a bit.

    • @windowsxseven
      @windowsxseven Před rokem +45

      @@C.I... I think it sounds like sound it sounds like sound it it sounds like it like like it sounds like sounds it sounds like sounds it like

    • @jeremiii6523
      @jeremiii6523 Před rokem +18

      @@windowsxseven You okay bud?

    • @windowsxseven
      @windowsxseven Před rokem +26

      @@jeremiii6523 feeling kinda drowsy

    • @inthefade
      @inthefade Před rokem +15

      As a sort of dithering or what? I would presume more noise would worsen data compression, but I'm not clear on what you're aiming to do.

  • @TheRenalicious
    @TheRenalicious Před rokem +139

    As a long time game dev I really enjoy seeing videos about old hardware being given new life with "modern" projects. And it's fascinating and informative seeing the technical breakdowns and problem solving in such an elegant way. Way to go!

    • @Mawyman2316
      @Mawyman2316 Před rokem

      I wish there was a term for it. There was a guy who made I believe it was a game boy game. I’ll look for it because their breakdown was great

    • @Mawyman2316
      @Mawyman2316 Před rokem +1

      It’s from “morphcat games” and it’s how they made a game for the nes

    • @adora_was_taken
      @adora_was_taken Před 9 měsíci

      @@Mawyman2316 hi its been a year but this kind of thing is generally called a demake

    • @Mawyman2316
      @Mawyman2316 Před 9 měsíci

      @@adora_was_taken Hello, not quite. Any time you make a game into a lower bit artstyle its a remake. I am talking specifically about games made compatible with retro hardware. There was a 4 player coop mage game made for the NES that was awesome too. Its not really a rom hack but its basically a rom hack if you wanted to get closer to a good term.

  • @savestate13
    @savestate13 Před rokem +62

    I love seeing updates for this project, and can't wait to play it for myself!

    • @Zyon134
      @Zyon134 Před rokem

      You can play this current build now, there's a link to the github in the description

    • @savestate13
      @savestate13 Před rokem

      @@Zyon134 really? Awesome! Thx, dawg

    • @Streetcleanergaming
      @Streetcleanergaming Před rokem +2

      When the full thing comes out I learning how to put data on a n64 cartridge

    • @cxx23
      @cxx23 Před rokem +2

      @@Streetcleanergaming That's my dream is to have this port on a physical cartridge to play on my N64.

  • @sanderbos4243
    @sanderbos4243 Před rokem +39

    Amazing explanation of GJK, thank you for informing me of its existence!

  • @Keatosis_Quohotos
    @Keatosis_Quohotos Před rokem +26

    I'm literally on the edge of my seat waiting for new updates from this project
    And I love hearing about the math

  • @joey199412
    @joey199412 Před rokem +9

    I HIGHLY appreciate you going into the detailed specifics! Best explanation I've ever seen of Gilbert-Johnson-Keerthi distance algorithm used to add rudimentary models for physics calculations.

  • @irazander
    @irazander Před rokem +3

    i dont care about the math lectures your visuals alone make them intuitive and fun to learn about

  • @OfflineOffie
    @OfflineOffie Před rokem +9

    I love the progress! It's looking really good and it's wonderful to see you continuing this amazing project!

  • @NotTheWheel
    @NotTheWheel Před rokem +16

    You're so unbelievably clever and creative keep up the good work man! I'm so amazed by your progress.

  • @r3v0lv3rz
    @r3v0lv3rz Před rokem +1

    TBH I came for portal, stayed for the deep dive into your engine intricacies. Keep up the technical deep dives, they're great.

  • @weinerschnitzel7
    @weinerschnitzel7 Před rokem +3

    Coolest video yet! Awesome visual on GJK. Instantly clicks to what you had described in your first physics video.
    Please keep the technicals coming!

  • @Fuuntag
    @Fuuntag Před rokem +5

    Absolutely love it that you’re working on this project, keep it up!

  • @Nick_works
    @Nick_works Před rokem

    I love hearing about the technical parts of making something like this! Really shows all the work and cleverness it takes to do a port like this.

  • @coloringontheline
    @coloringontheline Před rokem +1

    Phenomenal progress! You're doing an amazing and faithful job here! These updates bring me immense joy, thank you for keeping us up to date! I loved the graphical examples and mathematical expression demonstration. You did a great job explaining why it's so important and how cool and elegant the solution is! You and this project motivate me in my projects, thanks!

  • @golarac6433
    @golarac6433 Před rokem +58

    Great project, you're killing it. Also great job on the animations when explaining stuff. It's Minkowski btw, there's no Z there lol. You kept saying Mizowski or something

    • @__8120
      @__8120 Před rokem +5

      THANK YOU! I'm glad someone else noticed it!

    • @Erkle64
      @Erkle64 Před rokem

      He gets it almost right the first time he says it. Sounded like Mingowski to me but the subtitles got Minkowski. Mizowski all the way after that though.

    • @r0zemary
      @r0zemary Před rokem

      Goes from minkowski difference to mizowski difference to mizowski... sum?!?!

    • @golarac6433
      @golarac6433 Před rokem +1

      @@r0zemary that's actually correct, you can say either sum or difference

  • @thriller2910
    @thriller2910 Před rokem

    I watched this out of curiosity and got a brilliant lecture as a result! Thanks!!!

  • @PigDan
    @PigDan Před rokem +11

    Love your channel and project! You're brilliant! Thanks for the content! 💜 ✌️

  • @TheEnigmaOf47
    @TheEnigmaOf47 Před rokem +1

    that collision technique is genius! i once thought of doing stretching colliders to solve that problem but had no idea how to actually implement it, thanks for sharing how it works.

  • @josiahjack455
    @josiahjack455 Před 9 měsíci

    Binge watched all your videos. Saved this one for last. Definitely the best one. Super impressive all of them!

  • @windcorpOLEGSHA
    @windcorpOLEGSHA Před rokem +9

    I was trying to implement this sort of collision detection for my game on my own, but the process of sweeping parallelepipeds proved too difficult. Thanks for highlighting the algorithm, I’ll definitely have to take a look at it

  • @normalichu
    @normalichu Před rokem +3

    Math is not my field, but it's always interesting to see the solutions you come out to resolve the problems, and the explanation wasn't hard to follow. Keep up the good work!

  • @LB_
    @LB_ Před rokem +1

    Your videos are so high effort now, this is really great! I love your visual explanation of support functions

  • @lahma69
    @lahma69 Před rokem +7

    I gotta say, you have an awful lot of ambition and self confidence in your own programming skills to take on a project of this scope and difficulty. It is truly impressive and I'm really enjoying sitting on the sidelines and watching it take shape. Given I have little experience with the N64's architecture (besides a bit of poking around with MIPS/N64 rom disassembly in IDA Pro), especially in regards to the reality coprocessor, I don't have a very good grasp of how big of a project this actually is, but I can only imagine that it is a bit of a Colossus. I wish you luck with the project and I can't wait to see what comes next!

  • @loupthevenin8176
    @loupthevenin8176 Před rokem

    What an awesome project! Love the math lecture, it makes for a very complete and satisfying update video

  • @julienlapointe8204
    @julienlapointe8204 Před rokem +55

    Imagine if Portal 64 actually existed back in the day.
    Would probably have been the greatest game of all times.

    • @JoBot__
      @JoBot__ Před rokem +10

      Is it not already the greatest game of all time?

    • @julienlapointe8204
      @julienlapointe8204 Před rokem +5

      @@JoBot__ true.

    • @bennypika4976
      @bennypika4976 Před rokem +1

      they wouldn't release into sale vision
      not with all those glitch we'd have to encounter X'D

    • @JoBot__
      @JoBot__ Před rokem

      @@bennypika4976 But it's pretty easy to just get a focus group to test the game, then patch the bugs.

  • @ApertureAce
    @ApertureAce Před rokem

    The theory behind all of your implementations was very well communicated. Impressive work!

  • @freeedom22
    @freeedom22 Před rokem

    Thanks for sharing and with some deeper level details and process. Very inspiring craft.

  • @brightwebltd2864
    @brightwebltd2864 Před rokem

    Amazing explanation and development update! Haven’t seen your videos before, but this project looks great and no trivial task!
    Look forward to seeing your work and progress in the future

  • @Zullfix
    @Zullfix Před rokem

    This is awesome. Please keep up the great work, I've learned a lot from this series!

  • @lior_haddad
    @lior_haddad Před rokem

    I love the explanations, your visuals are great! This project is really shaping up nicely.
    It's honestly surprising how good it looks.

  • @randominternetbro6562

    Looks great! I've really enjoyed following this project. I definitely want to throw this on a cart and load it on my own hardware!

  • @MKx2_05
    @MKx2_05 Před rokem +9

    Portal has a way of stopping the player from infinitely falling through portals by simply nudging them slightly forward untill they get out of the loop. It also counts as a movement assist cause in portal 2 the portals kinda sucks you in.

  • @crkvend
    @crkvend Před rokem +3

    Being a developer and a 90s n64 kid myself, your videos are like Christmas presents!

  • @lambbrainz709
    @lambbrainz709 Před rokem +5

    Very inspiring. Please keep up the great work!

  • @IsThisThingEvenOnOrWhat
    @IsThisThingEvenOnOrWhat Před rokem +1

    I don't know much about math, but I can fully appreciate what you're doing. Building one of the best puzzle games of the last few generations for one of my early childhood consoles is top notch entertainment, even if the shapes overlap and cause my brain to tremble at all the learnedness.

  • @makrostheblack4791
    @makrostheblack4791 Před rokem

    Am absolutely loving watching this project progress! Extremely impressive, seeing Portal working properly on an N64!

  • @williamist
    @williamist Před rokem

    been waiting for a new video on this one :D love that you're able to pull this off. you should add developer commentary to the final version if that's possible, like actual portal.

  • @andrewwhitfield5480
    @andrewwhitfield5480 Před rokem +1

    I'm blown away. I mean I am really impressed. Absolute top tier talent.

  • @Turabbo
    @Turabbo Před rokem +1

    Best episode yet! Great explainer and great graphics

  • @sirspamalot4014
    @sirspamalot4014 Před rokem

    This is quality, maths lecture and all. I wish my maths lectures at uni were this well presented.

  • @Crawldragon
    @Crawldragon Před rokem +1

    You are _very_ good at explaining complex technical concepts. I have a generally good enough understanding of programming that I can conceptualize a lot of the concepts you talk about in this video, but the way you explained this GJK stuff was such that you would introduce a concept I had never heard of and could not understand, and then visually and narratively explain it such that I quickly grasped it and was able to follow along. It's a small wonder you took up game development; that combination of skill sets would make you a pretty good candidate.

  • @alotario2
    @alotario2 Před rokem

    This is really cool! Can't wait to see how this turns out.

  • @thegreatjd2748
    @thegreatjd2748 Před rokem

    You are a genius. I love this project so much. It now even works on a mobile emulator.

  • @Nob1ej0n
    @Nob1ej0n Před rokem

    Very well done, sir. I love the project, but I love the explanations and animations even more.

  • @DeathMetalDerf
    @DeathMetalDerf Před rokem

    Well damn, dude. That's my effing mind BLOWN!!! Absolutely smashing work, man. Seriously, I don't know the last time I've been this impressed by a port to the 64. It looks amazing, G.L.A.D.o.S. sounds just as good as ever! Seriously man, this has me absolutely tickled.😊

  • @Wander4P
    @Wander4P Před rokem

    I was so pleasantly surprised to see a math lecture in a video I thought would just be a progress update!

  • @the_kovic
    @the_kovic Před rokem +2

    I love technical explanations!

  • @ProdCashhier
    @ProdCashhier Před rokem +6

    the editing in this is really good

  • @lordbaccoon1821
    @lordbaccoon1821 Před rokem +2

    I'm so invested! I love learning about stuff like this! When you get done you need to release the game file for us to play it. I would love to run it on native hardware.

  • @darakrblack
    @darakrblack Před rokem

    this project is my new favorite thing ever, i love old N64 games, and this version of portal feels so beautifully retro, i love it :-D

  • @WalnutOW
    @WalnutOW Před rokem

    Amazing as always. This really does look like footage from an alternate universe

  • @aleyshaaedo4774
    @aleyshaaedo4774 Před rokem

    TNice tutorials is one of the best intro soft softs I've ever seen. The entire basic worksoftow with no B.S.!

  • @GlamourSwinexXx
    @GlamourSwinexXx Před rokem

    I understood none of this but it's still so awesome to see, thanks for sharing!!

  • @fycher_
    @fycher_ Před rokem +1

    Love this, hope the idea of releasing this as mod on steam won't be scrapped

  • @gorlix
    @gorlix Před rokem +1

    i like the method of making stretched collision mesh! i really love your videos and im glad they got recommended even though i didnt subscribe since last portal 64 video!

  • @blacklistnr1
    @blacklistnr1 Před rokem

    Don't apologize for beautifully animated math magic. I think there needs to be more of that awesomeness on YT

  • @lettuce7378
    @lettuce7378 Před rokem

    woah, this project is really cool! I'll be sure to check it out on an emulator soon

  • @_general_error
    @_general_error Před rokem

    This math lecture has been very useful. Thank you!

  • @fiffy6572
    @fiffy6572 Před rokem

    this project is amazing and your explanation really interesting and useful
    keep it up!!

  • @PenneySounds
    @PenneySounds Před rokem +1

    I'm genuinely looking forward to this being done so I can play it on my rom cart

  • @HDConcussionz
    @HDConcussionz Před rokem

    What's crazy to me is there is no reason to make this other than PURE passion. That's dedication

  • @alexandermackey7629
    @alexandermackey7629 Před rokem

    Dude. What. I love this project. Thank you.

  • @Connordore
    @Connordore Před rokem

    Don’t apologize for the math, it’s super interesting! It’s how you got everything working and It’s cool to hear how you got to that point

  • @JerryThings
    @JerryThings Před rokem

    Congratz on getting it to work with any shape!

  • @Sir_Uncle_Ned
    @Sir_Uncle_Ned Před rokem +1

    The phrase "Limitations breed creativity" is very much present here. Not only do you have to do all of this fancy collison/hitbox stuff, but you also need to do it within the power budget so you have to optimize rather than just throw more power at it.

  • @DerFliegendeMocca
    @DerFliegendeMocca Před rokem

    this is amazing, please continue this project. is is so awesome...

  • @SuperWiiBros08
    @SuperWiiBros08 Před rokem

    this is gonna be both the best portal 1 mod and n64 homebrew game

  • @Darthquackius
    @Darthquackius Před 10 měsíci

    it's fun seeing people figure out how these things work when you already know.
    So yeah, that collision problem is called tunneling and what you're describing is a "swept volume test"

  • @smellyfishstiks
    @smellyfishstiks Před rokem

    Cool stuff! that collision method seems like it would be expensive but I guess since your not brute forcing anything it ends up working out pretty sweetly

  • @flythereddflagg
    @flythereddflagg Před rokem

    Excellent explanation I actually I've always wondered about how 3D collision detection works

  • @disappointedcreeper
    @disappointedcreeper Před rokem +1

    Can't wait for this to be released!

  • @Colonelloki
    @Colonelloki Před 7 měsíci

    I’m a structural analyst and I know how difficult it can be to get Ansys to simulate contact, so I have always wondered how video games do it. You explained it really well, and I love that part of your videos!

  • @Loskir
    @Loskir Před rokem

    Very underrated. Thanks for brilliant content!

  • @guybrush3000
    @guybrush3000 Před rokem

    LOVE THE MATH LECTURE. MORE PLEASE

  • @gayluigi4122
    @gayluigi4122 Před rokem

    This video’s breakdown made me finally realize what people meant when i was a kid when they said that I would like learning when i got older

  • @Clodd1
    @Clodd1 Před rokem

    Thats really really awesome, keep it up!!

  • @crafterboy27
    @crafterboy27 Před 10 měsíci +2

    Something I have learned throughout my time as a hobbyist programmer/game dev is that you like math or else you don't do programming

  • @giantisopod
    @giantisopod Před rokem

    I remember reading about this a long, long time ago. The part that was never clear to me was how to compute the Minkowski difference in an efficient way in real time. So If I understand this video correctly, the trick is that you don't compute the whole shape but only what you need? Definitely appreciate the math lecture, keep 'em coming!

    • @JoaoBapt
      @JoaoBapt Před rokem

      Correct me if I’m wrong, but the fact that the support function is “linear” (or at least the dot product used to calculate it is) makes the support function of the Minkowski difference a function of both support functions. There’s a very good video explaining GJK that I saw a long time ago, which goes way more into detail.

  • @Mi-202
    @Mi-202 Před rokem

    Very interesting! I like the explanations.

  • @culpritdesign
    @culpritdesign Před rokem

    We want more math lectures. Great content. This is what I want in my life.

  • @hhhpestock951
    @hhhpestock951 Před rokem +3

    Make sure to keep in some of the more crazy rare bugs, someone's gonna try to speedrun this

  • @danriley282
    @danriley282 Před rokem

    Dude, this is epic! Nice job! :D

  • @LegendBegins
    @LegendBegins Před rokem

    Very cool! I really hope to see the full game demade someday.

  • @someoneelse1534
    @someoneelse1534 Před rokem

    Three Blue One Brown level explainations in an N64 video. Life is complete.

  • @jadethenidoran
    @jadethenidoran Před rokem +1

    I might not have understood all of the math lecture but it was neat!

  • @gorfelbt
    @gorfelbt Před rokem

    Loving the progress this is getting! One thing I'd suggest doing now is adding lighting, similar to games like glover.

  • @DanielKaspo
    @DanielKaspo Před 11 měsíci

    Amazing work! Super impressive!!

  • @scratchcardsuk2473
    @scratchcardsuk2473 Před rokem

    This is the single greatest porting project I've ever seen, and your videos are incredibly insightful. If Valve don't poach you and release this as an official cart, so help me I will write GabeN a very stern email...

  • @becausemexico149
    @becausemexico149 Před rokem

    Awesome job you are doing!

  • @Muskelhias
    @Muskelhias Před rokem

    Wow, great video with nice explainations! :-)

  • @VncentValntine
    @VncentValntine Před rokem +1

    Shit like this reminds me of my old programming classes where i never understood exactly how certain functions worked but i trial and errored them enough until they did.

  • @neolithicau
    @neolithicau Před rokem

    This is excellent. Happy to confirm 0.6 no longer crashes on my Everdrive X7 but I have managed to clip out of the level several times 😂.