Del Sitio Web a los Juegos: El Futuro de React Three Fiber

Rate this content
Bookmark

Los desarrolladores web aprenden muchas técnicas de programación en busca de su carrera, pero a menudo no se dan cuenta de la profundidad de sus propias habilidades. React Three Fiber se convirtió en una sensación entre miles de desarrolladores porque demostró que el conocimiento que poseen puede ser aprovechado para crear gráficos 3D interactivos. Sin embargo, React Three Fiber se ha quedado en la mentalidad de los sitios web, mientras que el futuro de la web se mueve cada vez más hacia experiencias inmersivas en 3D.

En esta presentación, exploraremos la nueva generación de React Three Fiber y los cambios que se están realizando para convertirlo en un framework capaz de soportar aplicaciones complejas en tiempo real, como simulaciones en vivo y videojuegos. Nuestro objetivo es dar a los desarrolladores web un nuevo momento de reconocimiento donde vean un videojuego programado con React y piensen: "Yo puedo hacer esto"

This talk has been presented at React Summit 2024, check out the latest edition of this React Conference.

Kris Baumgartner
Kris Baumgartner
25 min
17 Jun, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla explora el futuro de React Three Fiber y su potencial para construir mundos inmersivos en 3D y videojuegos en la web. Se discuten los desafíos de construir aplicaciones inmersivas en 3D y las soluciones proporcionadas por React Three Fiber, incluyendo la desvinculación de las actualizaciones del estado de la simulación y la mejora de la programación con referencias estables. Se explora el concepto de programación orientada a datos y el uso del patrón de diseño ECS (Entity-Component-System) para datos componibles en React Three Fiber. La charla concluye enfatizando el enfoque futuro en habilitar flujos de trabajo orientados a datos y la integración de un planificador incorporado en futuras versiones de React Three Fiber.

1. Introducción a React 3 Fiber y su futuro

Short description:

Hola, mi nombre es Chris Baumgartner. Esta charla trata sobre el futuro de React 3 Fiber y cómo pretendemos abordar los videojuegos en la web. React 3 Fiber es una biblioteca para React que te permite renderizar en 3D de manera declarativa. Se utiliza en todas partes, desde empresas hasta aficionados e incluso algunos juegos. Seguimos tres principios de diseño: mantener la API simple, pragmática y estable. Soy desarrollador web 3D en Chauncey Technologies y miembro de Poimandris, donde mantengo React 3 Fiber. Únete a nosotros en nuestro Discord si quieres obtener más información.

Hola, mi nombre es Chris Baumgartner, y esta es una charla sobre el futuro de React 3 Fiber y cómo pretendemos abordar los juegos de video en la web. Si no conoces React 3 Fiber, es una biblioteca para React que te permite renderizar de manera declarativa en 3D como si fuera una API de navegador. Bajo el capó, es un renderizador de React para 3JS, que a su vez es un renderizador 3D de código abierto. R3F se utiliza en todas partes, desde empresas hasta aficionados e incluso algunos juegos.

Algunos de los adoptantes son Vercel, Zillow, Ready Player Me, por nombrar algunos. Tenemos una base de instalación estimada de 300,000 y representamos una gran parte de las instalaciones de React en este momento. Seguimos tres principios de diseño. Mantenemos la API simple, pragmática y estable. Pero basta de eso, volvamos a mí. Profesionalmente, soy desarrollador web 3D en Chauncey Technologies. También profesionalmente, pero mucho menos lucrativamente, soy miembro de Poimandris, donde mantengo React 3 Fiber junto con Cody Bennett y Paul Henschel. También en Poimandris es donde estoy desarrollando algunas nuevas tecnologías de las que hablaremos hoy. Y si me encuentras en Discord, probablemente me reconocerás por mi avatar a la izquierda.

Poimandris es un colectivo de código abierto iniciado por Paul Henschel en 2017. Si trabajas con React, probablemente hayas oído hablar de nuestras bibliotecas, ya sea Zoos Donned, React Spring o incluso React 3 Fiber en sí. Somos un colectivo completamente horizontal, dedicado a compartir conocimientos y habilitar la creatividad para los desarrolladores. Si te gusta eso, únete a nosotros en nuestro Discord. Tenemos una comunidad bastante grande allí.

Entonces, tal vez seas como yo. Comencé como desarrollador web. Ni siquiera uno muy bueno. Más bien como un diseñador web que se enorgullece de escribir su propio CSS. Nunca pensé que sería lo suficientemente bueno en programación como para hacer un juego. Pero me encantan los juegos, así que soñaba con eso. Mis habilidades de programación crecieron constantemente y estaba comenzando a aprender React cuando me encontré con React 3 Fiber. Había estos hermosos demos, como el que se muestra en la captura de pantalla. Creo que ese fue el primero que vi. Y parecía tan simple. Y por primera vez, al ver algo interactivo en 3D, pensé: puedo hacer esto. Y más tarde me di cuenta de que fue un momento de reconocimiento personal.

2. Building Games with React

Short description:

React 3 Fiber ha inspirado a muchos desarrolladores web. Queremos llevarlo más lejos y crear mundos inmersivos en 3D, incluso videojuegos. React es una abstracción sobre el DOM y es funcional, componible y declarativo. Permite la mejora progresiva y adopta una sensación similar a la web. Veamos dónde estamos con React 3.5 hoy.

Y esos sueños de repente parecían mucho más reales, y de repente adquirí un nuevo pasatiempo. Pero como pronto aprendí, una demostración no es un juego. Incluso una aplicación empresarial en 3D no es un juego. React 3 Fiber ha inspirado a muchos desarrolladores web, pero ¿cómo podemos llevarlo más lejos? ¿Cómo podemos llegar al momento de poder hacer esto para crear mundos inmersivos en 3D? Incluso videojuegos.

Así que comienza el viaje. Hace dos años comencé por este camino y hoy voy a compartir contigo a dónde me ha llevado. Ripple patrocinó gran parte de la investigación, así que un saludo a ellos, a mi empresa Chauncey y a toda la comunidad que ha ayudado en el camino. Esto comienza con React. Se trata de construir juegos con React. Así que empecemos por ahí. React es una abstracción sobre el DOM. Ups. Casi olvido de qué charla estaba dando. React es una abstracción sobre renderizados similares a documentos. Esto es importante porque un gráfico de escena en 3D se parece mucho a un documento. React también es funcional, componible y declarativo. Y todas las características que conocemos y amamos que lo hacen escalable y testeable.

React también es un framework. Te hace comprar su enfoque declarativo y ciclo de vida, pero de lo contrario te permite traer tu propia pila tecnológica. Esto es importante porque permite la mejora progresiva. Y para que el ecosistema de React avance, ya sabes, necesitamos poder adoptar las nuevas tecnologías que están surgiendo en el mundo de JavaScript en general. En cambio, los motores de juegos casi siempre son monolíticos y te obligan a llevar contigo todo el equipo necesario, incluso si te niegas a usarlo. Por lo tanto, en mi opinión, un motor de juegos de React necesita incorporar todas estas ideas. Necesita renderizar como un documento. Necesita ser funcional, componible, declarativo, adoptar la mejora progresiva y tener una sensación similar a la web. Y la última es realmente importante, pero también imposible de definir si lo sabes, si lo ves como desarrollador web, sabes si algo se siente como una web. Veamos dónde estamos con React 3.5 hoy. Y hey, parece que lo logramos. Pero no puede ser tan simple, ¿verdad? Pero sí hace todas estas cosas. Renderiza como un documento.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Optimización de juegos HTML5: 10 años de aprendizaje
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Optimización de juegos HTML5: 10 años de aprendizaje
Top Content
PlayCanvas is an open-source game engine used by game developers worldwide. Optimization is crucial for HTML5 games, focusing on load times and frame rate. Texture and mesh optimization can significantly reduce download sizes. GLTF and GLB formats offer smaller file sizes and faster parsing times. Compressing game resources and using efficient file formats can improve load times. Framerate optimization and resolution scaling are important for better performance. Managing draw calls and using batching techniques can optimize performance. Browser DevTools, such as Chrome and Firefox, are useful for debugging and profiling. Detecting device performance and optimizing based on specific devices can improve game performance. Apple is making progress with WebGPU implementation. HTML5 games can be shipped to the App Store using Cordova.
Construyendo Experimentos Divertidos con WebXR & Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Construyendo Experimentos Divertidos con WebXR & Babylon.js
Top Content
This Talk explores the use of Babylon.js and WebXR to create immersive VR and AR experiences on the web. It showcases various demos, including transforming a 2D game into a 3D and VR experience, VR music composition, AR demos, and exploring a virtual museum. The speaker emphasizes the potential of web development in the metaverse and mentions the use of WebXR in Microsoft products. The limitations of WebXR on Safari iOS are discussed, along with the simplicity and features of Babylon.js. Contact information is provided for further inquiries.
Creando juegos increíbles con LittleJS
JS GameDev Summit 2022JS GameDev Summit 2022
34 min
Creando juegos increíbles con LittleJS
Little.js is a super lightweight and fast JavaScript game engine that has everything included to start making games right away. It has a tiny footprint and no dependencies, making it perfect for size-coding competitions like JS13K. Little.js is built with an object-oriented structure and comes with several classes. It provides a fast rendering system, a comprehensive audio system, and various starter projects for different game types. Little.js is designed to be simple and easy to understand, allowing you to look at and modify the code.
Cómo no construir un videojuego
React Summit 2023React Summit 2023
32 min
Cómo no construir un videojuego
The Talk showcases the development of a video game called Athena Crisis using web technologies like JavaScript, React, and CSS. The game is built from scratch and includes features like multiple game states, AI opponents, and map editing. It demonstrates the benefits of using CSS for game development, such as instant load times and smooth transitions. The Talk also discusses optimizing performance, supporting dark mode, and publishing the game to other platforms.
¡Mejora el rendimiento de tus juegos WebGL Unity!
JS GameDev Summit 2023JS GameDev Summit 2023
7 min
¡Mejora el rendimiento de tus juegos WebGL Unity!
The Talk discusses ways to boost the performance of WebGL Unity games, including issues with bundle size, memory usage, and runtime performance. It suggests using Brotli for compression and non-exception support for better performance. Choosing the appropriate texture compression format and experimenting with separate builds can also help. The Talk also covers optimizing textures, models, audio, and assets by reducing build size, using compression, disabling unnecessary models, and optimizing audio quality. Unity's optimization tools and profilers are recommended for analyzing performance and memory issues.
Abrazando WebGPU y WebXR con Three.js
JSNation 2024JSNation 2024
27 min
Abrazando WebGPU y WebXR con Three.js
The 3JS project has evolved into a community-driven effort with numerous contributors over the past 14 years. It started with 3D engine work in Flash and transitioned to using SVGs for rendering in HTML5 before adopting WebGL. The project showcases various projects and frameworks, including a no-code tool powered by 3.js. The team is working on a new render using WebGPU and developing a new shader language called TSL. The hope is that WebGPU will eventually replace WebGL, offering better control and performance.

Workshops on related topic

Crea un Juego Con PlayCanvas en 2 Horas
JSNation 2023JSNation 2023
116 min
Crea un Juego Con PlayCanvas en 2 Horas
Top Content
Featured WorkshopFree
Steven Yau
Steven Yau
En esta masterclass, construiremos un juego utilizando el motor WebGL de PlayCanvas desde el principio hasta el final. Desde el desarrollo hasta la publicación, cubriremos las características más cruciales como la escritura de scripts, la creación de UI y mucho más.
Tabla de contenido:- Introducción- Introducción a PlayCanvas- Lo que vamos a construir- Agregando un modelo de personaje y animación- Haciendo que el personaje se mueva con scripts- 'Falsa' carrera- Agregando obstáculos- Detectando colisiones- Agregando un contador de puntuación- Fin del juego y reinicio- ¡Resumen!- Preguntas
Nivel de la masterclassSe recomienda familiaridad con los motores de juegos y los aspectos del desarrollo de juegos, pero no es obligatorio.
PlayCanvas de principio a fin: la versión rápida
JS GameDev Summit 2022JS GameDev Summit 2022
121 min
PlayCanvas de principio a fin: la versión rápida
Top Content
WorkshopFree
João Ruschel
João Ruschel
En esta masterclass, construiremos un juego completo utilizando el motor PlayCanvas mientras aprendemos las mejores prácticas para la gestión de proyectos. Desde el desarrollo hasta la publicación, cubriremos las características más cruciales como la gestión de activos, scripting, audio, depuración, y mucho más.
Introducción a WebXR con Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
86 min
Introducción a WebXR con Babylon.js
Workshop
Gustavo Cordido
Gustavo Cordido
En este masterclass, te presentaremos los conceptos básicos de la construcción de experiencias de Realidad Mixta con WebXR y Babylon.js.
Aprenderás lo siguiente:- Cómo agregar objetos de malla 3D y botones a una escena- Cómo utilizar texturas procedurales- Cómo agregar acciones a objetos- Cómo aprovechar la experiencia predeterminada de Realidad Cruzada (XR)- Cómo agregar física a una escena
Para el primer proyecto en este masterclass, crearás una experiencia interactiva de Realidad Mixta que mostrará estadísticas de jugadores de baloncesto a fanáticos y entrenadores. Para el segundo proyecto en este masterclass, crearás una aplicación WebXR activada por voz utilizando Babylon.js y Azure Speech-to-Text. Luego, desplegarás la aplicación web utilizando el alojamiento de sitios web estáticos proporcionado por Azure Blob Storage.
Masterclass de Codificación en Vivo de Juegos Pequeños
JS GameDev Summit 2023JS GameDev Summit 2023
115 min
Masterclass de Codificación en Vivo de Juegos Pequeños
Workshop
Frank Force
Frank Force
Sumérgete en el cautivador mundo del desarrollo de microjuegos con Frank Force en este interactivo masterclass de codificación en vivo. Diseñado tanto para desarrolladores experimentados como para curiosos principiantes, esta sesión explora los desafíos únicos y las alegrías de crear juegos y demos con restricciones extremas de tamaño.
Construyendo el Metaverso Interconectado y Traversable
JS GameDev Summit 2022JS GameDev Summit 2022
103 min
Construyendo el Metaverso Interconectado y Traversable
WorkshopFree
Avaer Kazmer
Avaer Kazmer
Basado en gran medida en Free Association en el Metaverso - Avaer @Exokit - M3, Avaer demostrará algunas de las formas en que los estándares abiertos permiten la travesía abierta y gratuita de usuarios y activos en todo el metaverso interconectado.