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.
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.
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 😄
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
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
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...
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.
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!!!!
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.
Defining game world using JSX is just dumb. You have duplicated this one box 3 more times and now you read them top to bottom and may expect that their order in JSX will accually have a meaning when in fact you just position them trough prop and JSX structure has nothing to do with that. Nesting? Cool. Structuring? Dumb. Lets stick with react for 2D UIs
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.
sorry im not a web dev and dont know react so probably im missing something but why is building a simple car game impressive? they have existed for literally decades and game engines like unity can export your game into a web environment as well for ages now.
It's just fun! Front end web dev and game dev are usually very different technology-wise, so using React, a tool primarily used for websites, to make a 3D game, is a fun way to showcase what's possible with the technology, while also giving web devs a little peep into game dev using a language and concepts they understand. It's like when people make Doom run on stuff it's not supposed to, because it's a fun challenge.
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.
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.
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
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.
TBH, as someone with a games industry background... I don't see what's particularly impressive about this demo? The guy ripped some models from the mobile Mario Kart Tour game and threw them into a 3D library and added some janky cart controls on top - this is the kind of thing that even beginner gamedev students could throw together in an afternoon using Unity. The only mildly interesting thing here is using react-three-fiber for scenegraph management, but any game project codebase inevitably ends up as a spaghetti hellhole and I feel like that would only be exacerbated by bringing JSX into the mix.
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.
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
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.
I wonder if he should pivot to using the Tuxcart assets instead. Nintendo doesn't own the idea of car/cart driving simulations. Assuming that the assets are separate from the code.
oops... you don't need React to do this at all... It is so scary to look at React people wrap Three.js or Phaser.js, and code a game in a "React way" Please don't abuse React that is already unnecessarily complex enough...
This is kind like modifying a camry into a truck to haul goods with $60k & used truck parts instead of just spending $30k on a new/used truck. The amount of time that was spent to figure out how to piggy-back off react functionality instead of just writing the functionality.... I'm sure he learned a lot more about react though.
Nearly, but not exactly. It's more analogous to SVG, using XML syntax to define what shapes should be drawn. In regular React, JSX gets converted to HTML, but in react-three-fiber, the same syntax is used to define what 3D objects are displayed. React doesn't have to render HTML, there are projects like React Native, where the output consists of Android or iOS native UI elements, or Ink, where the output is the content of a command line console.
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
@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
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.ua-cam.com/video/JLgsiOKhz9Q/v-deo.html
This guy is a genius
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
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?
you can keep believing then, nobody is playing this
ThreeJS is really powerful, we should give it more visibility!
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
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.
It's always worthwhile remembering that React JSX nesting is just functional composition.
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.
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 😄
btw "zustand" translates to state from German, so that might make it a little more clear to understand
Nintendo would arm themselves with lawyers to go after 8 year olds pirating pokemon.
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
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
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
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?
@@tangrumser thank God he showed the word, I would never in a million years made the leap
susstend
Nintendo should be proud of this fan as he made mario kart for the browser
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
Amazing open source idea!
What's your VS code setup? Can you share? It's neat and I like it.
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.
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.
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...
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.
What theme are you using on vs code?
++
I like the idea of recreating the most lovely games from our childhood, good thing is on browser)
Clear explanation👏 Didn’t understand everything cuz I’m not familiar with coding but I was enjoyed hearing your explanation.
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?
the link on it is broken and i cant seem to find an upload of it
What VSCode theme is that? It looks nice :)
does this use WebGL or WebGPU?
Nintendo's lawyers are writing the DMCA as we speak.
I love R3F. Working on a few R3F jobs right now. Super fun to work with.
What incredible timing for this video 😂
It's important for children to know how the physics works. Well said.
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.
Defining game world using JSX is just dumb. You have duplicated this one box 3 more times and now you read them top to bottom and may expect that their order in JSX will accually have a meaning when in fact you just position them trough prop and JSX structure has nothing to do with that. Nesting? Cool. Structuring? Dumb. Lets stick with react for 2D UIs
OH GOD IT'S ALL COMING TOGETHER 🤯
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?
Which browser do you use
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.
sorry im not a web dev and dont know react so probably im missing something but why is building a simple car game impressive? they have existed for literally decades and game engines like unity can export your game into a web environment as well for ages now.
It's just fun! Front end web dev and game dev are usually very different technology-wise, so using React, a tool primarily used for websites, to make a 3D game, is a fun way to showcase what's possible with the technology, while also giving web devs a little peep into game dev using a language and concepts they understand. It's like when people make Doom run on stuff it's not supposed to, because it's a fun challenge.
@@Fupicat i see, thanks for the explanation :)
What font does theo uses in VSCODE? 3:40
Oh nice, just like playing it on Yuzu 🙂
this looks awesome
zustand es heißt ZUSTAND.. good video and very cool project tho
I am in the process of learing Three.js, this is great, I wonder if they used Spline library to create it.
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.
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.)
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.
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
Nintento Legal team gonna be all over it now :)
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.
Damn I just expected this to be an emscripten recompile
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
So we all just became game developers overnight
RIP the dev enjoy the Donkey Kong themed salt mines
Yes, Nintendo, this video right here.
TBH, as someone with a games industry background... I don't see what's particularly impressive about this demo? The guy ripped some models from the mobile Mario Kart Tour game and threw them into a 3D library and added some janky cart controls on top - this is the kind of thing that even beginner gamedev students could throw together in an afternoon using Unity.
The only mildly interesting thing here is using react-three-fiber for scenegraph management, but any game project codebase inevitably ends up as a spaghetti hellhole and I feel like that would only be exacerbated by bringing JSX into the mix.
Nintendo: all your code are belong to us
"Devin, make Mario Kart 9 from Threejs and Reactjs"
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.
This is legit proof that eventually everything will be written with Javascript.
Problem with browser games is if you ever need to crouch (ctrl) and move forward (W), well…
Nintendo right now: Call The Lawyers
Oddly inspiring! React devs have a cozy option for tinkering with their game ideas!
JS ftw 🎉
that is hilariously awesome
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
7:53 how is this better/different than just using a function
It is basically a function, when you create a div with react you don't actually create a div, you call a function that create a div, it's the same
@@lunakepio5387 he's asking "why not just use a function call instead of a react component?"
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.
I wonder if he should pivot to using the Tuxcart assets instead. Nintendo doesn't own the idea of car/cart driving simulations. Assuming that the assets are separate from the code.
a good example to use react instead of htmx
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.
This is really cool. But I think it would be more practical to do Rust and WASM for a browser game.
I can't wait until people optimize the heck out of it.
Yet we’re worrying about putting a form on the server…
Well, everybody fork it before it gets taken down XD
Did you ditch zed?
This is super cool
oops... you don't need React to do this at all...
It is so scary to look at React people wrap Three.js or Phaser.js, and code a game in a "React way"
Please don't abuse React that is already unnecessarily complex enough...
Nintendo: Hold my Lawsuit
inb4 the developer is found hanged with his own entrails and a nintendo-goon-shaped hole in his door
Does this make React a game engine?
Theo is playing with fire by posting nintendo fan games
what os does he use?
God I give it three weeks to dcma.
This is kind like modifying a camry into a truck to haul goods with $60k & used truck parts instead of just spending $30k on a new/used truck.
The amount of time that was spent to figure out how to piggy-back off react functionality instead of just writing the functionality....
I'm sure he learned a lot more about react though.
Just wait untill you see wasm with webgpu in action.
Cloning this and backing up offline before it gets DMCAd to hell.
it's cool, but i'm a bit worried that nintendo might sue or shut it down over copyright
I'm sorry, but I despise creating game objects by using HTML tags
Nearly, but not exactly.
It's more analogous to SVG, using XML syntax to define what shapes should be drawn.
In regular React, JSX gets converted to HTML, but in react-three-fiber, the same syntax is used to define what 3D objects are displayed. React doesn't have to render HTML, there are projects like React Native, where the output consists of Android or iOS native UI elements, or Ink, where the output is the content of a command line console.
Well I'm sure this with do wonders for Nintendo's already smashed street cred.
Going for the low hanging fruit I guess.