18 años en Internet

14 diciembre 2024

Adaptando el WLD_VIEW.PRG de DIV2 Games Studio a controles actuales

     Como os comentaba en la entrada anterior, donde explicaba cómo instalar DIV y DIV2 Games Studio en ordenadores actuales (enlace), DIV 2 traía un programa de ejemplo para pasear por un escenario 3D (llamado WLD_VIEW.PRG).

    El caso es que ese ejemplo ha envejecido bastante mal, puesto que hace uso de los cursores para desplazarse y no hace uso del ratón para mover la cámara... Aunque siendo justos esos controles no estaban mal en 1998 y además el programa estaba pensado más bien para navegar por escenarios 3D y no para comportarse como un shoter. Pero aún así considero que a día de hoy sus controles están bastante desfasados.

Todo "esto" es el bucle principal del programa de ejemplo.

    Si observamos el bucle principal del WLD_VIEW.PRG, vemos que los controles son los siguientes:

  • Tecla "Escape" para salir del juego.
  • Tecla ALT + Izquiera o derecha para desplazarse de costado.
  • Izquierda o Derecha para girar la cámara.
  • Arriba para avanzar la cámara.
  • Abajo para retroceder la cámara.
  • Q para subir la cámara.
  • A para bajarla.
  • W para mirar hacia arriba.
  • S para mirar hacia abajo.

    Así que un servidor se preguntó qué tal se sentiría si alterara el programa para darle controles más actuales, con el ya clásico W-A-S-D para desplazarse, el ratón para girar la cámara y además poder correr, saltar o agacharse. Y la verdad es que como ejercicio no fue tan complicado como pensaba.

     Para el manejo de la cámara con el ratón lo que hago es alterar las variables angle y m8.angle en función de las posiciones X e Y del puntero del ratón (que las obtienes con mouse.x y mouse.y). Pero para que se "sienta" bien, he tenido que tener ciertas consideraciones:

  1. El movimiento en el eje X (el que utilizo para girar la cámara de izquierda a derecha) se calcula en función del delta con el frame anterior. Es decir, si en el anterior frame el puntero del ratón estaba en la coordenada 320 y en el actual está en el 310, entiendo que hay un delta de -10 y que por consiguiente la cámara debe girar a la izquierda. De la misma forma, la cámara girará más brúscamente o menos brúscamente en función del delta: Si el delta es -100, giraremos más rápido que si éste fuera -10.
  2. El cursor del ratón tiene un valor máximo y éste varia en función de la resolución de la pantalla. Por ejemplo, si haces uso de una resolución de pantalla de 320x200, el valor máximo que tendrá el mouse.x será de 319 y el del mouse.y será de 199; Si la resolución es de 800x600, el valor máximo de mouse.x será de 799 y el de mouse.y será de 599. En todos los casos, el valor mínimo será siempre 0. ¿Por qué os digo esto? Porque al tener valores mínimos y máximos de mouse.x, a base de girar a tope a derecha o izquierda llega un momento en el que la cámara dejará de girar. Para evitar esto, cuando el la posición X del ratón ocupa su valor mínimo (0) o máximo, reposiciono el cursor del ratón al centro de la pantalla (resolución de pantalla del eje X dividido entre 2). La ñapa funciona bastante bien, cuando juegas ni te das cuenta.
  3. El m8.angle es lo que nos permite mirar hacia arriba o hacia abajo... Pero tiene un valor mínimo de -128 y un valor máximo de 128, siendo 0 el valor centrado... y es imposible girar más la cámara en el eje Y. Para saber el valor exacto del ángulo a aplicar, multiplico el valor máximo de la posición Y del cursor del ratón por 256 (rango máximo de valores del m8.angle), lo divido por la resolución del juego en su eje Y y ese valor se lo resto a 128. De esta forma de me aseguro de tener valores que van del -128 al 128.
  4. En el eje Y no hace falta hacer la ñapa de recentrar el ratón, puesto que el entorno nos impide girar al máximo la cámara para el eje Y (es decir, no puedes ver 90 grados hacia arriba o hacia abajo).


Captura de pantalla de la ayuda de Div2, donde explican los valores mínimos y máximos del m8.angle.

    Para los desplazamientos he tenido las siguientes consideraciones:
  1. Para el desplazamiento lateral símplemente he remapeado los xadvance para que se ejecuten diréctamente con las teclas A y D.
  2. He remapeado los advance para utilizar el W y el S.
  3. Para el caso de W y S, verifico antes si se está pulando el Shift izquierdo o derecho para poder diferenciar si corremos o andamos.
  4. Considero que andar y correr hacia atrás es más lento que andar y correr hacia adelante.


    Para el salto y para agacharse he considerado lo siguiente:
  • Por defecto hay gravedad en el juego y ésta la aplico restando en cada 25 al eje Z (valor calculado al ojo).
  • Utilizo una variable isJumping para evitar que se produzcan doble o triple salto.
  • Sé que el jugador no está saltando caundo isJumping es falso y el delta del Z entre el frame anterior y el actual es 0 (no quiero que se pueda saltar mientras caes).
  • El salto dura varios frames y éste se ralentiza en cada frame (empiezas saltando 30, después 28, después 26... y así hasta valer 0). Esto te da una sensación de que tienes un impulso fuerte que luego se va aminorando.
  • Agacharse símplemente recalcula la altura de la cámara. Cuando pulsas cualquier tecla Control, los valores de height y m8.height pasan a valer 2/3 del valor original. Cuando no pulsamos control, esos dos variables se resetean con su valor original.


    ¿Y con todos estos cambios, qué tal se siente el juego? Pues francamente bien. Os pongo dos vídeos, uno grabado a 320x200 y otro a 800x600:



    Y bueno, si os interesa aquí os dejo mi código fuente alterado: THENEWSC.PRG. Y sobre este código, varias cosas a destacar:

  1. He creado varias constantes para definir de forma sencillla la resolución a aplicar o el número de frames por segundo.
  2. Aunque el set_mode trabaje con valores del estilo m320x200, lo cierto es que admite variables numéricos, como 320200 para 320x200 o 800600 para 800x600. Esto se debe a que los famosos "m320x200", "m800x600", "m1024x768", realmente son constantes que tienen asignados esos respectivos valores (320200, 800600, 1024768, etc),
  3. Si IS_DEBUG vale 1, se escribe información en pantalla relativa a los frames por segundo reales o la cantidad de memoria ram utilizada. Mi consejo es que reemplaces el TOTAL_MEMORY_MB por los megas de RAM que tenga tu PC o instancia de DosBox para que el cuarto write_int de la función writeDebugInfo sea un valor real (DIV me permite saber cuanta memoria RAM hay disponible, pero no cuanta hay consumida, así que la estimo restando a esa constante la memoria disponible).

 



10 diciembre 2024

Haciendo funcionar "DIV 2 Games Studio" en ordenadores actuales

    Para los que no me conozcáis, aprendí a programar antes de entrar al instituto, más o menos por Sexto de EGB. Entonces los frameworks eran más prehistóricos, la orientación a objetos no era tan popular y básicamente mi vecino me regaló un libro de programación en Basic que podía utilizar con el Spectrum ZX+2 128 KB de mi hermano.

     Por el 98, no recuerdo cuando exactamente, mi padre compró un ordenador para casa. Si no me equivoco, se trataba de un Pentium 133 MMX con 32 MB de RAM, Windows 95, una gráfica S3 Virge de 4 MB y unos 2 GB de disco duro que un par de años más tarde ampliamos a 200 MMX, Windows 98, 64 MB de RAM y una gráfica Voodoo Rush de 6 MB… pero al que también le puse más adelante una Nvidia Riva TNT y al final de su vida le puse una Voodoo 3.
 
    Como anécdotas puedo recordar que me compré el PC Fútbol 6.0 antes incluso de tener el ordenador, que me pasé el Final Fantasy VII subiendo todos los personajes al nivel 99, que antes de que saliera ese juego dejé toda la tarde encendido el PC para bajarse su demo (pesaba como 7 MB, pero mi módem era el que era) o que me escandalizó ver los requisitos mínimos anunciados para el Diablo 2 (64 MB de RAM y 800 MB de disco).

    Pero volviendo al tema principal de esta entrada, al llegar al instituto descubrí DIV Games Studio, un entorno de programación con una sintaxis similar al pascal que te permitía de una forma simple hacer juegos para MS-DOS y estos corrían sin problemas en Windows 95/98. No sé deciros cuantas horas dediqué a DIV Games Studio y a DIV 2 Games Studio, pero vamos, se convirtió en mi afición principal. Hacía juegos de carreras, RPG básicos, probaba los modos 7 y 8, hice un shoter ambientado en mi instituto, varios mata-marcianos, etc. De hecho, por 2014 compartí una entrada donde un colega de primaria me trajo un disquete con dos juegos míos que le copié en 1999 (https://www.elgeneralfailure.com/2014/05/dos-juegos-que-programe-cuando-tenia-16.html) y a continuación os comparto el gameplay de uno de ellos. No es el juego que me salió más resultón, pero sí uno de los pocos que a día de hoy sigo conservando (así que sintiéndolo mucho, esto es lo que hay).


 
 
    Vamos, que aún no había llegado a la universidad y ya programada con punteros, manejando regiones de memoria con malloc/free y haciendo uso de estructuras para gestionar mis "objetos" (lo pongo entre comillas debido a que DIV no soporta objetos de una forma evidente, pero aún así me refiero a la gestión de estructuras). Luego llegó Windows XP y se rompió bastante su compatibilidad, haciendo que dejara este hobby aparcado hasta que surgieron Unity, Unreal Engine y Godot (mi framework de programación de juegos favorito a día de hoy). Y entre tanto, lo intenté en su día con la plataforma de XNA de Microsoft, pero lo dejé porque el soporte de Microsoft era nefasto... y también con  Wii U (Nintendo me llegó hasta a regalar una licencia de Unity), pero sencillamente no podía permitirme pagar el precio que pedían por la consola de desarrollo.
 
    Y bueno, también estuve en su día catando DivGo, un framework que utilizando una sintaxis extremadamente parecida a Div te genera código en HMTL5 y con él hice asciialiens.com (juego del que llegué a perder su código fuente durante varios años, hasta que lo recuperé de un disco duro que tenía guardado). ¡Ah! Y con el gusanillo de programar jueguitos también aprendí a utilizar Blender (https://sketchfab.com/hamster_ruso). Os muestro uno de los modelos de los que me siento más orgulloso de haber modelado, Hinata Tachibana  de la serie Fabiniku:



 
    Y tras deciros todo esto, este puente me dieron ganas de volver a programar en DIV Games Studio y me puse a ver cómo podría hacerlo funcionar en un ordenador actual y dicho experimento me ha parecido bastante resultón. Y bueno, para resumir, lo he instalado y lo estoy ejecutando a través de DOSBox, un emulador de MS-DOS que es bastante potente y funcional. Actualmente existen alternativas más versátiles, como DOSBox X, pero para un uso "normal" el DOSBox original es más que suficiente.

    Ahora bien, para que la experiencia sea agradable, tenemos que tener en cuenta una serie de detalles:
  1. Definir una unidad de disco duro. Por defecto DOSBox te crea una unidad Z, pero lo ideal sería montar una carpeta de tu PC como C:\.
  2. Configurar DOSBox con unas limitaciones similares a los PC de la época (por ejemplo un Pentium 200, con 32 MB de RAM, gráfica S3 Virge con 4 MB de VRAM y 2 GB de disco duro).
  3. Conseguir una ISO del instalador de DIV o DIV2, montarla en tu equipo y luego como unidad dentro de DOSBox. En mi caso conservo el disco original de DIV y DIV2, por lo que simplemente puse mi disco de DIV2 dentro de un lector de CD externo y lo monté en DOSBox.
     
     La instalación de DOSBox es sencilla, simplemente tienes que ir a la página oficial (https://www.dosbox.com) y bajarte el instalable de tu sistema operativo. En sistemas Linux suele estar presente en todos los respositorios, pudiéndose instalar con el apt-get o yum de turno.
 
    Una vez instalado, se te genera un fichero de configuración en tu carpeta de usuario. En el caso de Windows podemos acceder a él buscando DOSBox en la barra de buscar y seleccionando el resultado que muestra "Options". Esto lo que hará será abrirnos el fichero de configuración dentro del bloc de notas de Windows.



    Y bueno, una vez abrimos dicho fichero, tenemos que reflexionar. En mi caso quería recrear el PC que tenía de adolescente. Lo primero que he hecho es informarme acerca del número de MIPS (millones de instrucciones por segundo) que tenía el procesador MMX a 200 MHz y tras buscar en Google llegué a una página (http://www.roylongbottom.org.uk/mips.htm#anchorMIPS1) donde se asegura que dicho procesador contaría con unos 227 MIPS.


     A nivel de DOSBox, 1 MIP equivaldría a 1000 ciclos de CPU. O lo que es lo mismo, para aplicar un rendimiento similar a aquel ordenador, debería de definirle un valor de 227000 ciclos en el apartado de CPU.



    Por otro lado tenemos la memoria RAM, que se define con la variable memsize dentro del apartado [dosbox] y se mide en megas. El valor 32 indica que mi instancia tendrá 32 megas. En este apartado también está el tipo de tarjeta gráfica, que en mi caso he dejado el valor por defecto ya que era la gráfica que tenía en antaño.


    Respecto a la memoria gráfica, no lo he visto documentado, pero parece ser que se trata de la variable vmemsize del apartado [sdl] y que se mide en megas.


    Para el disco duro de 2GB, utilizo el comando mount dentro del apartado [aoutexec] (apartado que contiene todos los comandos que quieres que se ejecuten automáticamente al arrancar DOSBox). La utilización de mount es sencilla, es indicar una unidad (C), decirle la carpeta donde quieres que se monte el falso disco duro y luego tienes el parámetro opcional freesize, donde le indicas la capacidad disponible por defecto en megas. Es importante poner por lo menos un giga (1024 megas), puesto que por defecto DOSBox dice que hay siempre 249 MB disponibles y el instalador de DIV no te dejará instalar casi nada por falta de espacio. Veréis que también meto una línea "C:" (sin nada más), esto es para que cuando arranque DOSBox éste me posicione directamente en dicha unidad.



    Podrías aprovechar ese [autoexec] para montar también la unidad de CD que contenga tu disco de instalación de DIV, pero teniendo en cuenta que es algo que sólo harás una vez, pues no considero que valga la pena. Básicamente abre DOSBox por primera vez y montas la unidad con un comando de mount. Por ejemplo, si tienes el disco (o la ISO montada) en la unidad D:\, bastaría con telcear lo siguiente: mount D "D:\"

     La diferencia está en que si lo montas desde el [autoexec] esa unidad se montará siempre y que si lo montas desde la consola ésta sólo estará montada durante dicha sesión. Y bueno, una vez abrimos DOSBox y montamos la unidad, ejecutaremos el INSTALL.EXE. Os comparto esta captura de pantalla, por si no sabéis manejaros con MS-DOS, en la que básicamente hago 4 comandos:
  • mount J "J:\" -> Para montar mi unidad de CD en J:
  • J: -> Para entrar dentro del disco.
  • dir -> Para listar en contenido del disco.
  • INSTALL.EXE -> Para lanzar la instalación.


 
    Y si lo habéis hecho bien, veréis la siguiente pantalla. Simplemente dejad todo en MAX y clicad en "INSTALAR". Si no habéis usado el "-freesize" para vuestra unidad C (como os he recomendado), seguramente esta etapa os dará problemas puesto que no podréis instalaros casi nada (la instalación máxima ocupa unos 532 MB y sin el freesize DOSBox dirá que sólo tienes disponibles 249 MB).


     Si todo va bien se os abrirá a continuación una barra de progreso y el proceso de copia durará unos minutos (desde un CD original el proceso es más lento que desde una ISO).
 


    Una vez se acabe la instalación se mostrará una popup informativa y al clicar en su botón de "aceptar" serás devuelto al MS-DOS, pero redirigido a la carpeta donde has instalado DIV2. Para ejecutar el entorno bastaría con teclear d o d.exe (los .exe los puedes omitir y aunque el ejecutable se llame D.EXE, MS-DOS no hace diferencias entre mayúsculas o minúsculas).

    La primera vez que arranques el entorno te pedirá que insertes tu nombre y a qué compañía perteneces. Esta información no es obligatoria e incluso puedes cerrar directamente la popup, pero resulta recomendable rellenar esos datos (sin miedo, esto es de la época anterior al auge de Internet) porque son datos que se auto-rellenan cuando haces los instalables para los juegos. Por cierto, puedes poner la ventana en pantalla completa (y salir de ella) pulsando simplemente las teclas ALT y ENTER a la vez.


 
 
    Cosas a tener en cuenta:
 
- Si vas a tener esta instancia de DOSBox únicamente para ejecutar DIV, puedes editar el [autoexec] para forzar que arranque DIV al iniciarse DOSBox.


- Puedes acceder al contenido del C:\ de tu DOSBox desde el administrador de archivos de tu ordenador. Esto es útil si quieres transferir recursos (imágenes, canciones, etc) para tus juegos o para editar las fuentes desde el Notepad++ (por ejemplo).



-  DIV2 cuenta con muchos ejemplos "ocultos". Existe una carpeta USER que contiene varios prototipos creados en DIV1 por usuarios de la comunidad que Hammer Technologies decidió incluir en el disco de DIV2. Entre esos ejemplos hay un juego de Dragon Ball e incluso un Zelda. También hay una carpeta WLD que contiene un ejemplo de cómo usar el modo 8 (el 3D que intentaba imitar al Doom de 1993).
 






    Y por último el consejo más importante: Puedes salir de cualquier juego programado en DIV pulsando a la vez ALT y X. Esto te salvará la vida bastantes veces, puesto que no todos los ejemplos que incluye el framework poseen una tecla para salir del juego.

05 diciembre 2024

[Jackass-02] Intentando cambiar el Game Pass Ultimate a Standard

     Game Pass es un gran invento, pero hay que poner los puntos sobre las íes: No vale la pena pagar casi 216 euros al año cuando Microsoft apenas saca dos "triples A" por año. O dicho de otra forma, te sale más barato comprar directamente esos dos juegos en su día de lanzamiento. Game Pass molaba en 2017, cuando costaba apenas 9,99€ al mes. ¿Quieres jugar a sus nuevos juegos en su lanzamiento? Pues ahora te toca desembolsar la friolera de 17,99€ cada mes. ¿Estamos locos?


    Y os seré franco, me estuve planteando directamente darme de baja del servicio, pero tengo un problema: Una hija que hace uso del servicio y que se instala los juegos que le interesan. Que si Minecraft, que si Littye Kitty Big City, que si el juego de karts de la Patrulla Canina, que si el juego de Bluey o el de Peppa Pig... Así que tengo que ver cómo puedo hacer que mi hija pueda disfrutar de todos esos juegos sin tener que desembolsar la friolera de 216 euros al año (lo que cuesta la suscripción Ultimate). Es que directamente me sale más barato comprarme todos esos juegos del montón que pagar dicha suscripción durante un año. Y visto lo asquerósamente limitado que es el servicio base de 6,99€/mes (no trae ni Minecraft), pues opté por cambiar mi suscripción al nuevo "Xbox Game Pass Standard" y así continuar pagando lo que estaba pagando, 12,99€/mes. Se trata de una cantidad que me sigue pareciendo cara, pero es lo que hay.

    Ahora bien, ¿cómo cambias el tipo de tu suscripción? A día de hoy sé que puedes hacerlo de forma simple desde tu consola, yendo a "Configuración> Cuenta> Suscripciones", seleccionando la suscripción de "Game Pass" y dándole a cambiar tipo de suscripción. Pero claro, yo eso no lo sabía e hice lo que suele hacer todo el mundo: Buscar en Google. Y me sorprendió ver la poca documentación que hay al respecto, es como si Microsoft quisiera ocultar cómo hacerlo.

    En todo caso, tanto la documentación del sitio oficial de Microsoft como la de los foros oficiales de ésta me invitaban a ir a la página de facturación de mi cuenta de Microsoft y cambiar desde ahí el tipo de suscripción de Game Pass. De hecho, si estás logueado en la web de Microsoft, la propia página de ayuda te muestra el servicio que tienes contratado y si le das a "ver detalles" te reenvía a la página de facturación de tu cuenta.



    Y desde esa interfaz cuando le das a cancelar la suscripción la web te propone cambiar a un plan más económico antes de validar la baja. Y es lo que hice, el pasado 18 de noviembre le di a cancelar y al preguntarme si deseaba más bien cambiar el tipo de suscripción, pues seleccioné que sí, que deseaba cambiar a Xbox Game Pass Standard... Todo parecía transparente e incluso recibí ese día un mail de confirmación con el título "Ha cambiado Xbox Game Pass Ultimate a Xbox Game Pass Standard", donde se me notificaba que seguía disfrutando del plan Ultimate hasta el día 22 y que pasada dicha fecha se me haría el cambio.

     ¡Qué guay! Visto esto me despreocupé y dejé que mi peque continuara usando mi consola con total normalidad... pero pasado el 23/11 empezaron a pasar cosas extrañas. Mi mujer y mi hija se quejaban que la consola iba fatal, que era como si no tuviera red, le pegué un botonazo para reiniciar, mis juegos parecían ir y no le di más importancia... Hasta que el pasado 30/11 mi peque me dijo que ninguno de sus juegos estaba ya en el Game Pass, que todos salían con un símbolo de exclamación. ¡Que habían retirado hasta el Minecraft!

    Extrañado y sin entender nada, encendí la consola, cliqué en cualquier juego de Game Pass y ahí se me invitaba a comprar el juego por no ser propietario. Para más inri, en mi biblioteca salía el catálogo de Game Pass vacío y que se me invitaba a contratar el servicio, como si ya no fuera usuario. Reinicié varias veces la consola, pero nada. Era como si se me invitara a pasar de nuevo por caja.


    Claro, esto no cuadraba, verifiqué en la app de mi banco que la suscripción se había cobrado y en la pantalla que os mencioné antes, la de "Configuración de la consola> Cuenta> Suscripciones" me salía que tenía una suscripción de Xbox Game Pass Standard contratada y activada. Me puse a revisar todos los mails de contratación del servicio que me mandó Microsoft y me llamó la atención la ausencia total de un número o dirección de correo de atención al cliente. Además, la web de facturación de Microsoft tampoco mostraba ningún número o mail al que contactar, ni siquiera un chat, lo cual me pareció extremadamente rata para ser una de las empresas con mayor valor bursátil del mundo.

    Me puse a buscar por Google y no sólo no encontré ninguna forma de contactar con Microsoft, si no que en los foros oficiales más de uno recomendaba formatear la consola. ¡¿Pero qué me estás contando!? ¿¡Estamos locos!? Así que desesperado, el pasado 30/12 pregunté directamente a Xbox España y Microsoft España por X. Han pasado ya cinco días y no me han respondido aún (y no creo que lo hagan).


    Total, que ante el total abandono que he sentido por parte de Microsoft, me tuve que poner a experimentar por mi cuenta y descubrí cómo corregir dicho bug. Y atentos por que no es nada intuitivo: Tienes que irte a Preferencias > Cuenta > Suscripciones, seleccionar Game Pass, desactivar la renovación automática y reactivarla. Tras hacer esto te sale en la consola una popup de bienvenida y la consola vuelve a permitirte jugar de nuevo con los juegos de Game Pass. Me sorprende que esto no esté documentado en ningún sitio, ni en un triste FAQ de Microsoft o Xbox.

     ¿Y ahora quién me paga los 8 días donde Game Pass no me ha dado servicio pese haberlo pagado? Se lo preguntaría a Microsoft, pero dudo que me responda.

Touch the Sky: S3RL presenta un nueva tema con gráficos de PSX

03 diciembre 2024

[Jackass-01] Intentando darme de alta en Anime Box

     Noviembre se volvió un mes muy interesante para darse de alta en Anime Box, entre otras cosas por publicar la temporada 4 parte 2 de Danmachi doblada en castellano, la temporada 5 en simulcast, las temporadas 3 y 4 de Overlord y finalizando el mes llegó la temporada dos de Code Geass. Francamente, si te gusta el ánime vale la pena pagar 4 euritos por un mes para ver todo eso. Así que yo, pobre inocente, decidí reactivar mi vieja cuenta y pagar un mes de Anime Box... y no estaba preparado para lo que me acabé encontrando.

    Cabe destacar que yo en el pasado ya era usuario de Anime Box, la usaba en el navegador de mi viejo Fire Stick (no sé por qué ya no va en el nuevo), pagué la oferta de un año y no la renové al ver el poco catálogo que tenía.

    Así que para empezar con esta aventura, instalé la aplicación en mi Smart TV a través de la Play Store de Google, inicié sesión con mi vieja cuenta, seleccioné un video y ahí se me invitaba a visitar la web a través de un ordenador para seleccionar y pagar una suscripción.

    Así que me fui al ordenador, hice login, me salieron por que sí varios mensajes de "algo ha salido mal" que se iban quitando solos (duraban un segundo y me redirigía hacía el menú de turno), fui a la configuración de mi cuenta, seleccioné la suscripción básica de 3,99€/mes y sin haber seleccionado aún ningún medio de pago la web ya me estaba dando mensajes de error: "Hay un pago pendiente o fallido. Haga clic aquí".


    Claro, yo clico en "aquí" y me sale que el pago pendiente es la suscripción que estaba intentando pagar en ese momento, por lo que acabé entrando en un bucle: Selecciono una suscripción y un mensaje de error me impedía añadir un medio de pago por no haber pagado aún la suscripción que acaba de añadir. Al final, al cabo de varios intentos, el navegador por fin me dejó añadir la información de mi tarjeta y realizar el pago. En el mundo del desarrollo web esto suele ser debido a problemas de afinidad de sesión entre los distintos módulos back o a problemas de caché.

    Así que una vez pagada mi suscripción, me fui otra vez a la app de mi televisor, seleccioné un vídeo... y nada, era imposible ver nada: Seleccionaba un vídeo, la aplicación me hacía el paripé como que lo va a reproducir y en menos de un segundo la app me llevaba al menú otra vez. Si os interesa, este bug lo tengo grabado en el siguiente post de X: https://x.com/Hamster_ruso/status/1858592456176009233.


    Llegados a ese punto yo me volvía loco, no entendía que pasaba: La suscripción me salía activa, en mi banco salía como cobrado, no tenía superado el número máximo de dispositivos y la aplicación no me iba bien ni reiniciando varias veces la tele.



    Así que me dio por ver lo que opinaba la gente en la Play Store y me encontré con que más de la mitad de los usuarios de Smart TV le ponía la nota mínima (una estrella sobre cinco) y con que había varios usuarios que también se quejaban que no podían reproducir nada.





    Pero no todo eran notas negativas, había también varios comentarios positivos, entre ellos uno de una tal "Sonia" de Selecta Visión que le daba la valoración máxima y donde remarcaba que la plataforma había empezado con mal pie, pero que se lo estaban currando.


    Bueno, no tengo nada en contra de Sonia, pero no queda bien que una cuenta de Selecta Visión le de la calificación máxima a la app de una plataforma propiedad de Selecta Visión y donde además es la propia Selecta Visión quien responde a los comentarios de la app. Bueno, realmente sí, puede hacerlo, pero no es serio.



    Bueno, total, que yo iba rabiando en X por no conseguir hacer funcionar mi cuenta de Anime Box en mi tele y pensé: "Oye, desde Google Chrome se pueden stremear pestañas". Así que me instalé Chrome en el ordenador (yo soy más de Firefox), vinculé mi tele por bluetooth, hice login en Anime Box... y que no iba. ¡Mi cuenta no iba ni por navegador web! Cada vez que seleccionaba un video, cualquiera, me salía una popup donde se me pedía seleccionar otra suscripción (me listaba todas menos la mía). Vamos, que mi cuenta estaba bugueada.


    En ese momento estaba mega desesperado. Había pagado por una suscripción que no sólo no me iba en tele, es que no podía ni usar en el navegador web de mi PC. No obstante en ese momento recordé una cosa: Cuando compras una suscripción, Anime Box te manda un mail pidiendo que les contactes a info@anime-box.com en caso de encontrar problemas técnicos.


 

    Claro, yo, pobre inocente de mi, pensaba que me atenderían si les hacía caso y mandaba un email a esa dirección. Les mandé un mail el 18/11 y otro el 19/11. También les cité varias veces por X. A fecha de hoy (03/12) desde Anime Box no me han respondido ni por mail ni por X. Han pasado 15 días, aunque bueno, puede ser que los mensajes de "No va en mi tele. Selecciono cualquier video, hace como que lo va a cargar y no lo muestra" y "Sigo sin poder ver nada, ni por web ni por app. Parece que mi cuenta está bugueada" no den a entender que necesite ayuda. No sé, a lo mejor es que he sido poco claro con mis comunicaciones.




    Y pasaron ya dos días donde yo andaba triste sin poder ver cómo Bell sigue sin ligar en mazmorras cuando encontré solito la solución al bug. ¿Recordáis la popup que me salía al clicar en cualquier video? Pues resulta que para que la aplicación funcione necesitas tener dos suscripciones, la gratuita y la de pago. Tener la de pago no sirve, debes de seleccionar la Konnichiwa y luego elegir otra de pago. Y tras esto, tras seleccionar la gratuita habiendo ya pagado una suscripción de pago, por fin empezó a funcionar mi cuenta como debía, visualizando los videos no sólo a través de la web, si no también a través de la app de mi Smart TV. Y bueno, Bell al final sí que liga con Ryu en la cuarta temporada, pero el tío tiene sangre de horchata y no se ha enterado.