Junto con mi papá, he estado creando múltiples juegos de mesa, como Lost Valley, Nord, Half-Band Heroes, que generalmente se financian a través de campañas de crowdfunding. Y desde la escuela secundaria, también he estado desarrollando múltiples juegos electrónicos.
Inicialmente, todos eran para iOS, pero recientemente he estado ampliando un poco, como podrán notar en la charla, hablo sobre la creación de juegos en la web. ¿Por qué me convertí en ingeniero? Me convertí en ingeniero para ahorrar tiempo, para ahorrar mi tiempo y para ahorrar tiempo a otras personas, para que tengan más tiempo disponible para jugar juegos. Y eso me lleva a lo primero de lo que quiero hablar, elegir la herramienta adecuada para el trabajo.
Mis juegos anteriores los hice principalmente con Cocos2D, pero Cocos2D es un motor de juegos muy basado en código, por lo que es familiar para un desarrollador simplemente escribir el código, pero no es muy eficiente en cuanto al tiempo porque no tiene herramientas. Comencé a usar el motor de juegos Godot, lo cual me permite ahorrar mucho tiempo en el desarrollo web. Me encanta usar React, lo cual también me permite ahorrar mucho tiempo, e intencionalmente lo puse en el lado de los juegos de mesa aquí porque hay una similitud interesante en el desarrollo de juegos de mesa y el desarrollo web con React, y eso es ser declarativo.
Si se me ocurre una nueva regla para jugar en la mesa con mis otros probadores, simplemente les explico aproximadamente la regla y declaro mi objetivo, mi intención, ¿para qué se supone que debe servir este cambio de regla? Luego ellos lo interpretarán y usarán su capacidad de procesamiento cerebral para encontrar una interpretación sobre cómo llevarlo al sistema de juego, cómo ejecutar la regla. Por otro lado, si quiero enseñarle una nueva regla a la computadora para jugar juegos, necesito ser muy preciso en todo.
Preguntémonos, ¿cuál es la forma más rápida de hacer un juego y por qué React podría ser una buena opción para eso, y por qué Godot podría ser una buena opción para eso? Además, y muy importante, ¿cuál es la forma más divertida de hacer un juego? Porque al final, esta es una charla sin interés comercial. Solo se trata de divertirse desarrollando algunos juegos.
Ok, entonces, ¿por qué React? Algunas personas pueden recordar mi charla en la edición remota del React Summit en 2020, donde hablé sobre la creación de Diagonal 4. Lo interesante de ese juego es, en primer lugar, que es muy declarativo. Solo tengo un estado de tablero muy simple. Al final, es solo un campo de bits de ocho por siete piezas. A partir de ese campo de bits, puedo calcular todos los movimientos disponibles para cada jugador y puedo calcular la vista de manera muy directa porque es un estado muy simple y un renderizado muy simple. Eso se mapea bien con React.
La otra gran ventaja de usar React es que es muy fácil crear una interfaz de usuario receptiva y tener algunos sistemas de diseño, lo que facilita aún más en la web. ¿Por qué React podría no ser la mejor opción para hacer un juego o un juego moderno en la web? Veamos este ejemplo, Blood Fever. Es un juego de un vampiro vegetariano que defiende su ataúd contra zombies. Pero el punto importante es que puede haber cientos de enemigos que todos están ejecutando animaciones por sí mismos. No tienen una posición muy discreta. Es más como un estado continuo. Algunos puristas de la Programación Reactiva Funcional podrían decir que sigue siendo un estado y aún puedes hacer cálculos muy atómicos para encontrar posibles acciones del jugador. Y luego poner eso en una máquina de estados muy grande. Por otro lado, con las animaciones, simplemente no es lo mejor, diría yo, para mantener un buen rendimiento. Entonces, solo en cuanto al rendimiento, React podría no ser la mejor opción aquí. Y también las herramientas. El desarrollo de juegos se vuelve mucho más rápido si usas las herramientas correctas.
Comments