El renderizador secundario de Godot 4 será GL ES 3

Ya se ha definido que el renderizador secundario de Godot 4 utilizará GL ES 3. El artículo al respecto es esclarecedor es muchos temas, porque explicar la decisión requiere de ciertas aclaraciones y refutar falsos conceptos. No voy a hacerles aquí el cuento del tabaco, ni repetir el artículo, solo los invito a que le echen un vistazo.

Y como siempre, les recuerdo que pueden adquirir El Laberinto del Saber en el puesto instalado en el hall del teatro, o mejor dicho, en Apklis. Estamos buscando un campeón, así que déjennos su puntuación en los comentarios.

Un repaso a O3DE, días después, pros y contras

A veces hay que tomarse un tiempo para ver cómo noticias que parecen que van a cambiar el universo se desarrollan y nos muestran su veradera cara. La de todos los días, al levantarse, con mal aliento y el pelo despeinado. La semana pasada nos sorprendió la movida de Amazon al lanzar su motor Lumberyard bajo licencia Apache 2.0 y renombrado como O3DE. El apoyo de la industra parecía, si no abrumador, por lo menos contundente. Incluso el fundador de Godot, al referirse a la iniciativa, se lamentaba de que se invirtiera dinero en O3DE en vez de financiar a Godot (la respuesta es muy simple: son dos cosas muy diferentes, y ya veremos por qué).

Analicemos hoy la situación varios días después, con la mente más en calma. En teoría, Open 3D Engine nos ofrece un motor libre que podemos utilizar en proyectos AAA, algo que ningún otro motor libre ha conseguido, y mantengan ese dato en sus mentes. Ofrece renderizado fotorrealista, que quizás a alguien de nivel indie o libre no busque, pero que los grandes estudios sí. Como los gráficos no son todo, ofrece además un entorno de trabajo profesional, como debe ser. No olviden que desciende del CryEngine.

Sin embargo, hay detalles. Por ejemplo, algunos componentes no son libres. WWISE no lo es, a menos que utilices su versión comunitaria. El sistema de inteligencia artificial Kythera AI tampoco. En ambos casos, tendrías que depender de la licencia no comercial, la cual es gratis, pero no abierta. Aún no existe una versión oficial precompilada: tienes que descargar el repo y compilar tú mismo en Windows, porque el soporte total de Linux no está disponible. Todos estos problemas se resolverán con el tiempo, en definitiva, es un proyecto de software libre y puedes dar tu contribución. Pero ahora mismo, hay mucha gente quejándose en reddit. De hecho, hay más quejas que información, porque muy pocos están cacharreando el motor.

Ahora bien, desde el punto de vista de un estudio mediano o grande, lo arriba mencionado es una bobería. O3DE es una oferta inmejorable y créanme, Godot no tiene ese nivel, ni lo tendrá, porque no es el objetivo. A menos que ahora se motiven a cambiar y ser un poquito más ambiciosos, que no les vendría mal si quieren ser aceptados en los niveles más altos de la industria. Así que no vale la pena llorar por el financiamiento dedicado a O3DE si tu objetivo no es ser como O3DE. Hay gente que necesita Godot, pero hay quien necesita algo mejor. Ambos proyectos apuntan a segmentos diferentes y  hasta cierto punto, no se hacen competencia el uno al otro.

Para los que no somos de ese nivel, toca esperar unos meses. En octubre se celbrará un evento virtual de O3DE, supongo que para esa fecha querrán haber alcanzado cierto grado de aceptación entre los desarrolladores, ya sean indies o grandes estudios. Trataré de tenerlos infrmados al respecto.

Y como siempre, les recuerdo que El Laberinto del Saber está ahí, esperando que lo compren. Especialmente ahora que se me acaba de romper la PC, me viene bien el apoyo, por mínimo que sea.

Amazon abre Lumberyard y lo convierte en O3DE

Hay un nuevo motor de juegos libre, y esta vez es un contendiente serio: Amazon acaba de liberar Lumberyard bajo licencia Apache 2.0, que es muy permisiva, renombrándolo como Open 3D Engine, O3DE. Para los que no estén al tanto de la historia, en una era olvidada de caos, anterior al tiempo y al Unreal 5 (o sea, hace como cinco años), Amazon hizo un acuerdo con Crytek por el que obtuvo el fuente de CryEngine. La nueva criatura nacida de ese diabólico pacto se llamó… Lumberyard (inserte aquí unos truenos).

Lumberyard era gratis o algo así, pero no libre en el sentido estricto de la palabra. Como todo derivado de CryEngine, podía ofrecer una calidad gráfica excepcional. Pero el mercado de motores de juegos estaba saturado. Teníamos Unity, Unreal, y si de veras querías el CryEngine, podías obtenerlo gratis de Crytek y pagar lo que te viniera en ganas después. En cambio, Lumberyard lo único que ofrecía era integración con AWS, la nube de Amazon.

No sé si alguien lo habrá explotado a fondo, pero definitivamente, no es un motor de primera línea. Sin embargo, con esta movida Amazon se posiciona en un mercado con espacio para más contendientes, con una oferta tentadora. O3DE ofrece un renderizador increíble que permite imágenes fotorrealistas, soporte para Windows, Linux, Mac, iOS, Android y consolas. Además, cuenta con el apoyo de grandes de la industria, como Adobe, Huawei y otros, y ha sido recibido con entusiasmo por algunos estudios de cierto renombre. El proceso está supervisado por la Linux Foundation, lo que nos da un margen de confianza aceptable, y se creará la Open 3D Foundation, para acelerar la colaboración con los desarrolladores.

La oferta parece tentadora si necesitas un motor profesional en todos sus aspectos, para un proyecto de alto nivel, o incluso para un proyecto de menor envergadura y quieres evitarte asuntos de licencia por estar en Cuba. De todas formas, recomiendo echarle un vistazo si pueds permitirte clonar el repo y compilar tú mismo.

Actualización: No mencioné nada antes de investigar bien, pero podrías enfrentar algunos pequeños inconvenientes para descargar en Cuba. El repo en github pesa un par de gigabytes. En el momento de compilar, tendrás que descargar las dependencias de terceros, a través de cmake. Sin embargo, el equipo de soporte ha contestado gentilmente a mi consulta y me dicen que están trabajando en un instalador.

Estado de Godot 4, a día de hoy

O de hace tres días, da lo mismo. Godot 4 sigue avanzando hacia su versión alfa con la integración de nuevas funcionalidades. Aún no he visto indicios de trabajo en el renderizador secundario, que estaba en discusión si sería basado en GL ES 3 o GL ES 2. Mis pruebas compilando la plantilla para Android no han dado resultados: la aplicación inicia y se cae sin mostrar nada. Sin embargo, se agregó una solución de física propia.

Hasta el momento, Godot tiene un sistema de físicas simple y uno que utiliza Bullet. La nueva solución es más completa y apunta a reemplazar a Bullet. Su integración ha roto todos los proyectos pues cambia los nombres de muchas cosas (KinematicBody ahora es Character2D/3D), pero no hay que entrar en pánico. Bastan unos minutos de mirar y puedes averiguar lo que ha cambiado. Según el autor, quizás en el futuro se pueda implementar aceleración por hardware.

Las nuevas características de GDScript, como funciones lambda, ya están integradas. En general, quedan detalles por resolver, pero este es un tema considerado como completo. En una encuesta en twitter los usuarios se han pronunciado acerca de qué prefieren y ha ganado por mayoría la opción de GDScript más rápido. Por tanto, es de esperar que se trabaje en ese sentido, y también se han propuesto mejoras en GDNative.

El sistema de partículas ha recibido mejoras, la más interesante quizás sea la capacidad de colisionar con el resto de la escena.

Aunque es un poco temprano aún ya van saliendo algunos intentos de escenas de prueba con esta versión demostrando la calidad gráfica  que se puede alcanzar con el renderizador Vulkan. Ojalá pudiésemos disponer algún día de un benchmark basado en Godot, existen comentarios al respecto pero nadie en concreto se ha ofrecido para la tarea.

No, no podrás crear un juegazo como Valhalla en Godot

Aunque sí podrás hacer algo que se vea igual de bien. Juan Linietsky ha twiteado al respecto hace dos días, dejando bien claro el asunto (y algunos comentarios amplían el tema). El creador de Godot explica que a diferencia de motores más grandes, orientados hacia equipos de trabajos enormes y con grupos especializados, Godot es más generalista y no soporta entornos de trabajo de esa escala.

El problema, según Linietsky, no es la calidad gráfica. Con Godot 4 será posible una buena calidad gráfica con poco esfuerzo, o como se dice en el argot: bonito por defecto. Lo que Godot no puede manejar es la enorme cantidad de contenido que un juego como Assassin’s Creed Valhalla y el equipo de desarrollo necesario para realizarlo. Dicho contenido también lleva cierto grado de optimización de cara al streaming y un entorno de desarrollo que soporte cientos de personas trabajando a la vez.

Nuestro motor libre favorito está más orientado a equipos pequeños o medianos. Sin embargo, si crees que Unity u otro va a resolver tu problema de una forma mágica, tampoco es así. Por lo general, las grandes compañías que utilizan Unreal, CryEngine, Unity, o lo que sea, terminan invirtiendo un esfuerzo sustancial en personalizar y adaptar el motor a sus necesidades.

Obviamente, yo estaría encantado si Godot implementa algunas mejoras orientadas al trabajo en equipo, como un mejor soporte para sistemas CVS. Es bastante fácil romper una escena intentando resolver un conflicto en git, por ejemplo, o hacer un seguimiento de los cambios en una sesión de trabajo si eres novato. Un sistema de gestión de dependencias más robusto permitiría encontrar las cosas que sobran con más facilidad y optimizar automáticamente los builds, me da la impresión de que Unity maneja eso mucho mejor.

Sin embargo, hay que considerar que el objetivo de Godot no es competir con los grandes, así que si tu idea es embarcarte en un proyecto de envergadura, deberías plantearte utilizar un motor acorde, como Unity o Unreal.

Y recuerden comprar El Laberinto del Saber aquí. Y de paso les adelanto que tendré noticias pronto al respecto.

El futuro de los videojuegos de PC cubanos es multijugador

Si eres jugador, esta afirmación te causará reacciones diversas. Quizás una sea “¡Caramba, qué bien! ¡Juegos que podremos jugar con los datos/horas nacionales!”. O más probablemente “¿Juegos cubanos? Probablemente sean malísimos, con gráficos cheos y llenos de errores”. En este último caso, permíteme decirte que eres un tóxico, que es una forma elegante de decir que eres un imbécil total. De esos tenemos muchos y gratis, porque la oferta supera la demanda. Si eres desarrollador, esto te sonará como un disparate. ¿Juegos de PC para el mercado nacional? Una locura. ¿Y multiplayer? Peor aún.

El caso es que aunque los juegos para móviles están viviendo un alza gracias a Apklis, en el caso de los PCs no contamos con una plataforma similar. A la iniciativa privada le es imposible llenar ese hueco porque las condiciones de uso de los VPS de ETECSA no permiten que vendas productos de terceros. A los desarrolladores también les asusta el mercado de los juegos de PC porque ya está lleno de buenos juegos internacionales y que encima, la gente los consigue gratis. Eso ha generado una corriente de opinión muy negativa: los cubanos no pagan por juegos, por tanto, no vale la pena el esfuerzo. Lo cual no es tan cierto, los gamers cubanos de PC consiguen juegos gratis, pero también acuden a negocios de venta de juegos piratas. La solución a esto es ofrecer algo que los piratas no pueden: multijugador.

Supongo que algunos están pensando, “Pero hombre de dios, ¿de qué multijugador hablas si no hay conectividad? ¿Te has fijado en lo que vale una hora de internet? ¿O los paquetes de datos móviles?”. Mi respuesta es que a pesar de eso, hay gente jugando muchas cosas por datos móviles, que es la conexión más cara. En el caso del Nauta Hogar, las horas nacionales son baratas, ¡y nadie las usa! Este servicio Nauta, que había alcanzado un punto muerto al no haber más líneas telefónicas, volverá a crecer a finales de año con la oferta de Nauta Hogar por 4G. Me atrevo a pronosticar decenas de miles de casas más con internet. A finales del año pasado ETECSA nos sorprendió con una bajada de precios y un aumento de las horas. Podemos asegurar que no será la última vez, quizás dentro de tres años veamos no una caída de precios, pero sí un incremento de las horas.

Por tanto, un juego online, persistente o no, ya se vuelve un poco más factible. Habría que tener en cuenta el factor lag y diseñar mecánicas de juego adecuadas. También optimizar la máximo el uso del ancho de banda, como hace Dungeons and Honor, cuyo consumo de datos es mínimo. La monetización es un tema amplio, ¿pagarían los jugadores una suscripción? Si el precio es bajo, yo creo que sí, lo que permitiría cubrir los costos básicos de operación. Creo que la implementación de una tienda de objetos sería obligatoria. La experiencia internacional demuestra que los jugadores son más propensos a pagar por mierda inútil que a pagar por una suscripción. Lo sé, porque yo también lo hago y lo haré. Suscripción+tienda podría ser una solución que garantice las sostenibilidad a largo plazo incluso en un mercado reducido.

El tema dinero nos lleva a las plataformas de pago, que siguen creciendo. Transfermóvil tiene dos millones de usuarios. Suponiendo que consigas que un 1% de ellos se interese en el juego, ya serían 20 mil potenciales clientes, un número que suena bastante bien. Enzona es más complicado, pero con el atractivo de que los usarios no deben ir al banco para solicitar la activación de la cuenta. Está por verse qué posibilidades ofrece el nuevo monedero virtual de ETECSA.

Explicado lo anterior, ahora les voy a decir por qué no sucederá. Los juegos multijugador tienen la justa fama de ser complicados. Los desarrolladores siempre soñamos con hacer un MMORPG mejor que WoW, pero nunca lo hacemos. Si fuese fácil, ya alguien lo habría hecho y la verdad es que grandes compañías con equipos de gente que cobran miles de dólares al mes ha fallado intentándolo. Créeme, no vas a hacer un WoW. Los desarrolladores cubanos lo saben y por eso nadie lo intentará. Además, un esfuerzo así requiere un equipo y aquí en Cuba juntar más de dos personas es toda una proeza. Mientras más grande es el nivel de los desarrolladores, más difícil es unirlos, porque cada uno tiene su propio proyecto. Existen dificultades objetivas que no podemos negar y a veces nos escudamos en eso para no dar el primer paso.

En fin, después no digan que no les avisé. No es necesario un WoW. Podría ser un MOBA. Podría ser un battle royale. Podría ser cualquier MMO que se te ocurra. Solo es cuestión de intentarlo.

Aprovecho para recordarles que el Laberinto está aquí esperando por que lo compren. Arriba, que con eso financiaré mi juego online.

Dungeons and Honor, multijugador indie cubano

Si crees que no podemos crear juegos buenos y divertidos en Cuba, estás un poquito equivocado. Aquí les traigo una partidita de Dungeons and Honor, un juego cubano aún en desarrollo que está en su primera beta en estos días. Es un multijugador para móviles (aunque creo que habrá una versión para PC luego) en el cual controlas tres unidades de diferentes clases, que puedes combinar de la forma que quieras y enfrentarte a otros jugadores en modo 1 vs 1 o 2 vs 2.

Y recuerden que El Laberinto del Saber está a la venta. No dejen de comprarlo y apoyar a nuestro grupo de desarrollo.

 

Godot 3.3 acaba de salir, no dejen de actualizarse

Ayer por la tarde me sorprendió la noticia: tenemos Godot 3.3 (no confundir con la 4.0). Lo que iba a ser la versión 3.2.4 acumuló tantos cambios que acabó por convertirse en un salto de versión. Para los que tengan alguna preocupación, la 3.3 es estable y una actualización recomendada. A lo largo de este año veremos quizás varias 3.3.x y una nueva subida a la 3.4, pues el propósito es que se le dé soporte a largo plazo mientras haya interés y colaboradores. En mi opinión, tendremos 3.x para rato, pues no creo que la 4.0 alcance ese nivel de madurez hasta mediados del 2022.

En general, los cambios son muchos, aunque para nada suscitan el interés que la rama 4.0. Hay algunas optimizaciones en la parte de rendering, sin embargo nada extraordinario en la parte 3D. Por ahí, Godot 3 sigue estando jodido por diseño. Quizás en un futuro veamos integrarse el PR con cacheo de shaders, que solucionaría el grave defecto de que los shaders se compilan solo cuando son necesarios. O sea, cuando el material se vuelve visible, causando una parada del juego. Tenemos batching unificado en 2D, mejorando aún más el rendimiento en esa parte.

En Android ahora podemos exportar a un nuevo formato: AAB. No sé que impacto tendrá eso para los que usamos Apklis como plataforma de distribución. Desde la rama inestable se han traído algunas funcionalidades como el nuevo importador de FBX, que dicho sea de paso, me ha dado grandes bateos con las animaciones, y el resaltado de la edición de subrecursos en el editor. Esto último parece una bobería, pero no lo es, la ayuda visual viene muy bien para no perderse en el panel del inspector.

Pienso poner a prueba esta versión hoy mismo y en unos días tendremos actualización del Laberinto dle Saber, que les recuerdo que pueden comprar aquí. Les garantizo que los ingresos serán invertidos en artículos de primera necesidad como tarjeta de video nueva, más RAM, un mouse nuevo, etc. Así que no dejen de dar su aporte.

Después del Laberinto

Ahora que el Laberinto del Saber (que pueden comprar aquí) es casi historia antigua, toca moverse en otra dirección. El próxmo proyecto aún está en pre-producción y pruebas. Si logramos sobrepasar la etapa de pruebas, será un ARPG 3D para móviles.

La imagen no tiene nada que ver con el proyecto y solo ilustra una de las pruebas: equipar objetos. Aquí ven al Esqueleto Alegre llevando espada y escudo, aunque no sabe que no ha aprobado la audición y que en el juego definitivo no llevará ninguno de los dos. En caso de que no sigan mi blog oficial y sientan curiosidad, los objetos ya tienen cierta funcionalidad implementada. La espada hace daño y el escudo reduce el daño recibido.

Aunque se ve un control para móviles, el proyecto no está corriendo aún en teléfonos, porque está hecho con Godot 4. Aún no disponemos de plantilla de exportación y creo que no la habrá por un buen tiempo.