Feliz lo que sea y hasta luego

Un post muy breve para despedir el año y desearles feliz navidad, o lo que sea. He tenido unos días bastante ocupados, como suele suceder: mucho Godot, mucho trabajo, y luego mucho The Witcher. Me reservo las opiniones por ahora, excepto que las historias entremecladas me han como que mareado.
Nos veremos el año próximo.

Tirando el dinero por la ventana: Champions of Regnum vía datos móviles

Como se pueden imaginar, internet aún demora en llegar a mi casa. Recién esta semana solicité el traslado del teléfono de mi padre, y mi barrio ya no tiene capacidades. Por tanto, podría demorar años en recibir mi línea fija. En cambio, lo que sí tengo es 4G. Solo arriba, en mi cuarto, pero algo es algo. En ocasiones anteriores había utilizado el móvil para conectar la PC, durante un tiempo descargué mi correo por esa vía, pero esto dejó de funcionar al entrar la 3D. Esta semana volví a intentarlo a través de 4G y el resultado, aunque caro, fue bastante prometedor.
Hace pocos días, ETECSA lanzó una nueva oferta para clientes 4G: unos paquetes relativamente baratos que además ofrecen un bono si navegas bajo cobertura LTE. En total, serían unos 800 Mb por solo 5 dolares, que deben consumirse en 30 días. ¿Qué tanto rinde eso, en mi caso? Como verán a continuación, no mucho.
Para empezar, un poco de historia. Empecé con Champions of Regnum cuando aún se llamaba Regnum Online, hace tanto tiempo que ya he perdido la cuenta. Luego de abandonarlo lo retomé, conisguiendo llevar un personaje hasta el nivel 50 aproximadamente. En ese momento, perdí la posibilidad de jugarlo, durante varios años más. Regresé hace poco, pero no para jugar a full, porque con el servicio doméstico de internet en Cuba es imposible, esas 30 horas hay que utilizarlas con cuidado.
Otro gran problema es que Champions of Regnum ya no está accesible para Cuba, ni ellos mismos saben por qué. Es necesario usar una VPN. En un principio intenté con Psiphon, pero no funcionó. Luego de investigar un poco, probé ProtonVPN y este sí fue de maravilla. Entonces, ¿ya puedo jugar Regnum?
La respuesta es no. En apenas unos minutos de conexión consumí unos 40 Mb. El tráfico oscila, claro, en dependencia de la carga de usuarios en la zona y otras cosas. También hay que estar muy pendiente a desactivar las actualizaciones de Windows. Quizás en Linux el tráfico sea menor, pero no tengo la versión del juego para ese SO.
Sin embargo, la idea no era tanto jugar, si no más bien entrar a diario para asegurar las recompensas, sobre todo el ximerin, que solo se otorga luego de 7 días consecutivos. Para eso solo necesito unos minutos de conexión. Tendrá que bastarme por un par de años, supongo.

Godot, mi valoración hoy

Hace unos 4 años que valoré seriamente Godot para el desarrollo de juegos. En ese momento pasaba por una excelente racha mediática, aunque era poco más que un buen renderizador 2D. Mi decepción final vino cuando descartaron Vulkan, una decisión que tuvieron que echar atrás y sobre lo cual he hablado en otra ocasión. Decidí que si iba a aprender una herramienta de desarrollo, entonces aprendería la mejor. Y así me metí de lleno en Unity3d.
Hace poco recibí una propuesta para trabajar en un juego 2D de plataformas. Es algo que nunca he hecho y no está de más que lo intente. Sin embargo, luego de contactar a Unity, el otro miembro del grupo me informó que por ser cubanos no podíamos crear un producto comercial con el mismo. Casi de inmediato escogió Godot para sustituirlo.
Entre los motores de juegos libres, Godot es una especie de niño mimado. Tiene sus cosas buenas, que veremos más adelante, pero tiene también una serie de problemas que no han solucionado en los tres años que llevo sin mirarlo. Si alguien quiere tomarse en serio el asunto de desarrollar con herramientas open source, debería valorar también Urho3D y Banshee3D.
A punto de entrar en el 2020, Godot aún adolece de muchos problemas:

  • Un renderizador 3D pésimo, basado en GL ES 2/3. No sé si tenga deferred rendering (no lo dice en ningún lado) pero por suerte sí tiene PBR. El renderizador basado en Vulkan, descartado hace tiempo, recién ahora se está implementando y lo tendremos en la versión 4.0.
  • La parte 3D abarca mucho más que el renderizador, aunque en este caso esa parte que no incluye el renderizado es mínima. Godot tiene muy pocas herramientas y funcionalidades para proyectos 3D. Ni siquiera tiene editor de terreno. Quizás para la 4.0 hayan más cosas.
  • El flujo de trabajo 3D es deficiente. Aún se basa en el formato OBJ para modelos estáticos y Collada para mallas animadas. En la próxima versión 3.2 podremos usar glTF y FBX gracias a su nuevo importador basado en AssImp. Sin embargo, recuerdo que AssImp tenía su propia cuota de problemas hace unos cuatro años, precisamente con archivos FBX y .blend (supuestamente podía importar un archivo de Blender, pero nunca lo hacía).
  • Ni hablar de herramientas adicionales como un secuenciador.
  • El build no parece estar muy optimizado. Un nivel sencillo con un par de imágenes ocupa casi 60 mb. No logré hacer la prueba para Android.

Las ventajas de usar Godot no llegan a opacar esos problemas, pero son significativas:

  • Es un motor muy noble y fácil de usar. Incluso ofrece scripting visual. Su lenguaje script es fácil de aprender y además está muy bien integrado en el motor.
  • Licencia MIT. No hay limitaciones de embargo a tu país ni nada de eso.
  • Si tienes en mente un proyecto 2D, es un excelente motor. Hace años tenía ya funcionalidades como luz y sombras en 2D que Unity recién agrega ahora.
  • Es posible publicar en consolas, a través de un tercero. La documentación te remite a Lone Wolf Technologies, una empresa de uno de los creadores de Godot, que da el servicio de portar tu proyecto a Xbox One y PS4. En ese caso, quizás las leyes de embargo sí apliquen, porque estarás tratando con empresas norteamericanas.
  • Es pequeño y correrá en hardware limitado.
  • Abunda la documentación. Quizás no haya tanto como para Unity, pero recuerden que aquí hay mucho menos funcionalidades que documentar. En todo caso, bastará para arrancar.

Saque usted sus propias conclusiones. Las esperanzas están puestas en la rama 4.0, que no será estable, o al menos beta, hasta dentro de un año. Mientras, hay que tirar con la 3.2 no parece ser muy diferente de la 3.1, y una posible 3.3. Si quieres experimentar, es una buena opción, aunque repito, hay otras cosas por ahí menos divulgadas y que podrían sorprender. Si pretendes hacer un proyecto 3D sencillo, Godot podría servir. Si tu objetivo es un proyecto 2D, o incluso con elementos 3D, que se vea excepcionalmente bien, Godot es la mejor opción. Ya saben, la decisión es suya.  

Un breve e incompleto vistazo al Olimpo de los escritores de fantasía y CF modernas

Tolkien es el puto Amo y Creador del Universo, que está ahí desde siempre. A su derecha hay una pelea formada entre Brandon Sanderson y George R. R. Martin, que quieren ocupar la silla de ese lado. Por su parte, Joe Abercrombie se ha aprovechado de eso y se ha adueñado de la silla a la izquierda del Maestro, está ahí muy cómodo, viendo como los otros dos se pelean por una simple silla, a fin de cuentas, izquierda o derecha, da lo mismo. Detrás del Amo del Universo están Gaiman y Terry Pratchett, sus secretarios y escribsa personales.
Frente a nuestro Señor Celestial hay un coro de querubines. O algo así. Uno de ellos es un tipo gordo y con barba, llamado Patrick Rothfuss. Lo metieron ahí porque cantaba muy bien, pero a mitad de canción se le olvidó la letra, y ahora solo está ahí, callado y con aire de saber lo que hace, pero la verdad es que no tiene ni esta idea. Muy cerca de Rothfuss podemos ver a un viejo con cara de amargado con un nombre polaco impronunciable. Escribió unos papiros muy interesantes, pero una empresa los convirtió en estampitas de colores que se vendieron muy bien y él no vio ni un céntimo. No lo culpo, yo también tendría mala cara si me sucediera eso. Encima, los mortales en su infinita ignorancia ahora creen que él copió de las estampitas, y no al revés.
Hay un montón de gente más en el coro, como Brent Weeks. O Jim Butcher, que solo se sabe una estrofa de la canción celestial, pero la repita una y otra vez. Todos cantan ante el Dios Terry, y de paso se empujan y pisan unos a otros. En esa trifulca han apartado a un rincón a un señor de cierta edad con barba, llamado Robert Jordan (en realidad, se llamaba de otra forma, pero ese sonaba mejor). En su momento, escribió una canción genial y larguísima, y todos creían que sería el Puto Amo del Universo. En medio del tumulto está R. A. Salvatore, que pergueñó unas historias raras acerca de un habitante de las profundidades, que en vez de ser albino como dictan las buenas costumbres de la biología, es lo totalmente opuesto, quizás por cuestión de camuflaje. Otro que se mantiene a flote es Scalzi, que aunque no le va mucho a la fantasía como al resto de la claque, se defiende creando unas crónicas muy resultonas.
Aplastados por la multitud de querubines cantores hay otros: David Eddings, Terry Goodkind, etc. En su momento cantaron muy bien, pero entre tanto empujón y aleteo celestial, ahora mismo están en el piso, tomándose un descanso.
Tras ellos, hay un señor chino, meditando, ajeno a todo el barullo. Posiblemente esté esperando algún acontecimiento que ocurrirá dentro de mil años: el fin del universo, una invasión de alienígenas, u otra cosa parecida. Más atrás hay otro tipo, Steven Erikson, rodeado por almas perdidas, a las cuales intenta convencer de que escuchen su canción, de diez rollos de largo, la cual dice que es solo la introducción a una historia más grande. Pero las pobres almas perdidas no comprenden de qué va el asunto y están como que... perdidas.
Como de todo tiene que haber en la viña de nuestro señor Tolkien, tenemos a unos siameses muy raros de apellido Corey. Nadie los conocía antes, pero han logrado que otra empresa les haga unas estampitas de colores animadas y ahora todos los mortales están encantados con ellas aunque no se hayan leído el puto libro. Hay también una dama con nombre de hombre: Robin Hobb (no confundir con Robin Hood), que ha cantado unas historias geniales. En otra esquina del cielo hay una señora que se inventó un nombre con muchas letras (si quieres tener éxito, invéntate un seudónimo que parezca las siglas de una organización internacional o algo), que empezó cantando historias para niños, hizo un montón de oro, y ahora está haciendo más estampitas animadas para esos mismos niños en su fase de adultos. Y de paso, haciendo otro montón de oro.
Y así, señores, es nuestro Cielo especial para los escritores de CF y fantasía.

Videojuegos en Cuba, la situación hoy


Para conocer la historia de los videojuegos en Cuba es imprescindible leer Hecho en Casa Historia de los videojuegos en Cuba, y complementarlo con Merchise Arando un sueño en la superficie del sol. Para entender por qué Cuba no es país para desarrolladores de juegos (ni de otras cosas), primero habría que entender Cuba, y eso no es posible. Es que este país se rige por una lógica propia que carece de toda racionalidad. Sin embargo, leyendo ambos libros se puede deducir fácilmente cómo nos convertimos de un candidato a potencia en el desarrollo de videojuegos a un rechazo total, que recién ahora se está despejando.
Como no conozco a fondo el pasado, prefiero hablar del presente, que aunque tampoco lo conozco bien por lo menos lo estoy viviendo. O sufriendo. ¿Es un buen momento para los videojuegos en Cuba? Pues, como diría la tortuga gigante de la Historia sin Fin: podría serlo, o podría no serlo. Desde hace unos años se ha levantado la veda a los videojuegos en las instituciones oficiales, que ahora están lanzando jueguitos casuales y no tan casuales, que por primera vez en la vida no son birrias didácticas infumables. Hay grupos independientes como ConWiro o Empty Head Games, creando sus propios productos, lo que demuestra que talento sobra. Tenemos una plataforma de aplicaciones para Android. Tenemos hasta un intento de MOBA, Coliseum, lastrado por la falta de conectividad que no parece que se resolverá a corto plazo. Lo que no tenemos ahora mismo es la infrastructura necesaria para crear un mercado, donde el cliente le pague al desarrollador, pero eso también viene en camino.
Parece que las cosas no están tan mal, ¿no? Pues las apariencias engañan.
Lo más importante que no tenemos es un marco legal. Las cooperativas están en el limbo y las licencias para programadores vagan por el burocraespacio, de estudio en estudio, en espera de que un día alguien se decida a volver a liberarlas. Y es que la idea de que un adolescente o adolescenta (¡inclusividad ante todo!) con una aplicación hecha  en dos meses de trabajo pueda comer langosta, comprarse casa, moto eléctrica y demás seguramente le pone los pelos de punta a todo el gobierno. El de Donald Trump, por supuesto, recuerden que todo es culpa del embargo.
O sea, que si eres la División de Audiovisuales de la Empresa Nacional de Cultivo de Almejas, no deberías tener problema para desarrollar tu Simulador de Ostra. Pero si eres Chicho el Cojo y tienes una idea genial de un multijugador battle royale, con todas las de la ley, estás muy embarcado. Para empezar no podrás rentar un servidor. Si intentas formar una alianza estratégica con alguna institución estatal te encontrarás que lo mejor que pueden ofrecerte es quedarse con tu juego, cobrar una pasta, ya ti darte una plaza con un salario normalito, como colaborador. Encima, quizás conviertan las facciones de tu juego en mambises contra españoles o algo así.
O sea, señores, que las cosas no están bien. Ni tampoco tan mal. Cuba no ha logrado desarrollar una industria de videojuegos; hablando como libro de texto, estamos en la fase manufacturera y ahí seguiremos por un buen tiempo. Lo lamentable es que se ha demostrado que hay un mercado nacional, que quizás no produzca millones pero que podría darle vida a los creadores locales, independientes o estatales. Y esos creadores locales también podrían abrirse camino en el extranjero. Si el bloqueo nos deja, claro, recuerden que Trump no quiere que los desarrolladores de juegos cubanos coman langosta y etcétera, etcétera.

UI Builder


Dije hace unos días que les comentaría acerca de UI Builder, la nueva herramienta de diseño de interfaz para UI elements. Ahora mismo, si estás usando Unity 2019.2, puedes instalarla desde el Package Manager, pero solo para personalizar el editor. Si entendí bien las conferencias, a partir de la 2019.3 será posible usar UI Elements también en los juegos (esto no me queda muy claro), y en la 2020.1 ya entrará oficialmente como la solución preferida para interfaces de usuario en Unity. Su estado actual es preview, por lo tanto algunas cosas no funcionan.

Sin embargo, aún incompleto y primitivo, el UI Builder es una herramienta utilísima. Ahorra mucho tiempo y permite evitarse el lidiar directamente con UXML y  USS directamente, así que puedes dedicarte al código. En mi caso, en un par de días avancé más en mi editor de diálogos que en una semana de tanteos a mano, llegando a un estado en que resulta utilizable.

Aunque pueda parecer que es casi lo mismo que el inspector, les diré que ese casi marca una diferencia abismal en cuanto a rapidez y comodidad de uso. El inspector no inicializa algunas cosas y no me permite agrupar los elementos similares en seciones desplegables. Por ejemplo, puedo replegar todos los nodos, excepto el que estoy trabajando, o todos los nodos y ver solo las respuestas del jugador, etc. Al agregar un nodo, éste ya viene con sus campos creados, no tengo que decir específicamente que son dos líneas de texto, y así sucesivamente.
Estas pruebas no cubren el uso de UIElements en juegos. Eso ya es un asunto aparte, que pienso probar en cuanto sea posible. De momento he detenido el trabajo en la interfaz de usuario de todos mis proyectos, salvo uno, que ya está en un estado tan avanzado que no puedo dejarlo aparcado.

Addressables

Una de las cosas que eché de menos cuando mis proyectos se volvieron complicados fue la posibilidad de cargar assets directamente. Unity era el primer motor en el que no podía hacerlo, cualquier cosa que quisiese utilizar, tenía que estar debidamente referenciada de antemano, asignándola en el editor. Luego descubrí que existía una forma, pero involucraba la carpeta Resources y cargar el asset usando la ruta y nombre del archivo. Un inconveniente es que dicha carpeta se traslada íntegra al build del proyecto, si olvidaste limpiar algo, se incluirá en el juego aunque no se use. Otro, que no es recomendable usarlo en proyectos que se portarán a consolas. Y si cambia el nombre o ruta, hay que cambiarlo también en el código. En fin, que la carpeta Resources es un mecanismo que está ahí, pero que deberías hacer todo lo posible por evitarlo.
Los Addressables son la solución a esto, que se me había pasado por alto entre todas las cosas nuevas que ha incorporado Unity en los últimos tiempos. En realidad, su objetivo es sustituir los Asset Bundles, que como muchas cosas de Unity, ahora resulta que no eran tan fáciles de utilizar y tenían una buena cantidad de problemas.
Para empezar, la carga de assets marcados como addressables se realiza mediante la etiqueta del objeto, o cargando todo un grupo de una vez mediante la etiqueta del grupo. De momento solo he echado un brevísimo vistazo a lo que puede hacer, quedándome en la parte de cargar cosas. Las posibilidades van más allá, porque como mencioné anteriormente, también sustituyen los Asset Bundles, y esa es otra tarea pendiente que me queda, para un futuro no muy cercano. Ahora mismo, crear contenido adicional descargable no es mi prioridad. Más bien, la prioridad es eliminar el uso de la carpeta Resources, que tampoco es tan fácil, porque los addressables están diseñados para ser cargados en grupo y la función de carga funciona como una corutina (no conozco el término exacto para definirla). Sin embargo, esto es algo que he logrado solucionar, gracias a un pequeño tutorial.
Ya que hablamos de funciones nuevas de Unity, en otro post les comentaré acerca del UI Builder, que estoy utilizando para crear mi editor de diálogos, lo cual sea probablemente mucho más interesante.
 

¿Qué tal envejecen los juegos?


Pues la respuesta es, no muy bien, cuando se trata de juegos de principios de siglo (suena raro eso, pero ya los principios del siglo han quedado atrás), o finales de los 90. Sobre todo, estos últimos, que se lanzaron en una época donde 800x600 parecía ser el non plus ultra, la resolución tope, después de la cual no vendría más nada. Muchos juegos de esa época no podían pasar de ahí, porque seguramente sus creadores no concebían que veinte años después, los tres mosqueteros y D´Artagnan se reunirían otra vez para intentar jugarlos a 1080p. Que dicho sea de paso, en estos tiempos es una resolución a punto de jubilarse ya.
Y a veces costó trabajo que los desarrolladores aprendieran la lección. La mismísima Blizzard, a pesar del éxito duradero de sus títulos, no se preocupó por soportar altas resoluciones en Warcraft 3 hasta mucho después de su lanzamiento. Fallout 2 requiere de un parche extraoficial, igual que Arcanum (imperdonable, siendo mucho más reciente). Sin embargo, yo diría que los gráficos del Fallout 2 no han perdido su encanto a pesar de los años, y viene siendo algo así como una cuarentona de buen ver que va al gimnasio y se mantiene en forma.
Pero para ser justos, hay que considerar que en esa época las tarjetas de video y los monitores apenas evolucionaban. Las tarjetas aceleradoras eran para juegos muy específicos como Quake, todos FPS, y algunas de ellas como las de 3dfx fueron callejones sin salida. Además de su precio elevado, eran artefactos raros que se conectaban a la tarjeta principal y hacía su magia de alguna forma esotérica e incomprensible. Y aunque al final, la evolución se disparó, seguimos estando limitados por las resoluciones de los monitores durante largos años. Hasta que al fin, las resoluciones comenzaron a crecer, y las tarjetas, además de ofrecer mejores gráficos 3D, pudieron también producir imágenes más grandes.
Eso marcó, en cierta forma, el comienzo de la era actual. La resolución Full HD dio paso a 4K, y aunque esta aún no es de uso masivo, ya se está hablando de 8K. Los juegos actuales tienen que lidiar con diversas resoluciones en todo tipo de dispositivos, con la Realidad Virtual, y con la posibilidad de que durante su ciclo de vida, por corto que sea, aparezca una nueva resolución aún más alta. Por eso creo que los títulos recientes envejecen un poco mejor, a pesar de que es inevitable que los gráficos 3D queden desfasados en cuestión de 3-4 años.
También hemos alcanzado una tope, una especie de barrera, en cuanto al realismo de los gráficos 3D, que será muy difícil de superar a corto plazo. El raytracing, por el momento, solo se utiliza para mejorar la iluminación de la escena, mientras que para los modelos seguimos dependiendo del rasterizado de toda la vida, y de aumentar el número de polígonos a lo bestia si queremos modelos más realistas. No estamos haciendo cosas hoy que se vean mucho mejor que las de hace dos años (solo marginalmente mejor), porque la potencia bruta tiene un límite. Es por eso que todavía The Witcher 3 se ve muy bien, porque simplemente, no ha aparecido nada en el mercado que pueda hacerle sombra.
¿Cuándo será el próximo salto de calidad? Es muy difícil de predecir. Quizás ni siquiera sea una salto, sino una mejora gradual. Para empezar, creo que necesitaremos una mejora sustancial de la potencia de cómputo, que permita que el trazado de rayos sustituya por completo al rasterizado. Eso no será en dos días, ni dos años, pero sucederá, me atrevería a decir, a mediano plazo. Con raytracing total tendríamos gráficos 3D fotorrealistas en tiempo real.
Mientras eso llega, hay que seguir tirando con lo que tenemos. La próxima vez que quieras quejarte de la apariencia de un juego, recuerda que en mi época teníamos 4 colores y resoluciones equivalentes a la de tu primer teléfono. Y también tengan en cuenta que no solo de gráficos vive el jugador.

¡Gran error!

En estos días he estado trabajando contra reloj para pulir El Laberinto del Saber. El juego no estaba tan terminado como yo pensaba y faltaban por arreglar un montón de pequeños detalles. Algunos se derivan de cambios en Android, por ejemplo, lo que antes era el botón de Menú, ahora suele activar la lista de aplicaciones. Por tanto, no sirve para pausar el juego. Tuve que escribir a toda prisa una variante. La cual, de paso, introdujo más problemas, esta vez derivados del UI.
El UI en cuestión es el tema que me ha tomado el 90% del tiempo de desarrollo dedicado a pulir. Conseguir que el juego se vea igual, independientemente de la resolución ha sido bastante complicado. Y otra vez, los cambios en los teléfonos, los aumentos de resolución y los cambios de relación de aspecto me han puesto la cosa fea. Aún no estoy seguro de que funcione bien en todos los dispositivos.
Mientras arreglaba lo anterior, rompí el control de movimiento. Y lo peor fue que hice un build y lo repartí a todo el mundo, sin haberlo probado yo antes. Ni siquiera en el editor. El juego era completamente injugable y yo no lo sabía. Un grave error que trataré de no cometer otra vez.
Al final, tuve que sustituirlo por uno que bajé de la Asset Store: el Joystick Pack (genial, lo recomiendo). Lo cual, obviamente, introdujo más problemas. Que por suerte, logré solucionar anoche... solo para encontrarme hoy que había otros. Simplemente, mi sistema no había sido diseñado para los joysticks virtuales del ese asset en concreto.
Conclusión, más de una semana de trabajo, aún cuando casi no introduje funcionalidades nuevas. Solo arreglos de bugs, arreglos del UI, etc. Para más desgracia, cuando actualicé el Unity en casa perdí la posibilidad de compilar proyectos para Android. Durante la primera compilación, Unity descarga algo del gradle, y si actualizas Unity, aunque sea a una versión de la misma rama, eso se pierde. Ahora debo conectar la PC de mi casa a Internet y volver a hacer un build, lo cual no pienso hacer hasta que instale el Unity 2019.3. Según las noticias de hoy, unas 110 mil familias en Cuba ya tienen internet en casas, pero yo no estoy entre esos afortunados.
Ahora estoy en espera de que los dos beta testers encuentren más errores, para seguir en la lucha.

UIElements

Hace unos días hablaba acerca de los constantes cambios de Unity, y una de las cosas que mencionaba era la introducción de UIElements como sistema UI unificado para juegos y personalización del editor. Tener una interfaz de usuario decente ha sido una asignatura pendiente de Unity desde hace tiempo, un apartado que fue mejorado un poco a partir de la versión 4.6. Sin embargo, ese nuevo UI, aunque era un gran cambio, tampoco es que fuera una maravilla. En mi opinión, es la cosa más contraintuitiva que he visto en mi vida. Pero supongo que valen más las opiniones de los expertos y de los propios desarrolladores de Unity, que lo consideran lento e inadecuado.
UIElements llegará en estado casi usable en la 2019.3, incluyendo una herramienta que se ve genial, al menos en video (en la vida real, las cosas tienden a no ser tan simples como se ve en los videos). Recomiendo que vean dicho video para que se lleven una idea, seguramente se quedarán con ganas de tener ya este nuevo sistema a su alcance.


El progreso ha llegado, tenemos 4G


El idilio de Cuba con la 3G ha sido bastante breve. Al parecer, hemos alcanzado el punto de saturación bastante rápido, y aunque en un principio se habló de velocidades de hasta 7 mbps, en los últimos tiempos era casi imposible navegar o incluso acceder al correo vía pop/smtp. En mi opinión, lo lógico hubiese sido saltar directamente a la 4G en vez de usar una tecnología ya obsoleta, pero como pueden imaginarse, mi opinión no le importa a nadie. Además de que hay que considerar que acá aún existe la televisión analógica, que ocupa frecuencias necesarias para la 4G y que debe ir desapareciendo, pero no antes del 2021.
Para los que me leen desde afuera (o sea, no Cuba), cambiar de TV aquí no es tan fácil. De hecho, pese a mi salario privilegiado, me costó una buena dosis de suerte, vender mi TV viejo, y ahorrar mucho, para poder adquirir un TV de 32 pulgadas, con receptor digital integrado. Háganse la idea, señores, hay decenas de miles de jubilados que no pueden cambiar su televisor, gente que no trabaja, y gente que aunque trabaja, apenas le alcanza para llegar a fin de mes.
Un colega, que trabaja en la única empresa telefónica del país, me había hablado en términos muy elogiosos acerca de la 4G, que empezó a desplegarse de forma limitada hace unos meses. No hay comparación, me decía. Pude comprobarlo al fin hace unos días. Luego de algunos problemas debido a que mi teléfono no era validado como 4G, logré que fuese aceptado y se me habilitara el servicio. La cobertura no es muy amplia, pero cerca de mi casa hay un área cubierta y la velocidad es realmente impresionante. Pero más importante, está menos saturado y la conexión se establece mucho más rápido.
No he podido probar el tethering a fondo, porque lamentablemente, el costo de navegar por datos móviles es bastante alto y ahora mismo, no puedo permitirme esos lujos muy a menudo. Sin embargo, creo que podría usarlo para cosas sencillas como revisar el correo y quizás hasta echar una partida breve de Champions of Regnum todos los días, para asegurar los premios diarios. Conclusión, que lo único que me impide disfrutar a fondo de esta maravilla, como siempre, es el finaciamiento.

Elementos para la trama de una novela


Hace algunos meses impartí una conferencia al grupo de aficionados a la CF y Fantasía acá en Santiago de Cuba, en la cual traté el tema de los elementos que componen una buena trama. Había olvidado el asunto, hasta hace unos días, que decidí convertir la conferencia en un artículo para el blog, y aquí está.
Hay un conjunto de detalles que hacen  que una novela sea interesante, pero en esta clase, o tutorial, de hoy, les hablaré solamente de uno. Toda novela de aventuras, ya sea de fantasía, ciencia ficción, o un thriller militar como los del viejo Tom Clancy, está construida alrededor de una cosa: conflicto. Hagan memoria y estudien las mejores novelas que hayan leído. Miren los grandes éxitos de los grandes escritores. El núcleo de la novela más grande y épica de la actualidad (en mi opinión), El Archivo de las Tormentas, escrita por Sanderson, uno de los tipos más originales del mundo, es tan viejo como andar a pie: el conflicto entre el bien y el mal. El núcleo de la novela más grande y épica de finales del siglo pasado, La Rueda del Tiempo (que veremos algún día convertida en serie de TV) de Robert Jordan y concluida por el mismo Sanderson, es conflicto entre el bien y el mal. Y Canción de hielo y Fuego, de George R.R. Martin está construida alrededor de múltiples conflictos entre... un montón de gente que ni es buena ni mala, solo pasan de caerte bien a caerte mal según los designios del autor. Salvo Jon Snow, claro. Ese solamente es imbécil.
Aunque a estas alturas y todos deberían tener una idea de qué es un conflicto, de todas formas voy a dar una definición simple y concreta: dos o más partes quieren algo y solo una puede conseguirlo. Es muy sencillo, como pueden ver, pero extremadamente importante, porque el lector, que es muy chismoso, querrá saber cómo se resolverá el problema. Es que a las personas, por alguna razón, nos gusta ver enfrentamiento, lucha, peleas... siempre y cuando sea otro en implicado. Si olvidamos plantearlo correctamente, ya sea por mala planificación o por otras razones, será mejor que la novela tenga otros puntos fuertes, pero muy fuertes.
El conflicto, aunque simple, debe poder dar suficiente jugo. No puede ser de fácil solución, para garantizar que las partes en pugna pasen por un sinnúmero de dificultades, que son las que al final, ayudan a llenar páginas. No basta plantearlo, hay que desarrollarlo.
En una novela, el conflicto determina en gran medida el público objetivo, el tipo de lector que consumirá tu obra. Cada segmento de mercado está determinado por ciertos factores: edad, sexo, educación, gustos, y otros. Por ejemplo, el 90% de los hombres no ve telenovelas, porque la historia de la jovencita pobre que se enamora del galán rico, mientras la ex-novia malvada le hace la vida imposible les parece tonta. En cambio, les llama la atención que Jack Bauer corra detrás de unos terroristas, matando a diestra y siniestra, para detener una bomba atómica o la dispersión de un virus. Y no me dirán que eso es menos tonto que lo anterior. Por eso hay gente que le encanta una historia de un vampiro que se pasa varios volúmenes zorreando con una imbécil (familia de Jon Snow, probablemente) sin acabar de follársela. U otros a los que les gusta la historia de uno que para follarse a la protagonista, primero tiene que darle unos latigazos o algo así. No quiero ni pensar qué le haría si la comida le queda mal hecha o no lava bien la ropa.
En fin, que hay lectores para todo (hablando de lo cual, me pregunto dónde estarán los míos). Pa concluir, una advertencia: hay una diuferencia muy grande entre saber y hacer. Quizás te hayas leído esto y pienses: "ahora sí voy a escribir la saga que dejará chiquita a Canción de Hielo y Fuego, y Netflix me va a hacer una serie". Pues no. Siempre hay chance a pifiarla en grande, aún sabiendo todo esto. A mí me ha pasado, y tal vez los grandes también tengan sus esqueletos en el armario, o en este caso, sus manuscritos mierderos bien ocultos. Pero tranquilos, que en alguna ocasión les saldrá bien.
Y en otro orden de cosas, les recuerdo que compren la novela. Si no, Jack Bauer irá por ustedes y los torturará haciéndoles cosquillas en los sobacos.


Unity, un blanco en movimiento

A partir de la versión 2020.1 de Unity tendremos UI unificado: el nuevo UIElements que recién acaba de presentarse, podrá ser usado también en juegos. Utilizado inicialmente para personalizar el editor, en sustitución de IMGUI (una mierda infumable y mal hecha), UIElements se llevaría por delante también al sistema que reemplazó IMGUI en los juegos a partir de la versión 4.6 de Unity.
Conocido como el nuevo UI, era un intento por hacer algo más o menos profesional, con una herramienta de diseño integrada en el editor. IMGUI se manejaba a golpe de código y es una sorpresa que un motor de juegos dependiese de una chapuza así durante tanto tiempo. Y más sorprendente aún es que se hiciesen buenos juegos con ella.
UIElements es relativamente simple de entender y he hablado del tema antes. Es muy cómodo usarla ya sea desde el código o mediante un subconjunto de CSS (USS) y XML (UXML), pero además de eso la 2020.1 traerá un editor de interfaz que ahorrará trabajo de hacerlo a mano.
Lo que me resulta un poco molesto en este asunto es que Unity se está convirtiendo un blanco demasiado móvil. El Unity que tendremos al finalizar este año será muy diferente al que teníamos a finales del 2018, y los cambios a principio del 2020 bastan para poner nervioso a cualquiera. Si estás trabajando en un proyecto con fecha de salida, puedes amarrarte a una versión hasta que lo termines y salga a la venta. Pero si estás aprendiendo y haciendo pruebas, creando prototipos o cosas así, te sentirás como si fueras montado en un auto que va a toda velocidad, mientras los mecánicos cambian piezas sin detenerse. Las ruedas de hoy podrían no servir mañana, y las ruedas de mañana podrían ser tan diferentes que impliquen un cambio en el modo de conducir.
El nuevo sistema de paquetes es una especie de ruleta rusa. Es mucho mejor quedarte con lo que sabes que funciona, porque actualizar un paquete preview puede romper algún otro. A fin de cuentas, está marcado como preview. Pero el caso es que el 90% de lo que hace a Unity interesante ahora mismo, es preview. Lo demás, es más o menos lo mismo desde el 2017.
Así que es mejor pecar de conservador y no de audaz, si alguna funcionalidad experimental te funciona, ¡no actualices! Por lo menos hasta que salga de preview.