12 julio 2024

Curso "Master Mobile Game Development with Godot 4: From Concept to App Stores" de GameDev.TV

Sigo avanzando con los cursos incluidos en el último pack de Humble Bundle que compré con cursos de GameDev.TV.

Esta vez le ha tocado al curso "Master Mobile Game Development with Godot 4: From Concept to App Stores". Se puede encontrar tanto en GameDev.TV como en Udemy. Comprar el curso en uno u otro portal dependerá de tus preferencias y del que te ofrezca un mayor descuento en un momento determinado. El curso al final acaba siendo exactamente el mismo.

Está enfocado a la programación de juegos para plataformas móviles Android o iOS.

Se supone que el curso tiene un nivel intermedio aunque en realidad los primeros dos bloques de lecciones, en los que construyes un juego de plataformas muy básico sin tocar un móvil, funcionan muy bien como introducción (o recordatorio, si es tu caso) de toda la parte 2D de Godot.

El tercer bloque ya se mete en la parte más específica del curso y explica cómo configurar Godot para generar paquetes instalables en Android e iOS. A nivel de jugabilidad para móviles, se queda en enseñar cómo usar el acelerómetro del terminal y a detectar si la pantalla tiene escalado y a corregirlo.

El cuarto y el quinto bloques se me hicieron muy pesados, porque se centran en montar toda la parte de UI y a dotar de funcionalidad a los botones de los menús. Está bien, si no has visto ese tema antes para Godot, pero si ya te pilla sabiéndolo esos dos bloques se te pueden hacer largos. Aún así, tampoco recomiendo saltárselos porque lo que viene después se apoya en gran parte en el UI que montemos en esta parte.

El sexto bloque es el más interesante de todos porque se centra en cómo interactuar con la API de Google Play para ofrecer microcompras en tus juegos. Para ello, usa el plugin oficial de Godot. Este bloque tiene bastante complejidad y un par de puntos que no están bien explicados, no por dejadez del autor, sino porque son cosas que me parece que sólo ocurren cuando usas Google Play por primera vez y, una vez resueltas, ya no vuelven a pasar y te olvidas de ellas. Como el autor ya ha hecho varios proyectos en Google Play, no le han pasado esas cosas, y su lección avanza como un tiro, sin darse cuenta de que a los que hacemos esto por primera vez vamos a sufrir más eventualidades de las que salen. Así, por ejemplo, me ha parecido corta la explicación sobre cómo darse de alta como desarrollador en Google Play. También hay una lección, la 6.12 "Acknowledging", donde hay un hilo entero de comentarios de gente que nos hemos estrellado con lo mismo, sin que el autor hay acudido al rescate. Al final, tras muchas búsquedas por Internet, conseguí resolver mi problema y dejé mi solución en los comentarios. La solución fue desbloquear el modo desarrollador, no en el móvil (que eso sí se explica en el curso), sino en la misma aplicación de Play Store. Sospecho que el autor del curso no lo explicó porque es la típica cosa que desbloqueas al principio y luego te olvidas... hasta que vuelves a estrellarte con ello. Pero en un curso introductorio como este es un fallo no mencionarlo. 

El séptimo bloque es sobre cómo publicar la aplicación, pero, comparando con todo lo anterior, es una auténtica tontería por su sencillez.

El autor utiliza GDScript, pero yo iba traduciéndolo a Godot C# sobre la marcha, sin problema alguno hasta la parte de las microcompras, que me forzó a practicar cómo llamar a un componente en GDScript (el plugin) desde C#. Nada complejo. Una vez que te das cuenta de que se trata de cargar el plugin como un GodotObject y, a partir de ahí, llamar a sus métodos internos con el método Call(), todo se vuelve sencillísimo. Si acaso hay que tener en cuenta que el plugin te devuelve tipos propios de Godot, como Array o Dictionary, que no son exactamente los nativos de C#. En ese último caso reconozco que tuve que analizar el código fuente (en java) del plugin para entenderlo. Al autor del curso, todo esto de los tipos le resultó transparente, dado el tipado dinámico de GDScript.

El autor se explica bien. Es turco, pero su inglés es uno de los más claros que he oído en un curso, y si aun así lo de oír inglés fuera un problema para ti tienes los subtítulos, los cuales son bastante certeros por las pocas veces que he tenido que tirar de ellos. Me ha parecido también que las prácticas de programación que emplea el autor son "sanas" y que por ello acabas armando un programa bien estructurado. Eso de "aguas abajo tiras de los métodos de las referencias, mientras que aguas arriba devuelves señales" es un principio que yo ya venía sospechando por mi propia experiencia, pero que esta es la primera vez que lo oigo explícitamente mencionado, y es un principio de diseño que me ha gustado mucho. 

Por tanto, la sensación general es que, con sus pequeñas faltas, el curso es globalmente bueno e interesante. Lo recomiendo.