MarioKart.js Blew My Mind (Open Source + React + ThreeJS)
ฝัง
- เผยแพร่เมื่อ 4 มิ.ย. 2024
- I've been hyped about this one for awhile. Big React-three-fiber simp so I hope that makes sense. React, ThreeJS and all the tech around it might not be the most common choice for game dev compared to Unity, Unreal Engine, Phasor, etc, but that kinda makes this cooler imo.
SOURCES
/ 1757407914900242724
github.com/Lunakepio/Mario-Ka...
MY PREV R3F VIDS
• React Wasn't Built For...
• 3D GAMES in JAVASCRIPT??!
Check out my Twitch, Twitter, Discord more at t3.gg
S/O Ph4se0n3 for the awesome edit 🙏 - วิทยาศาสตร์และเทคโนโลยี
Nintendo is 100% going to DMCA this if/when they find out. My advice take a page from Palworld, instead of calling it MarioKart, with Mario the iconic Italian plumber. You call MasayoshiKart, and make him a japanese electrician.
yeah, it was extremely dumb to use the mario kart name. its basically begging Nintendo to send a dmca
Idk why ppl think they would cone thru. Maybe he wants the fuzz and changes it after dmca
@@1234minecraft5678 if the dmca demands you shut it down, changing the name isnt gonna get you out of it
Palrio Kart 🤝
@@1234minecraft5678 Yes, because we saw how well that worked with Mario Royale
Nintendo will take this down faster than theo can say he doesn't like Remix :)
*Flutter
Remix sucks lol
@@toparamennoodles9652 Shut up, Remix is great
I think they have a bigger fish to fry at the moment, Yuzu.
Can react fix my broken marriage?
Only if it can render to canvas
Render me like one of your french girls
Can you try to hot reload?
Yes the compiler can
Maybe your component didn't mount
After 10y, React for quantum physics
Missed opportunity to say, "MarioKart.js in the Bowser"
ha
I believe we're on the cusp of a new "flash games" kinda of era
Wasn't that the .io games?
3d browser games have been a thing for a while. this is just worse.
@@ADarnSmore why is this worse?
After 20y, A Os Built With React
jQuery is getting an operating system soon so this checks out timeline wise (more context coming soon)
@@t3dotggW H A T
Hey reactOS technically already exists
@@t3dotgg whaaat ? How? When ? Where ?
m.th-cam.com/video/JLgsiOKhz9Q/w-d-xo.html
This guy is a genius
ThreeJS is really powerful, we should give it more visibility!
Didn't expect I'd be a game dev in 11 minutes.
Don't worry, you won't
@@IHighscoredYourGirl 😂
@@IHighscoredYourGirlyou’re right… with AI it will take 5 mins
Everything that can be written in javascript, will be written in javascript
I adore watching JS developers rediscovering scene graphs :-D
Uaing React to create any type of graph, not only HTML, is actually an awesome idea
It's always worthwhile remembering that React JSX nesting is just functional composition.
That this changes show up in the game imminently was so awesome. I just had to tried this in Godot too, and it does this too. I didn't know that.
Amazing open source idea!
You can even take this a step further and run it in XR so you can play it on a quest in virtual reality. Could even add a new camera mode for VR so you are in the driver seat and can throw items 😄
I'd love a polished game engine made out of this.
As someone who dabbled in game dev for over a decade, I could get behind this architecture for small projects.
Finally some good content that isn't about reinventing the same thing or AI.
Really enjoyed this one, threejs never fails to blow my mind.
I mean this is about reinventing the same thing, the novelty is that it's built with React.
@@SteelSkin667 I was mainly talking about how JS frameworks have been lately lol
Nintendo would arm themselves with lawyers to go after 8 year olds pirating pokemon.
Clear explanation👏 Didn’t understand everything cuz I’m not familiar with coding but I was enjoyed hearing your explanation.
Drei is german for Three - the more you know.... xD
Zustand is also German for State. It’s super weird to hear non German speakers pronounce it like it’s just an English word 😄
"zsuständ" xd
So it’s react-three-three?
@@tangrumser8984 thank God he showed the word, I would never in a million years made the leap
susstend
Long time ago I made a project at work that uses react-three/fiber to display visualizations of scientific data.
react-three/fiber is awesome, the idea of displaying 3D object as React components is great
What VSCode theme is that? It looks nice :)
this is a like a new era of "flash" style games. Yea i know its way more powerful then flash, but it was the only other thing that came to mind when it comes to browser based gaming that did have some neat games for its time out there. Having full 3D space and running so smoothly is pretty great. Also the openness of it is great as well.
Nintendo should be proud of this fan as he made mario kart for the browser
What's your VS code setup? Can you share? It's neat and I like it.
What font does theo uses in VSCODE? 3:40
What theme are you using on vs code?
++
Funny to see my face and name during your code review 😅. I just worked with Fire glsl Shader but looks like I changed a lot of other things.
does this use WebGL or WebGPU?
the link on it is broken and i cant seem to find an upload of it
Feel like it would be a lot more accurate just to say it's made with Three.JS -- React-three-fiber is really just a wrapper to provide Reacts delcarative syntax and components structure for Three
I love R3F. Working on a few R3F jobs right now. Super fun to work with.
Trivia regarding long ternary operator chains: format them like else-if’s. Cuz that’s what they are.
See also: (COND …) in Lisp, or if/else/… in Ruby.
I always thought of them more like complicated switch statements. But yeah, "if" is probably a better mental model.
Newb question: How did you get the react program to run via terminal and not browser?
There's a library named Ink that allows using React to build CLIs
thank u@@mieszkogulinski168
wait but how did he get the mario kart program to run via terminal instead of the browser? @@mieszkogulinski168
What incredible timing for this video 😂
Could something like this get used with Electron to make it behave more like a game with it's standalone executable?
Yes. Many 2D games on steam are really headless browser games
Which browser do you use
Very impressive and a great showcase for React-three-fiber! To be fair though, this has nothing to do with React being fast or slow. At the end of the day, the whole thing is rendered in a canvas element on the GPU using WebGL. As you said in the video, React-three-fiber is a wrapper around Three.js, which is a wrapper around WebGL. However, the level of abstraction and ease of use makes React-three-fiber a good choice if you want to be productive. 3D programming is hard...
I once read an article or something that riot games uses react to display splash screens in there games(ig it was about Valorant).
Crazy to think about the potential React has!!!!
Is this guy already in jail because Nintendo lawyers saw this?
OH GOD IT'S ALL COMING TOGETHER 🤯
This is super cool
I like the idea of recreating the most lovely games from our childhood, good thing is on browser)
I had done some three with vanilla js when I was on a hackthon for Space Apps, It was a 3d scene to show eclipse. Didn't win anything but being able to make a browser 3d scene when I didn't even know js well tells me it is easy to get into but damn it is hard to master
I am in the process of learing Three.js, this is great, I wonder if they used Spline library to create it.
what os does he use?
Nintendo's lawyers are writing the DMCA as we speak.
It's important for children to know how the physics works. Well said.
Very cool!
that is hilariously awesome
So can I write a whole game and somehow compile it to a Steam deliverable? 😄(Into a native build I mean, obviously could just run it in a WebView.)
Now do it with htmx
Please leave the internet
We need more open source projects to help us with language learning, programming language learning and help with basic living, even. Open source is the public domain of the internet and we need all the free things we need ti bring happiness abd unity back into our lives.
Yes, Nintendo, this video right here.
SO cool
react component as objects? that's fun
that's interesting that they can do SceneGraph with react components
usually you do
scene.AddChild(new ItemBox(position = new Vector3(1, 2, 3)));
you do that with the dom as well: node.appendChild(createElement("div)). react expresses imperative systems declaratively. that's why react-dom is not named react-html, it is merely a form that instructs react about the dom: divs, spans, appendChild, insertChild etc. react-three-fiber is the same for threejs, a small form that instructs react about the platform. react itself remains platform independent.
btw "zustand" translates to state from German, so that might make it a little more clear to understand
I can attest to Zustand being a good react state library to work with. increases confidence.
Nintendo's nukes the project in 3... 2... 1...
I think a game engine built around React would be really cool and very approachable for a lot of web devs. Does something like this exist already?
Oh nice, just like playing it on Yuzu 🙂
JS ftw 🎉
❤Amazing🎉
Did you ditch zed?
Damn I just expected this to be an emscripten recompile
Cool
So we all just became game developers overnight
i fucking love this
Does this make React a game engine?
RIP the dev enjoy the Donkey Kong themed salt mines
a good example to use react instead of htmx
We need everything free that we can safely get to help us with basic living. We needed an open source-based community since the internet became so popular around the globe. I’m tired of prices on the internet being so expensive than when you are getting groceries. You don’t need a live service to groceries and cook your own foods.
something totally almost unrelated but it would be very cool if you could do a video on version fox (vfox) very cool go project for managing utils versions, the plugins are written in lua.
Nintendo right now: Call The Lawyers
Pokemon Revolution Online (fan-made pokemon mmo) made all their stuff from scratch. As a result, they can't be stopped.
The same thing can happen here if they alter the name a bit.
#wow!
Well, everybody fork it before it gets taken down XD
zustand es heißt ZUSTAND.. good video and very cool project tho
Theo - camera as an object is a very common construct in most game dev languages (or engines?) - gamemaker studio, unity, unreal, etc all have cameras as controllable objects that you can program. But yeah, seeing it in a web dev project is quite refreshing
Nintento Legal team gonna be all over it now :)
Nintendo: Hold my Lawsuit
"Devin, make Mario Kart 9 from Threejs and Reactjs"
In Bowser!
Is my assessment correct: things still look clean and declarative because most of the game logic is probably in another repo? This feels like just "initialization" codes for the game.
Incoming ninento lawyers in 3..2..
I don't know if @theo has heard of the new "dom in canvas" package by the pmndrs team 🤔. Game dev in react is about to explode.
Oddly inspiring! React devs have a cozy option for tinkering with their game ideas!
Better than Roller coaster Excel. xd
Let's talk after you've added collision detection
2050 : react phone
Nintendo getting ready to lawyer up
This is legit proof that eventually everything will be written with Javascript.
bet you can build time travel machine using react in future
This is really cool. But I think it would be more practical to do Rust and WASM for a browser game.
Well I'm sure this with do wonders for Nintendo's already smashed street cred.
Going for the low hanging fruit I guess.
Imagine this in SolidJS...
Is using the canvas, I don't think it will make much different
Great job
Now quick !, archive this page
I can't wait until people optimize the heck out of it.
In browser? More like Bowser.
While the tech is impressive, it is unfortunate they didn't adapt something like Super Tux Kart instead. Nintendo will kill this inspiring thing before you know it.
They went after someone remaking a terrible 30-year-old game, that barely anyone cared about, what makes you think remaking one of their greatest cash cows would be handled with less vigor?
Heck, if the Devs would have gone for a Sonic variant, they may would have even gotten a Job from Sega. Now all this will get them is a DMCA Takedown, And we all lose yet another cool piece of tech.