¿Cómo es React si vienes de un fondo de C#/C++ y Unity? Hacer herramientas es fácil, ¿pero puedes lanzar un juego completo con él?
This talk has been presented at React Day Berlin 2022, check out the latest edition of this React Conference.
¿Cómo es React si vienes de un fondo de C#/C++ y Unity? Hacer herramientas es fácil, ¿pero puedes lanzar un juego completo con él?
This talk has been presented at React Day Berlin 2022, check out the latest edition of this React Conference.
Hendrik es un desarrollador de juegos para móviles que vive en Berlín.
Playpack Games se especializa en crear juegos multiplataforma con un fuerte y significativo elemento social.
Hendrik utiliza principalmente C++ o C# con Unity para desarrollar juegos para móviles.
React es una biblioteca de JavaScript para construir interfaces de usuario. Hendrik menciona que es bastante nuevo en React, indicando que su experiencia es limitada.
Playpack Games se enfoca en desarrollar juegos casuales y gratuitos para dispositivos móviles.
Playpack Games utiliza una tienda de clave-valor como Firebase para almacenar el progreso del jugador en la nube.
Hendrik observa que el proceso básico de desarrollo de juegos no ha cambiado mucho desde los años 90, describiendo cómo los activos y el código fuente siguen siendo compilados en un paquete ejecutable.
La atención al cliente se maneja mediante herramientas que permiten modificar el progreso del jugador directamente en la base de datos, lo cual facilita la retroalimentación y las recompensas dentro del juego.
Soy Hendrik. Hago principalmente juegos para móviles y tengo curiosidad por la web. Trabajo en Playpack Games, un nuevo estudio en Berlín. Creamos juegos multiplataforma con un elemento social. Presentaré tres casos de estudio, reales pero ilustrativos. Vamos a hacer un juego para un solo jugador para móviles, casual y gratuito. El desarrollo de juegos no ha cambiado mucho desde los años 90.
♪♪ ♪♪ Maravilloso. Muchas gracias, Kathleen. Bienvenidos a todos. Gracias por unirse aquí. Va a ser un día interesante, sin duda, así que comenzaré con una breve introducción, de nuevo.
Soy Hendrik. Vivo aquí en esta ciudad, así que es un placer dar una charla aquí. Hago principalmente juegos para móviles, y lo hago en C++ o C Sharp utilizando Unity, pero como dije, siempre he tenido mucha curiosidad por la web desde los primeros tiempos en los que empecé a trabajar. Y he trabajado para algunas compañías muy geniales en proyectos emocionantes con personas realmente inteligentes. Así que, buenos tiempos, pero hoy en día trabajo en Playpack Games, que es un nuevo estudio aquí en Berlín. Bueno, estamos basados aquí, pero en realidad trabajamos desde cualquier lugar, y aquí puedes ver a mi maravilloso equipo de todo el mundo. Nuestra declaración de misión es crear juegos multiplataforma con un fuerte y significativo elemento social.
Muy bien. Así que, tal vez un breve descargo de responsabilidad. Soy bastante nuevo en React. Si estás buscando una inmersión profunda o cosas técnicas, hay charlas mucho mejores para eso en esta conferencia, estoy seguro de ello. Voy a presentar tres casos de estudio, y todos estos son reales, pero cambié algunos de los nombres y los gráficos, porque eso es de tiempos de freelance, y también para hacerlo más ilustrativo.
Muy bien, ¿puedo empezar con una rápida muestra de manos? ¿Quién de ustedes ha hecho algún tipo de juego? Maravilloso. ¿Quién ha usado Unity para hacerlo? Todavía hay bastantes. Impresionante. Muy, muy genial. Quiero decir, esta es la pista de juegos, así que no debería sorprenderme tanto, pero es genial verlo. Así que, hagamos un juego. Hagámoslo para un solo jugador. ¿Por qué? El multijugador es realmente, realmente, realmente difícil. Así que, el modo de un solo jugador es mucho más fácil. Vamos a lanzarlo en móviles y hagámoslo casual y gratuito, porque eso es lo que hace mi estudio.
El desarrollo de juegos, como resultó, no ha cambiado mucho desde los años 90, si somos honestos. Así que te sientas frente a una computadora, tienes algo de código fuente, tienes algunos activos, tienes herramientas y editores para trabajar con ellos. Los viertes en una gran caja, y luego sale un paquete, que es como un ejecutable, y eso se ejecuta en la computadora de otra persona.
Si construyes actualmente para un dispositivo Android o iOS, sigues construyendo un paquete. Los desarrolladores de juegos se especializan en hacer que las cosas se vean geniales y se sientan geniales. Vamos a hacer un juego y enviarlo a plataformas móviles. Las personas esperan poder guardar sus juegos guardados en la nube. El soporte al cliente puede dar retroalimentación y recompensas a los jugadores. El progreso del jugador se almacena en una base de datos. Podemos cambiar el progreso del jugador de forma remota. Construyamos una herramienta de servicio al cliente con una pequeña aplicación React. La herramienta programa un comando en la base de datos.
Aún es prácticamente lo mismo. Si construyes actualmente para un dispositivo Android o un dispositivo iOS, al final, sigues construyendo un paquete, ¿verdad? Y como puedes ver, en ningún momento entra en juego la cloud o alguna forma de servidores aquí.
Los desarrolladores de juegos son realmente especializados, ¿verdad? Son personas de front-end que son realmente buenas en hacer que las cosas se vean geniales, se sientan geniales, performance, hacer que los juegos sean divertidos. Pero muchos de ellos en realidad no conocen mucho sobre el mundo web más amplio que existe.
Muy bien, vamos a hacer un juego, lleva un tiempo, y luego después de tres a seis meses, tienes un juego. Maravilloso, tal vez lo hiciste en Unity, lo envías a plataformas móviles, está allí, está en el dispositivo, ¿verdad?, es para un solo jugador, todo se ve genial. Pero ya no estamos en 1999 y la gente tiene expectativas. Por ejemplo, cuando un jugador cambia de teléfono, como la gente hace, como cada año, algunos de ellos, esperan poder guardar sus juegos guardados y no ponerlos en un disquete. Así que tenemos que almacenarlos en algún lugar de la cloud. ¿Verdad? Otra cosa, la gente espera soporte al cliente, ¿verdad? El soporte al cliente debería poder, dentro del juego, dar retroalimentación o recompensas a los jugadores. Bien. ¿Cómo empezamos con eso? Empecemos poniendo el progreso del jugador dentro de una database, ¿verdad? ¿Qué tan difícil puede ser eso? El progreso es un solo documento JSON, vive en el dispositivo. Así que en lugar de tenerlo solo en el dispositivo, lo ponemos en una tienda de clave-valor, algo como Firebase funciona muy bien. Las grandes compañías tienen sus propias soluciones, ¿verdad? Hay un SDK para eso. Así que en realidad no tenemos que hacer nada de cosas backend.
Bien. Cuando el juego se carga, lo cargamos, ¿verdad? Cada vez que hacemos cambios, lo escribimos de vuelta en la database. Funciona bastante bien. Genial. Notas algo aquí. Ahora podemos cambiar el progreso del jugador de forma remota, ¿verdad? Porque podemos jugar con el estado del juego en la database. Así que hagámoslo y resolvamos el problema del servicio al cliente, ¿verdad? OK, el caso aquí es que el jugador nos contacta, el juego se comportó de alguna manera incorrecta, ya sabes, algo salió mal, y queremos recompensarlos con alguna moneda o algunos objetos o algo así, ¿verdad? Y queremos escribir un pequeño mensaje allí. Ahora, las personas del servicio al cliente no deberían hacer entradas manuales en la database. Así que deberíamos tener una herramienta para esto. ¿Qué herramientas deberíamos construir? ¿En qué lenguaje? Debería ser utilizable por no desarrolladores. Hmm, es hora de aprender un poco de React, ¿verdad?
Caso uno, una herramienta de servicio al cliente. Construyes una pequeña aplicación React, se comunica con la database, ¿verdad? Nuevamente, como Firebase, hay un SDK, no tienes que aprender algo realmente difícil, ¿verdad? Como un buen patrón aquí, probablemente para cosas como esta, no escribas directamente en la database y cambies el estado, haz que el jugador lo confirme, porque se siente mucho, mucho mejor, ¿verdad?, como parte de la conversación de servicio al cliente. Puedes ver aquí, la herramienta a la izquierda programa un comando en la database. El dispositivo lee el comando, lo aplica, y lo escribe de vuelta cuando se consume. ¿Verdad, y esto es cómo se ve esta herramienta, ¿verdad? Todo esto debería resultarte muy familiar, un poco de material UI con algunas cajas de texto y tal vez algunos editores personalizados, porque quieres tener estos elementos allí y tener algunos selectores y cosas así.
We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career
Comments