Ya hemos entrado en fase de desarrollo con assets un poco más serios y han aflorado algunos problemas relativos al uso de una cámara ortogonal. Ya en Unity me había topado con cosas como que el shader toon no funcionaba en ese tipo de proyección. En Godot, hay un par que vale la pena mencionar. Por ejemplo, las sombras se torna borrosas, y eso solo en objetos grandes, que arrojan una sombra significativa. Los objetos pequeños apenas producen una manchita.
El segundo problema vino cuando se agregó un shader para el terreno, que la pantalla se dividió en dos mitades, con la superior un poco más oscura que la inferior. Ahí sí tuve que buscar una solución y cambiar a una cámara en perspectiva, con FOV=15. Esta solución me fue recomendada varias veces, y también es la que usa Adam Lacko en su reimplementación del motor de Van Buren. Adam consigue un efecto tan parecido a lo que quiero que hice unas pruebas hace un tiempo y he aplicado lo que aprendí ahora.
En general, habrá que esperar que el jodido sistema de terrenos al fin llegue a Godot 4 para poder darle el punto final a las escenas. Mientras tanto vamos buscando el flujo de trabajo que nos acomode para el resto.
Pues así. Me acabo de dar cuenta de que ayer mismo era fin de año y hoy resulta que estamos a 12 de enero. ¿Cómo cojones pasó eso? Bien, a lo que íbamos.
Se ha ido medio mes y hay muy poco que decir. Mucho trabajo encaminando el proyecto y armando dos conferencias para el próximo Global Game Jam. Estaré de nuevo en la Universidad de las Ciencias Informáticas como invitado y podrán ver las conferencias en directo, si todo sale bien. También creo que me regalan otro pulóver, pero esas cosas materiales no son las que importan. Atentos a mi twitter y Facebook, que publicaré el link en cuento estemos en vivo.
El proyecto, ah... Poco que decir por ahora. Probablemente poco que decir por un buen tiempo pero supongo que eso no le preocupará a nadie.
A ver, señores, necesito el contacto del servicio técnico del universo, porque esto que me está pasando no es normal. Hace un par de meses se me rompió la motherboard. Ahora se me rompe la fuente, y de paso, la motherboard nueva deja de apagar correctamente (se queda como suspendida y el ventilador de la fuente sigue girando). Por si fuera poco, también se tupe la taza del baño. Y ayer me encuentro que los gatos tumbaron el control del televisor y lo rompieron. Hasta cuándo es esto?
El colmo es que ni siquiera las partidas de DOTA 2 que empiezo con ventaja abrumadora las logro ganar, siempre se joden al final.
Ante todo mis disculpas, en el día de ayer el repo del prototipo estuvo en muy mal estado. Se rompió mi fuente de alimentación (la de la PC, no la mía) y muchos cambios se quedaron pendientes. Cuando logré poner el disco duro en otra PC, no me percaté de que faltaban archivos por agregar. Y cuando agregué esos archivos, no me percaté que una escena se había dañado cuando mi fuente falló y se apagó la PC. Es un problema que ya veo es habitual en Godot.
En fin, esos errores han sido eliminados. Y sustituidos por otros. Pero me place informarles, queridos compañeros de este sindicato, que el prototipo está casi terminado. O al menos, ahora es posible combatir. Lo que queda por delante es el proceso de pulir, refinar bien el sistema, y quizás agregar un par de cosillas. Los planes eran tener todo listo para enero, pero como nuevamente estoy sin estación de trabajo, creo que no podré cumplir a tiempo.
Bueno, ya concluido y lanzado Battle Gear, toca moverse a otra cosa, que ya íbamos atrasados. Luego de muchas discusiones y de golpear con el látigo al resto del equipo para hacerles ver su falta de ambición, hemos iniciado un pequeño prototipo. El objetivo no es hacer un juego completo, ni iniciarlo, sino crear un banco de pruebas para el sistema de combate.
En este prototipo solo trabajaremos en eso. Nada de gráficos, interacción/exploración solo la justa, y detalles los estrictamente necesarios. Luego de más o menos un mes, ya hemos identificado unos cuantos problemas y descubierto algunas cosillas.
Por ejemplo, el animation retargeting nos ha salido casi a la primera, aunque tiene sus fallitos. Solo funcionó bien cuando hice el mapeo de los huesos empezando por los pies y hacia arriba. Lo natural es que empieces de arriba hacia abajo, pero al llegar a la cintura, las cosas empezaban a dar problemas. Quizás tenga que ver con la estructura de huesos creada por Blender.
Sin embargo, el nuevo sistema de pathfinding ha demostrado ser problemático. El personaje sigue flotando sobre el terreno y en reddit me dicen "que así es como debe ser". El segundo programador del equipo lleva varios días enfrascado en la solución de ese problema.
La jugabilidad ha sido relativamente trivial de implementar, porque muchas ideas ya estaban probadas (o al menos, pensadas) con anterioridad. Eso aún sigue y seguirá siendo un blanco móvil, porque es donde probaremos y romperemos más cosas, en busca de un combate en tiempo real dinámico, pero sin caer en lo frenético. Que para machacar botones ya tenemos el Diablo o DOTA (si te apetece un combate sazonado con el mejor menú de insultos internacionales).
Decir que este ha sido un video complicado es quedarse corto. A mitad de trabajo se rompió mi PC y me tomó unas semanas recuperarme. Tuve que hacer la parte final en otra PC, y editar en la mía, ya recuperada. A esas alturas había olvidado el orden del video, no tenía tiempo para tratar el sonido, y ha sido un desastre total.
No obstante, no podía dejar perder el trabajo ya hecho.
Espero que les sirva para que al menos se formen una idea de cómo funciona O3DE, un motor que a pesar de sus probelmas, no se ve tan mal. De hecho, espero poder migrar en próximos proyectos, cuando él resto del equipo mejore en experiencia y hardware.
Huelga decir que esto no es un tutorial, solo es una prueba rápida, muy incompleta y con un dominio casi nulo del lenguaje script (Lua) y de O3DE en general.
Han sido unos días bastante horribles. Unos días antes de lanzar Battle Gear se murió mi motherboard. Definitivamente, no crean eso de Ultradurable en las cajas de Gigabyte. He visto dos placas Gigabyte B250 muertas con menos de dos años de uso cada una, y una tercera que no sé cuánto tiempo vivió, pero con el mismo problema. El lanzamiento se logró a pesar de eso... pero a última hora descubrimos un error grave, cuando el apk ya estaba en la plataforma esperando autorización. Esa fue otra carrera contra el tiempo para encontrar el misterioso problema y solucionarlo. Un consejo: tengan cuidado con el manejo de assets en Godot. Parece ser que es posible hacer algo tan disparatado como borrar una textura y el material seguirá manteniendo la referencia a la textura importada y todo seguirá funcionando mientras no limpies el directorio .import o ejecutes el juego en el editor.
Aunque he logrado recuperarme, el atraso acumulado es importante. Me esperan un par de días de trabajo intenso en las pocas horas con electricidad que tengo en las noches, para subir el lunes un video sorpresa que se quedó a medias con la rotura. Entre una cosa y otra, debo echarle un vistazo a la revisión de una novela para un concurso, y luego pasar al siguiente proyecto.
El nuevo hardware no es nada impresionante, más bien es una mierda total. Esta vez me he puesto de suerte y ha aparecido una motherboard Asus, pero de gama muy baja: una Prime B365. Tampoco se dejen engañar por el "Prime", en verdad es una caca, con apenas 4 puertos USB traseros y puertos PS2 en vez de puertos USB 2.0 par ateclado y mouse. No sé quién use PS2 a estas alturas. La distribución de la placa no es la ideal: la tarjeta de video bloquea el primer puerto SATA, y por suerte ese fue el único detalle. El CPU es un i3 8100, que probablemente cumpla con lo estrictamente necesario, pero no más que eso. Pero seamos matemáticos y veamos el lado positivo: estoy de vuelta. Con algo de esfuerzo (mucho, en realidad) podré mejorar lo que tengo ahora.
PArece una tontería,pero me ha alegrado mucho haber conseguido instalar O3DE 22.10. Una tarea trivial en otro país aquí se vuelve un rosario de dificultades. No tienes internet en casa, o la que tienes es de poca velocidad y con tiempo limitado, y así... Había estado esperando este lanzamiento para hacer el esfuerzo de cargar la PC hasta mi trabajo y hace dos días lo hice.
A ver, este no es el motor que puedes usar en Cuba con facilidad. De hecho, se está volviendo cada vez más difícil usar otros motores que antes eran más simples, como Unity. O3DE carece casi por completo de documentación adicional, y la oficial está disponible solo online. No existen tutoriales y punto. Los videos demostrativos de Amazon ignoran por completo la programación con Lua y se centran exclusivamente en el scripting visual. La gente que lo usa es porque ya tienen experiencia con Lumberyard o quizás CryEngine. Conseguir una respuesta en reddit toma tiempo y a veces ni siquiera la consigues, porque la comunidad aún es escasa.
Muchos detalles requieren pulido. Por ejemplo: el incómodo proceso de crear un proyecto, que demanda hacer una compilación inicial. Eso obliga a que los artistas necesiten un Visual Studio reciente (de nuevo, casi imposible de conseguir en Cuba). Y si eso les parece un engorro (se está trabajando en arreglarlo), no es ni siquiera lo peor. El build de un proyecto no puede hacerse con la versión precompilada del motor: es obligatorio tener el repo y compilar el motor. Pruébenlo un día y me cuentan.
Todo esto es lamentable, porque este es el motor que necesito, o el que tú necesitas, si piensas escalar y desarrollar proyectos de envergadura, con equipos medianos o grandes, donde Godot se queda corto. Es una herramienta pensada para títulos AAA, solo que aún le falta muchísimo. Supongo que toca sentarse y esperar un par de años.
Ya había hecho esto hace más de un año en Godot 4, así que me tomó un par de horas de trabajo reconstruir el proceso. No se trata de un tutorial completo, pero es un punto de partida si quieres entender cómo equipar todo tipo de items 3d en tu personaje, incluso objetos animados.
Esto, vamos a aclarar de antemano, no es una reseña. Las reseñas no son lo mío, supongo que ya se habrán dado cuenta. Son mis opiniones personales sobre Cyberpunk Edgerunners, la nueva serie anime de Netflix, basada en el universo Cyberpunk 2077 y creada en colaboración con CD Projekt y el estudio de animación Trigger.
Confieso que al principio el anuncio no me suscitó ningún interés. ¿Un anime basado en Cyberpunk 2077? Bah, será más de lo mismo, otra más para el montón de series basadas en videojuegos. Y considerando que estaba escaso de tiempo, entre trabajo y apagones, no sabía si podría dedicarle un tiempo (la tercera temporada de Dota: Sangre de dragón sigue ahí en espera, sin lograr engancharme). Pero, de alguna forma, el primer capítulo de Edgerunners consiguió que quisiera ver el segundo, y luego el tercero. De ahí, con altas y bajas (pocas bajas), la serie rueda bastante bien.
No voy a decirles que es una genialidad original... para nada. David Martínez es un joven pobre de Night City, que por casualidad encuentra un implante de grado militar perteneciente a la corporación Arasaka. También por casualidad, resulta ser que David tiene una sorprendente tolerancia al implante, su umbral de ciberpsicosis está más allá del promedio, aunque sin ser inmune. Y así arranca la vida de David como ciberpunk.
No llega al nivel de Arcane, y su guión padece de ciertos tropos comunes en el anime, aunque muy pocos y no hace de ellos el centro de su trama. Quizás porque la idea original proviene de Rafal Jaki, con historia de Bartosz Sztybor, que no me suenan a japonés (quizás sean argentinos). En general, Cyberpunk Edgerunners gira en torno al tema de hasta qué extremos puede llevarnos la ambición y el afán de conseguir nuestros sueños. Y después, muy bien envuelto y en el centro, el clásico "quiero ser más fuerte para proteger a mis seres queridos". Todo esto, explotado un poco apresuradamente en 10 episodios de 20 minutos.
Una vez establecido que no es nada del otro mundo, sí hay que reiterar que por lo menos, puede ser una historia entretenida a la que vale la pena dedicar una noche. Hay buena acción, tan violenta y cruda como cabe esperar del universo Cyberpunk 2077, que logra que te den ganas de regresar al juego, o jugarlo si aún no lo has hecho. Por ese lado, creo que cumple su objetivo de ser una herramienta de promoción para un título bastante vapuleado en su salida, que aún está luchando para obtener el reconocimiento que consiguió su hermano mayor, la saga del brujo. A estas alturas, dudo que lo consiga.
Un detalle que me gustó fue la banda sonora. Creo que hay temas interesantes ahí aparte del intro (en comparación, el outro suena bastante sosillo). Mi recomendación es que si pueden, le echen un vistazo. Por lo menos yo la he puesto entre las mejores que he visto en este año, que no considero muy prolífico en buenas series.
Antes de concluir, les aviso que pronto tendremos video nuevo. Me he atrasado porque la mesa está rota y tengo que trabajar con el teclado en las piernas y el mouse en una posición incómoda. Suscríbanse al canal para que reciban el aviso y les recuerdo que también me pueden apoyar en Patreon (para otras vías, me dejan un comentario).
Bien, dicho así no es nada. Peor hubiese sido volver a Gentoo. Y que conste, que no estoy muy contento con el cambio, mayormente debido a Gnome o esa cosa rara que tienen de escritorio. Supongo que me dirán, y si te molesta tanto, ¿por qué no te montas Cinnamon y ya se parece a Linux Mint? No, la verdad es que me da un no se qué no usar el escritorio que viene por defecto en la distro. Al final, siempre terminas encontrando cosas que no funcionan como deberían.
Entonces, ¿a santo de qué viene el cambio? Dejar una distro que llevas años usando y con la que te sientes extremadamente cómodo no es fácil y no fue una decisión sencilla. La causa está relacionada con Godot. Resulta que nunca he conseguido que en el editor de scripts funcione correctamente la comilla. O sea, que no puedo teclear ", simplemente, Godot la ignora. Esto es sumamente incómodo, porque GDScript usa muchísimo las comillas. Supongo que ahora me dirán, como mismo hace mi jefe, ¿y si tienes internet, por qué no la usas? Pues va a ser que no, ni en los foros de Mint, ni en los de Godot. Sin embargo, durante mi estancia en la UCI, en enero de este año, comprobé que en Ubuntu, todo iba muy bien.
Desde hace quince días tenía previsto una reinstalación total. Ha llegado el upgrade de este año: tenemos un M.2 nuevo. O nuevo no, de uso, pero me lo dejaron en buen precio y con un 87% de vida, a pesar de haber sido bastante cacharreado. Espero, con cuidado extremo, que dure varios años más. Pero ya venía haciendo falta. De hecho, necesito un teclado también pero eso sí no está a mi alcance por ahora (a menos que alguien me apoye aquí en Patreon). Nota al pie: ahora tengo espacio para desperdiciar en boberías como O3DE, esperen video sobre el tema, así que suscríbanse al canal. En ese momento empecé a plantearme la migración. Con un nuevo proyecto en ciernes, no puedo darme el lujo de copiar y pegar cada vez que necesite unas comillas.
Espero que el cambio tenga otras ventajas. Nos guste o no, Ubuntu se ha convertido en una especie de estándar en o que a escritorio Linux se refiere. Es de suponer que cualquier cosa rara funcione mejor ahí que en otras distros, aún en las derivadas, como Mint. O a menos, así era cuando usaba Linux a diario, que alguien me corrija si estoy equivocado.
Aún estoy en proceso de adaptarme. Como les decía, Gnome 2 no era de mi agrado y fue una de las razones por las cuales dejé Ubuntu y busqué una distribución con un escritorio más parecido a Windows. Pero creo que la comodidad a la hora de teclear código compensa la incomodidad de usar el escritorio.
Podría decir "la espera ha terminado", pero no es así. He esperado dos años por el beta o por algo mínimamente usable (el proceso de desarrollo tomó tres años y medio) y este beta 1 al menos ofrece un feature freeze. Sin embargo, para la versión definitiva aún faltan... yo diría que 9 betas más, seguidos por tres o cuatro Release Candidates.
De momento les dejo esto, para que se rían con el susto que pasé.