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
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
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 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.
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
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.
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!
@@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.
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.
@@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?
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.
Can you imagine the waves this recreation would have made if this had released with the N64? It probably would have made the N64 way more successful. Just goes to show that tech stats don't sell consoles games do. Very very cool that this is possible on this hardware.
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
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!
Ah, yes...the Mike Wazowski difference. My favorite part of the Sullivan Support Function Junction. Honestly, I'm not even making fun of you by saying that. I don't have the math skills to understand anything that you said in the middle of the video, so that's what my brain translated it to in hopes that it might make more sense to me. It didn't. That's ok, though, because it sounded fascinating, and you've clearly been able to use it to do some pretty amazing things. Keep doing what you do, man! You're knocking it out of the park!
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
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.
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.
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!
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.
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.
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.
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.
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!
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.
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
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"
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!
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!
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!
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.
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.😊
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
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.
An alternate physics solution to things skipping over walls is to make all area outside of the current room part of a massive collider extending to infinity (specifically, you’d have a BSP collider in the shape of the room and invert its detections so anything inside the shape doesn’t collide, and anything outside the shape does). Or you could just box in the room with simple AABox colliders extending out from the room dozens or hundreds of units. Then when you enter a room, that room’s collider turns on and everything outside the room is collision area (all physics entities outside the current room will need to be disabled when you enter the room), and when you leave a room it switches the room’s collision off and whatever hallways or next room’s collision on.
I remember kazeemanuar solving sm64s quarter step problem by casting a single ray between the two positions mario is supposed to be, which I imagine would be simpler than stretching the collision box? Not entirely sure, just wanted to say in case it would improve performance or would make the code simpler
it seems like this is going fantastic so far, I feel like maybe some walking/footstep SFX while moving and an interaction sound (when grabbing and holding a cube for example) would go a long way as far as making it seem a little less stagnant, also I think that an impact sound whenever something/the player collided with a wall would be great if thats possible to implement with the restrictions, I'm making these "recommendations" specifically for the audio since the current state its giving me more of a videogame creepypasta vibe than it really should, sorry if I'm asking for something impossible, I'm not exactly calculating the technicalities here but I hope my input helps!
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.
Hi James Lambert, I'm a glitch hunter (I'm basically finding glitches by experimenting stuff). I find the work you've done incredible! I'm surprised by the fact you made the physics engine working on a N64... I mean, WOW! I really had a good time playing this port. I found approx. 7-10 glitches in my 1 hour playthrough of your port, I'm not saying your version is glitchy as hell, far from that, I would like to help you in my free times to show you each of them and try together to understand how they work and fix them. I could also hard test some mechanics if you want to be sure they work as intended. If possible, I would like if you could give me some feedbacks, so we could write to eachother. I know nothing in coding though, so idk if that would be a problem, but for now, I don't think so. In conclusion, I would like to understand more things about your port and work a bit together. *Note : idk a lot about the original game though, since it's the first time I'm playing "it". Have a great rest of your day!
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...
This is so cool. I hope you will continue trying stuff like this once you feel done with Portal. I think Superhot might be kind of interesting, but maybe not as interesting as this. Or a physics sandbox thing :o
1:48 That's also how the Super Mario 64 'backwards long jump' (or BLJ) works; Nintendo didn't add a cap for backwards speed, so BLJing can allow the player to build up enough speed that they go through walls and doors and trigger zones (such as for the 'endless' staircase, blocking access to the final Bowser area unless you've got 70 Stars or so).
Interesting video! Another approach could be to perform a raycast from the moving object's current position in its direction of movement and with the length set to its velocity. That way you can see where the object would end up the next frame, and if the ray hits a collider, you can limit the object's movement to the position of the raycast hit to avoid passing through a collider at high speed. Not sure how the performance compares to this GJK approach, or if raycasting is even possible on N64 though.
GJK nearest points is one of my favorite algorithms too. Up there with the FFT and hamming codes. A bit abstract but beautifully simple. I use GJK and EPA in Chipmunk2D for the collisions. It's very fast if you cache the simplex support point indexes for the next frame since they often don't change.
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
goldsrc is not open source so its hard to do major modifications
@@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.
@@golarac6433 but the SDK is
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
@@SheepyChris lol, n64 is not documented, most of what people can do with it is based on reverse engineering the system
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
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...
I'm pretty sure this is the definition of "I came looking for silver and found gold."
He didn't say that. Your quote is wrong.
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
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)
Also doing Electrical Engineering, and my maths lectures were so bad I stopped going and just taught myself the content.
IT engineering classes here
cant agree more
michigan tech?
@@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.
Naval nuclear electrician here, can agree
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
That sounds helpful. Thanks
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.
Please stop providing technical explanations. It is absolutely NOT fascinating nor wonderful. Visual aids only please!
@@googleuser4720 :D
I’ve been loving these update videos, its nice to see how much can be done on the N64!
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!
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
It’s from “morphcat games” and it’s how they made a game for the nes
@@JeronimoStilton14 hi its been a year but this kind of thing is generally called a demake
@@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.
I want MORE math lectures. I love knowing how you squeeze the most out of the N64!
I really like this. I wonder what would Kaze Emanuar, or even Valve themselves would think about it.
I'm hoping Valve thinks, "Wow that is cool we should let him finish it"
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.
@@illpunchyouintheface9094 well gmod exists although I guess that's just a compiler game thing
@@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?
@@TrekDelta The Source engine uses BSP, lightmaps and radiosity baking.
I love seeing updates for this project, and can't wait to play it for myself!
You can play this current build now, there's a link to the github in the description
@@Zyon134 really? Awesome! Thx, dawg
When the full thing comes out I learning how to put data on a n64 cartridge
@@Streetcleanergaming That's my dream is to have this port on a physical cartridge to play on my N64.
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.
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
I'm literally on the edge of my seat waiting for new updates from this project
And I love hearing about the math
Amazing explanation of GJK, thank you for informing me of its existence!
Can you imagine the waves this recreation would have made if this had released with the N64? It probably would have made the N64 way more successful. Just goes to show that tech stats don't sell consoles games do. Very very cool that this is possible on this hardware.
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
You're so unbelievably clever and creative keep up the good work man! I'm so amazed by your progress.
TBH I came for portal, stayed for the deep dive into your engine intricacies. Keep up the technical deep dives, they're great.
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!
i dont care about the math lectures your visuals alone make them intuitive and fun to learn about
Coolest video yet! Awesome visual on GJK. Instantly clicks to what you had described in your first physics video.
Please keep the technicals coming!
I love the progress! It's looking really good and it's wonderful to see you continuing this amazing project!
Ah, yes...the Mike Wazowski difference. My favorite part of the Sullivan Support Function Junction.
Honestly, I'm not even making fun of you by saying that. I don't have the math skills to understand anything that you said in the middle of the video, so that's what my brain translated it to in hopes that it might make more sense to me. It didn't. That's ok, though, because it sounded fascinating, and you've clearly been able to use it to do some pretty amazing things.
Keep doing what you do, man! You're knocking it out of the park!
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
THANK YOU! I'm glad someone else noticed it!
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.
Goes from minkowski difference to mizowski difference to mizowski... sum?!?!
@@r0zemary that's actually correct, you can say either sum or difference
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.
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!
Absolutely love it that you’re working on this project, keep it up!
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.
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.
the editing in this is really good
Being a developer and a 90s n64 kid myself, your videos are like Christmas presents!
Your videos are so high effort now, this is really great! I love your visual explanation of support functions
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.
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.
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.
Love this, hope the idea of releasing this as mod on steam won't be scrapped
Very inspiring. Please keep up the great work!
Imagine if Portal 64 actually existed back in the day.
Would probably have been the greatest game of all times.
Is it not already the greatest game of all time?
@@JoBot__ true.
they wouldn't release into sale vision
not with all those glitch we'd have to encounter X'D
@@bennypika4976 But it's pretty easy to just get a focus group to test the game, then patch the bugs.
Binge watched all your videos. Saved this one for last. Definitely the best one. Super impressive all of them!
Make sure to keep in some of the more crazy rare bugs, someone's gonna try to speedrun this
I watched this out of curiosity and got a brilliant lecture as a result! Thanks!!!
Don't apologize for beautifully animated math magic. I think there needs to be more of that awesomeness on YT
Am absolutely loving watching this project progress! Extremely impressive, seeing Portal working properly on an N64!
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!
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.
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
TNice tutorials is one of the best intro soft softs I've ever seen. The entire basic worksoftow with no B.S.!
Love your channel and project! You're brilliant! Thanks for the content! 💜 ✌️
I was so pleasantly surprised to see a math lecture in a video I thought would just be a progress update!
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
This is quality, maths lecture and all. I wish my maths lectures at uni were this well presented.
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"
I love technical explanations!
Glad I’m not the only one who found those collisions bugs
I love the explanations, your visuals are great! This project is really shaping up nicely.
It's honestly surprising how good it looks.
sup disco mario
this is gonna be both the best portal 1 mod and n64 homebrew game
What's crazy to me is there is no reason to make this other than PURE passion. That's dedication
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!
The theory behind all of your implementations was very well communicated. Impressive work!
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!
I'm genuinely looking forward to this being done so I can play it on my rom cart
I'm blown away. I mean I am really impressed. Absolute top tier talent.
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!
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.
What an awesome project! Love the math lecture, it makes for a very complete and satisfying update video
Best episode yet! Great explainer and great graphics
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.😊
This is awesome. Please keep up the great work, I've learned a lot from this series!
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
this Is so cool best of luck to you!
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.
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
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
Three Blue One Brown level explainations in an N64 video. Life is complete.
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!
I understood none of this but it's still so awesome to see, thanks for sharing!!
I might not have understood all of the math lecture but it was neat!
An alternate physics solution to things skipping over walls is to make all area outside of the current room part of a massive collider extending to infinity (specifically, you’d have a BSP collider in the shape of the room and invert its detections so anything inside the shape doesn’t collide, and anything outside the shape does). Or you could just box in the room with simple AABox colliders extending out from the room dozens or hundreds of units. Then when you enter a room, that room’s collider turns on and everything outside the room is collision area (all physics entities outside the current room will need to be disabled when you enter the room), and when you leave a room it switches the room’s collision off and whatever hallways or next room’s collision on.
Congratz on getting it to work with any shape!
I remember kazeemanuar solving sm64s quarter step problem by casting a single ray between the two positions mario is supposed to be, which I imagine would be simpler than stretching the collision box? Not entirely sure, just wanted to say in case it would improve performance or would make the code simpler
This is really cool! Can't wait to see how this turns out.
Very well done, sir. I love the project, but I love the explanations and animations even more.
You are a genius. I love this project so much. It now even works on a mobile emulator.
it seems like this is going fantastic so far, I feel like maybe some walking/footstep SFX while moving and an interaction sound (when grabbing and holding a cube for example) would go a long way as far as making it seem a little less stagnant, also I think that an impact sound whenever something/the player collided with a wall would be great if thats possible to implement with the restrictions,
I'm making these "recommendations" specifically for the audio since the current state its giving me more of a videogame creepypasta vibe than it really should, sorry if I'm asking for something impossible, I'm not exactly calculating the technicalities here but I hope my input helps!
Thanks for sharing and with some deeper level details and process. Very inspiring craft.
We want more math lectures. Great content. This is what I want in my life.
Loving the progress this is getting! One thing I'd suggest doing now is adding lighting, similar to games like glover.
Amazing as always. This really does look like footage from an alternate universe
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.
Hi James Lambert, I'm a glitch hunter (I'm basically finding glitches by experimenting stuff). I find the work you've done incredible! I'm surprised by the fact you made the physics engine working on a N64... I mean, WOW! I really had a good time playing this port. I found approx. 7-10 glitches in my 1 hour playthrough of your port, I'm not saying your version is glitchy as hell, far from that, I would like to help you in my free times to show you each of them and try together to understand how they work and fix them. I could also hard test some mechanics if you want to be sure they work as intended. If possible, I would like if you could give me some feedbacks, so we could write to eachother. I know nothing in coding though, so idk if that would be a problem, but for now, I don't think so. In conclusion, I would like to understand more things about your port and work a bit together. *Note : idk a lot about the original game though, since it's the first time I'm playing "it". Have a great rest of your day!
Something tells me that Game Devs should be paid more and receive more respect. This was insightfull and amazingly cool.
woah, this project is really cool! I'll be sure to check it out on an emulator soon
Dude, this is epic! Nice job! :D
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...
This is so cool.
I hope you will continue trying stuff like this once you feel done with Portal.
I think Superhot might be kind of interesting, but maybe not as interesting as this.
Or a physics sandbox thing :o
GMod 64 lol
@@DWal32
1:48 That's also how the Super Mario 64 'backwards long jump' (or BLJ) works; Nintendo didn't add a cap for backwards speed, so BLJing can allow the player to build up enough speed that they go through walls and doors and trigger zones (such as for the 'endless' staircase, blocking access to the final Bowser area unless you've got 70 Stars or so).
Come for the portal port, stay for the well explained math.
I'm 100% here for the math lessons!
This reminds me of watching a code parade video. I hope at some point there's a collaboration
Excellent explanation I actually I've always wondered about how 3D collision detection works
Interesting video! Another approach could be to perform a raycast from the moving object's current position in its direction of movement and with the length set to its velocity. That way you can see where the object would end up the next frame, and if the ray hits a collider, you can limit the object's movement to the position of the raycast hit to avoid passing through a collider at high speed. Not sure how the performance compares to this GJK approach, or if raycasting is even possible on N64 though.
GJK nearest points is one of my favorite algorithms too. Up there with the FFT and hamming codes. A bit abstract but beautifully simple. I use GJK and EPA in Chipmunk2D for the collisions. It's very fast if you cache the simplex support point indexes for the next frame since they often don't change.