Primer release de Open 3D Engine, para que puedan probarlo sin necesidad de compilar todo el motor. Además, han tenido la gentileza de publicar un conjunto de tutoriales (para hacer un Pong) que pueden servir de punto de partida.
Se los dije
Hace un par de días lo decía, no muy en serio, pero parece que acerté.
Arcane no solo dejó atrás al fenómeno de El Juego del Calamar., sino que también está considerada en IMDB como una de las mejores series de la historia, por encima de Juego de Tronos. Por supuesto, hay algunas que han puntuado mejor, como Chernobyl o The Wire. Y también debemos considerar que el final de Juego de Tronos fue bastante discutido.
Para los que anticipaban que La Rueda del Tiempo podría ser un digno heredero de Juego de Tronos, pues eso no se lo creía ni Amazon. Para empezar, buena parte del éxito de la adaptación de Canción de Hielo y Fuego se debe a que se trata de baja fantasía, con un componente muy alto de violencia y sexo. No veremos mucho de esto último en La Rueda y en cuanto a violencia... no creo que fulminar bichos generados por computadora con hechizos le gane muchos puntos. La gente no está muy dispuesta a darle una oportunidad a este tipo de fantasía. Agreguemos que su desarrollo es más lento (son una docena de libros) y que sus primeros episodios no encganchan mucho y ya podemos incluso dudar de que esta serie logre llegar la final de la historia original.
En cambio, la ambientación steampunk oscura de Arcane es más potable. Explota desde sus tres primeros capítulos y cuando llegas al noveno estás más loco que Jinx porque hay que esperar un año o más por la segunda temporada.
Parece que el relevo ha llegado de donde menos los esperábamos: de los videojuegos en vez de la literatura.
Unity compra Weta Digital
En el hipotético caso de que no te hayas fijado en los créditos de unas cuantas pelis de éxito de los últimos tiempos, o que ni siquiera hayas visto Lord of the Rings, te diré que Weta es la empresa detrás de los efectos especiales de muchos filmes. Además del mencionado, Weta ha trabajado en Avatar, King Kong, El Planeta de los Simios, etc. Pueden consultar la lista completa en Wikipedia. Fundada por Peter Jackson y un par de amiguitos en 1993, acumula un montón de premios y ha desarrollado un conjunto de herramientas para facilitar el trabajo delos artistas de efectos especiales.
Por ejemplo, City Builder para generar ciudades, Manuka/Gazebo el par de renderizadores (el primero de alta calidad, para el resultado final, el segundo en tiempo real, para previsualizaciones rápidas) o MASSIVE, para animar multitudes de agentes (como la batalla de los cinco ejércitos, en El Hobbit).
Estas herramientas en concreto son lo que Unity busca obtener con esta adquisición que ha implicado desembolsar 1600 millones entre efectivo y acciones, y por supuesto, su grupo de desarrollo que suma unos 275 ingenieros. Los artistas visuales serán movidos a una nueva entidad nombrada Weta FX, que continúa siendo propiedad mayoritaria de Peter Jackson, para que siga convirtiendo historias de un solo libro en trilogías de siete horas. La adquisición pondría esta tecnología al alcance de los usuarios de uno de los motores de juegos más populares del mundo, facilitando en gran medida la creación de contenido de alta calidad.
Creo que habrá que esperar un año al menos a que se concrete la integración de estas nuevas herramientas en el flujo de trabajo de Unity y entonces veremos la repercusión que tendrá la compra de Weta en el desarrollo de juegos. También pienso que esta movida es un intento de ponerse a la par con Unreal Engine, que ha dejado el listón muy alto con su versión 5. O por lo menos, no seguir quedándose atrás. Si lo analizamos bien, es un jugada en cierta forma lógica: apunta a la base de usuarios de Unity (creadores indies, equipos pequeños) y les ofrece, en teoría, la posibilidad de equipararse con los grandes. Así que muchas felicidades a los colegas que usan Unity, auqnue repito, aún está por verse el efecto real.
Un bug resuelto, luego de meses de búsqueda
Hay veces que uno se sienta a trabajar y dice: hoy sí voy a solucionar este bug. Revisas el código de punta a cabo, pruebas enfoques diferentes, te exprimes el cerebro... y te vas a dormir sin haber resuelto nada. Ayer logré romper la rutina y arreglar un error que me venía estropeando la IA del juego desde que implementé el combate básico. La historia corta: tuve que revisar el código de rotar el personaje hacia una posición y terminar usando el método simple (look_at), pero antes hubo que cambiar la orientación del modelo.
Por defecto, los modelos se exportan de Blender orientados hacia +Z. En los foros me sugirieron que debían estar orientados hacia -Z, que es la dirección que Godot asume como "frente". Además, en vez de ir directamente a usar look_at, utilicé un código que terminaba sumando más y más grados a la rotación y el NPC saltaba entre dos direcciones en vez de apuntar al jugador y seguirlo en su movimiento. Era un problema molesto que estaba trancando todo el desarrollo de la IA y que me hacía perder mucho tiempo.
Ahora que está solucionado el asunto de mayor prioridad, me toca sentarme a estudiar el proceso de creación de plugins para Android en Godot. Es la única forma en que puedo integrar el sistema de micropagos desarrollado en Cuba. Eso implica aprender un poco de Java o Kotlin, algo que no estaba en los planes.
De regreso
Ya estoy de vuelta al trabajo, con la billetera vacía, pero contento. La mejora no ha sido sustancial, porque solo he encontrado un i7 7700 (anteriormente tenía el i5 6500), pero considerando que Cuba vive un proceso de inflación desbocada, había que apañárselas con lo que apareciera. En un mes podría costar mucho más. También he saltado a 16 Gb de RAM, que ya me era muy necesario.
He tenido que tomarme un par de días para volver a familiarizarme con el proyecto, al que solo había echado unas esporádicas miradas. Hay montones de problemas de diseño que corregir, errores que cometí al inicio del proyecto y que he ido identificando poco a poco. Se trata de algo que aunque no es muy grande, es un poco mayor que El Laberinto del Saber.
Ahora que el trabajo está encarrilado de nuevo, es momento de poner en marcha otros planes atrasados, para tartar de rentabilizar un poco más el susodicho Laberinto.
La aventura del multijugador en Godot 4
Cuando digo aventura, no es esa de las de Disney, con final feliz y canciones. De hecho, aún no se ve el final por ningún lado. Es más bien una aventura tipo Juego del Calamar (que está de moda), donde no sabes lo que viene a continuación y hay mucho ensayo y error contra reloj. Sobre todo error.
Empecemos por el principio, que es donde empieza a principiar todo. Ya está saliendo el pre alfa de Godot. No he tenido tiempo de hablar del asunto, pero lo he estado usando desde hace un mes aproximadamente. Mi próximo objetvo es hacer algo multijugador, por eso volví a echar mano del tutorial sobre servidor dedicado de Game Dev Center, invertí un rato en ver los videos iniciales con calma, hasta que al fin pude encontrar algo de tiempo para implementar una prueba. El problema es que el sistema de redes cambia muchísimo en Godot 4. La documentación no lo dice, la gente aún no lo sabe (salvo los que lo programaron), así que toca joderse.
Aunque el tutorial aún puede darte una cierta idea general, he tenido que descubrir a las malas cómo se hacen las llamadas RPC. Antes simplemente declarabas una función remote del otro lado. Ahora la función debe estar declarada en ambos lados de la conexión, con los mismos parámetros y marcada con @rpc. Además, de un día para otro, el parámetro any de la anotación @rpc se convirtió en any_peer. Por suerte, un amable mensaje de error me lo explicó en detalle.
Supongamos que en el cliente creas un singleton llamado server, que entre otras cosas debe enviar un valor al servidor:
server.gd
@rpc(any_peer)
func test_value(val):
rpc_id(1,StringName("test_value",val)
En el lado del servidor, necesitaremos una clase o script llamado server también, porque la ruta de la función debe ser igual:
server.gd
@rpc(any_peer)
func test_value(val):
print(val)
Así, a grosso modo. Si empiezas a ver errores en el debug de que el checksum no coincide y que la ruta del nodo no existe, quiere decir que hay una diferencia entre la función de un extremo y la del otro. Aún me queda mucho por delante, pues ni siquiera he pasado de la parte de login, usando un servidor de autentificación. He decidido, de momento, no enredarme con un gateway, porque ya eso serían cuatro proyectos diferentes. No me parece que se justifique en un entorno donde a lo más, habrían dos o tres servidores, uno para autenticación y los otros sirviendo mundos o regiones del juego.
Con un poco de suerte, en diciembre habré conseguido entender la replicación del estado de los jugadores.
Reporte de estado
Sigo sin PC, así que no tengo tiempo para publicar aquí. Además de eso, la ciudad está sometida a restricciones de movilidad: a mediodía cerramos y me voy a casa. El poco tiempo libre que tengo se lo he dedicado a un proyecto de un amigo.
Se trata de algo para móviles, que parece ser la moda ahora, con Godot. Definitivamente útil para aprender, aunque no era mi intennción involucrarme en proyectos 3D con Godot 3.x. Las dificultades que estamos experimentando me han dado la razón, casi todas relacionadas con pobre rendimiento. Espero poder publicar algún video dentro de unos meses.
Quizás podría decir que la buena noticia es que logré compilar O3DE, crear un proyecto y abrirlo. La documentación es escasa, incluso si buscas la referente a Lumberyard. Eso y la falta de tiempo me impiden hacer poco más que poner objetos en la escena.
En fin, que puedo dar la mitad de este año por perdida, a menos que considere un logro ponerme al día con series que nunca vi por falta de tiempo.
Nuevo temblor
Esta mañana tuvimos otro temblor bastante fuerte. Al parecer, su origen fue en Haití, donde fue más fuerte aún. Es muy difícil explicar lo que se siente al escuchar los ladrillos de tus paredes caer y el ruido de la casa al sacudirse, así que no me detendré en eso ahora.
Lo peor de todo es ver cómo tu vivienda poco a poco se va llenando de grietas y cada día te encuentras un pedacito de pared aquí, y otro allá, que ha caído mientras estabas fuera (porque no solo hay temblores grandes, hay otros menos perceptibles a diario). Y ver que no puedes hacer nada para arreglar esos daños, porque los materiales no existen. O existen a un precio inalcanzable.
Así que te sientas a esperar, a preguntarte si la próxima vez se caerá la pared completa, junto con el techo (si no se lo ha llevado antes un huracán) y el resto de lo que te queda de casa. A preguntarte si te caerá encima. No te sientas a pensar en soluciones porque no las hay.
Laberinto del Saber disponible para PC
Ya está casi listo (aún quedan detalles por pulir) el port del nuevo Laberinto del Saber para PC. Pueden jugarlo en Windows o Linux, ya sea con teclado, como en los viejísimos tiempos de principios de los 90 o con un mando.
Disponible para descarga gratis, pero también pueden dejar una donación, que me vendría muy bien para armar una nueva PC.
Ya he visto FF 9, y se las cuento
Un poco tarde, pero ya he visto Fast&Furious 9. Definitivamente, la peor de la serie, al menos hasta que salga la décima parte, que será incluso más mala que esta. Esto es largo, así que empecemos.
Aunque Dom vive recluido y alerta, sus amigos llegan para fastidiar la tranquilidad. Don Nadie les ha enviado un mensaje de emergencia: su avión está bajo ataque por un agente desertor y transporta algo importante que debe ser puesto a salvo. Dom no quiere inmiscuirse y por suerte, sus socios se van sin quedarse a cenar. Sin embargo, Letty quiere fiesta y se apunta. Al final, como no podía ser de otra forma, el viejo equipo se reúne otra vez.
El avión de Don Nadie, que transportaba a Cipher y un dispositivo secreto, ha caído en un lugar que jamás oímos mencionar y que olvidaremos a los cinco minutos. Lo que importa es que etá en medio de una zona militarizada y los soldados aparecen cuando el grupo ha logrado recuperar el dispositivo. Es hora de que empecemos con los disparates y locuras. En medio de la fuga, Roman se ve en medio de un tiroteo y recibe algunos balazos de AK, que son detenidos por el chaleco. Debería tener varias costillas fracturadas y estar muy machucado, pero no. El chaleco antibalas es mágico, no solo dispersa la energía del impacto, sino que también protege en las partes donde no hay placa balística.
Aquí tenemos la primera presecución en autos de la peli, atravesando selva, un campo minado y cruzando un puente colgante que se cae, pero aquí los autos vuelan, o por lo menos, se cagan en las leyes de la física. Aparece un nuevo personaje, que resulta ser un conocido de Dom: su hermano Jakob. El hermanito se hace con el dispositivo y se larga en una maniobra espectacular con salto al vacío y posterior captura del auto por un avión. Dom no quiere ser menos aprovecha que del puente solo queda una cuerda y embiste el poste a toda velocidad, su auto se amarra solo la cuerda (la IA de Tesla no puede hacer eso) y van a parar al otro lado, con tres o cuatro vueltas al caer para aumentar la complejidad del ejercicio.
Dom y Jakob están enemistados desde hace años. El padre de ambos murió en una carrera, y durante su estancia en prisión Dom descubre que el desperfecto que causó el accidente tien que haber sido culpa de su hermano menor, así que cuando regresa, lo manda a volar. El dispositivo, llamado Ares, es la mitad de uno de esos Objetos de Película, capaz de controlar cualquier equipo electrónico, ya sea computadora, arma, o un iPhone, que es incompatible con todo. Una idea muy probada. Más que probada, gastada en infinidad de películas y series.
Para encontrar la mitad que falta, Jakob y su empleador han tomado prisionera a Cipher y la tienen metida en una jaula de cristal completamente vacía. Y yo me pregunto, ¿dónde duerme, dónde se baña, dónde mea? Porque en la caja no hay nada de eso. Cipher recupera la posición de la otra mitad del dispositivo, mientras que nuestro grupo de héroes, gracias a unas coordenadas metidas en el mensaje de Don Nadie, se hacen con una base secreta en algún lugar que debe ser muy céntrico, porque está cerca de todas partes. Aquí se les suma Mia, la hermana de Dom, para completar el equipo.
El segundo objeto está en Edimburgo, así que parte del equipo se reúne para poner en peligro a los peatones con otra carrera de autos en medio de la ciudad. Por su parte, Letty y Mia van en busca de la Llave, que es necesaria para activar Ares, que guarda alguna relación con Han, que supuestamente murió en otra película que ya no recordamos. Por supuesto, Jakob se hace con la segunda mitad de Ares, pero nuestros queridos protas se quedan con unos electroimanes muy chulos con tiritas led. Mia y Letty se encuentran a Han, y la Llave resulta ser una niña, la hija de los creadores del dispositivo, asesinados tiempo atrás.
Los malvados secuaces de Otto el Villano interrumpen la reunión para llevarse a Elle la Llave. Como siempre, el error clásico del villano es dejar varios hombres atrás para que maten a Dom. Joder, a estas alturas ya deberían saber que al protagonista hay que matarlo en el momento. Todo el mundo se escapa para planificar la recuperación de Ares, que ahora tiene una complejidad extra: hay que neutralizar el satélite usado para propagar la señal.
Tej y Roman tienen que volar hasta el satélite, a 80km de altura, para hackearlo, porque no se puede hacer remotamente. Para ello acuden a unos locos que supuestamente alguien conoce de alguna peli anterior, pero que ya nadie recuerda, y arman un auto con varios cohetes amarrados. Lo suben al lomo de un avión (pésimo lugar desde donde lanzar cosas, si me preguntan a mí) y a volar se ha dicho. Cuando llegan al satélite, no les queda más remedio que embestirlo, porque el plan A no funciona debido a unos cables que no resistieron el viaje espacial. Acabarán más tarde en la Estación Espacial Internacional.
Otto activa Ares con Elle, y comienza la transferencia al satélite. Por lo lento que va, debe ser una conexión de Nauta Hogar a 1mb, o debe ser un archivo grande de cojones. Pero si no fuese así, los protas no tendrían tiempo de montar una persecución como Dios manda.
El villano Otto le pide a Jakob que verifique por qué la señal está interrumpida, pero es una estratagema para sacarlo del camión donde van y que su otro secuaz de relleno lo mate. Cipher ahora está libre y trabajando con él. Pero Jakob se salva con ayuda de Dom, que choca a un carro volcado para que Jakob caiga encima y vaya a parar al blindado ocupado por Mia, que lo recoge y le cede un auto. ¿Alguien se esperaba otra cosa? Porque se veía venir desde el principio, que al final terminarían juntos. Jakob se va, pero luego regresa para echarle una mano a Dom en el asunto de volcar el enorme camión blindado donde llevan Ares. Usando los electroimanes, se aferran a la cabina y hacen que todo ese gusano blindado de más de veinte metros de largo se dé la vuelta hacia adelante. Nada, que ni Mijaín López hubiera conseguido un desbalance así.
Aunque ahora las ruedas están hacia arriba, el camión sigue avanzando como si nada, dándole tiempo a Dom a reventar el piso, entrar y recuperar Ares. Lo que no logra es salir hasta el último momento, no sin que antes Cipher le dispare varios cohetes desde el dron y que alcancen un precipicio.
Cerramos con una escena feliz de parrillada entre amigos, cerveza y hamburguesas. Otra escena breve con Jason Statham, para dejarnos ver que es probable que esté en la próxima peli, y chao.
De lo espectacular a lo ridículo hay solo un paso, y FF 9, no solo ha dado ese paso, sino que además ha cogido impulso y ha dado un triple salto más allá, cayendo en toda una categoría totalmente nueva. No es solo todas las patadas a la física, sino también a la anatomía, con esos personajes que parecen ser de goma que caen, dan vueltas dentro de autos y hasta etcétera. En fin,que si quieres ver esta peli te recomiendo que dejes el cerebro en el refrigerador.
Intentando compilar O3DE
Pensaba esperar a que sacaran un release como debe ser, pero a final de mes aún me quedaban unas horas de Internet sin usar y era mejor gastarlas en algo que perderlas. Por eso me puse manos a la obra y descargué el repo y las dependencias, que no pasaban de 4-5 gb. La supuesta compilación fue bien al primer intento, incluso con un Visual Studio por debajo de lo recomendado, pero los problemas comenzaron cuando intenté crear un proyecto.
El asunto es que según la guía, los proyectos se crean desde la línea de comando, se "registran" en el motor y a continuación debemos ejecutar cmake para generar los archivos de proyecto y luego para hacer un build. Un poco confuso, la verdad. Sin embargo, una vez conseguido eso, me encontré que el supuesto editor no estaba por ningún lugar y ahí se enredaron las cosas. Intentar compilar el motor con Visual Studio me produjo un montón de errores.
Conclusión, que no he podido ver O3DE funcionando. Quizás en un estudio profesional con experiencia en Visual Studio y cmake las dificultades serían mínimas, pero si eres un indie que quiere algo listo para arrancar sin complicaciones, esta no es tu mejor opción. Hay que esperar aún que pulan más esos detalles de usabilidad y que sea solo ejecutar un gestor de proyectos, crear y empezar a trabajar.

