12 de Septiembre, 2019

»Night Knight en la retro semana · Parece que la retro semana vuelve, después de que se jugara a Dawn of Kernel, y la temporada quedara un poco parada. Con un 30% de los votos, han decidido que Night Knight es el juego de esta semana. Se trata de una competición abierta (cualquiera puede participar) en la que se juega a un juego durante... una semana (claro), ganando el que consigue más puntos llegando más lejos. Estoy encantado que vuelvan a jugar a uno de mis juegos (¡y van 4 ya!).

Hay 0 comentarios, anotación clasificada en: msx.

25 de Agosto, 2019

»De nuevo en Cepeceros · Chema me ha vuelto a invitar a su podcast y hemos estado hablando de The Sentinel y Spirits. El primero lo jugué poco en su momento (porque no entendí nada), y el segundo fue regalo de cumpleaños de uno de mis tíos, y le eché horas y horas (sin ser un juegazo). Es la misma fórmula que seguimos en la otra ocasión: repasamos mis recuerdos y comentamos los juegos.

Hay 0 comentarios, anotación clasificada en: cpc.

12 de Agosto, 2019

»Entrevista en Retro Gamer UK · Ya me entrevistaron a cuento de Castaway (número 154), pero como hace tiempo de eso, me han vuelto a entrevistar en el número 197 (este mes de Agosto). La revista se publica en el Reino Unido y no tiene mucho que ver con la edición española (al menos la sección homebrew es exclusiva). Me propusieron la entrevista cuando comentaron Night Knight, pero como ya había una entrevista preparada para ese número, ha salido en el siguiente.

Hay 1 comentario, anotación clasificada en: msx.

12 de Julio, 2019

»Night Knight en Retro Gamer · El juego ha salido en Retro Gamer número 196 con una puntuación de un 92%, y le han dado un Retro Gamer Sizzler (como ya pasó con Dawn of Kernel). El comentario es bastante simpático, así que estoy muy contento. La mayoría de las críticas en todas partes han sido muy positivas, pero tener que el juego sea tan bien valorado en una revista tan importante siempre es algo especial.

Hay 0 comentarios, anotación clasificada en: msx.

11 de Julio, 2019

Proyectos pendientes

Estuve hace un par de días hablando en el canal de YT de Javi Ortiz, charlando sobre Night Knight, y Javi me reguntaba qué sistema pensaba añadir a mi lista.

Mi respuesta fue: creo que no. Ahora mismo hago (o he hecho) juegos para ZX Spectrum, Amstrad CPC, Commodore 64 y MSX. Son cuatro sistemas ya, lo que significa que si voy cambiando de uno a otro, y al ritmo que hago los juegos, pueden pasar varios años hasta que repita plataforma, con el riesgo que eso conlleva de que se me olvide cómo funcionan las cosas :(.

Y es que en este momemto mi lista de proyectos empezados o pendientes es la que sigue:

  • Uchusen Gamma (MSX)
  • Starblind (ZX Spectrum)
  • Kitsune's Curse (Amstrad CPC)
  • The Goblin King (C64)
  • Proyecto sin nombre, colaboración con grafista (Amstrad CPC)

Los he puesto en un orden de posible, o porque ya tengo el tema avanzado y no veo que haya ningún bloqueo: solo hay que seguir y acabar el juego. Tampoco es que no pueda cancelar cosas, pero creo que me gustaría completar todo lo que hay en esa lista.

Además hay algún tema que empecé pero que se me hace cuesta arriba retomar por tamaño o porque en su momento quizás no fuera tan buena idea, como un posible juego de rol para el CPC (que a veces alguien me recuerda :P), pero en general yo diría que esta es "la lista™".

Si vemos cómo ha ido mi tiempo libre estos últimos años, y si las cosas se mantienen estables, ahí hay material para unos 5 años de trabajo. La pregunta que me hago es: ¿son estos proyectos lo suficientemente interesantes como para mantener el interés durante tanto tiempo? Bueno, espero que sí :D.

Voy a hacer lo posible para no añadir más cosas a la lista y, si puede ser, no plantear más secuelas. Estoy llegando a la conclusión que es más fácil (y posible) acabar un proyecto con buenos resultados si es algo más pequeño y no está limitado por ideas o mecánicas establecidas en un episodio anterior de una serie.

Hay 0 comentarios

9 de Julio, 2019

»Scripts en python para convertir gráficos · Este pasado fin de semana puse en un repositorio público una versión de mis scripts para convertir PNG para usar en el MSX. Hay gente que usa herramientas específicas, pero yo prefiero trabajar con GIMP y luego convertir un formato moderno (como el PNG) a lo que sea que necesito en el sistema para el que estoy programando. Lo mismo hice para el C64 y para el ZX Spectrum. Me falta publicar las de CPC, solo tengo que revisar el código y quizás añadir algún extra para que las herramientas sean un poco más útiles (por ejemplo: en estas últimas que he publicado he añadido soporte para generar datos para ensamblador, aunque no es algo que yo use en mis proyectos).

Hay 0 comentarios, anotación clasificada en: python, open source, msx, c64, speccy.

8 de Julio, 2019

»Trabajando en Uchusen Gamma · Desde que publicara Night Knight he continuado trabajando en Starblind, sobretodo en las sesiones que he ido grabando, pero ese proyecto se ha vuelto a enfriar un poco (quizás porque la idea está un poco menos definida). Creo que fue en las navidades pasadas que estuve cacharreando con la idea de hacer un juego con scroll en MSX empleando algunos trucos (porque el MSX no tiene hardware para hacer scroll), pero se quedó en nada. Le he dado otra vuelta y he conseguido algo que ya tiene nombre: Uchusen Gamma (algo así como nave espacial gama, medio en japonés). La cosa pinta bien y aquí hay un vídeo de la primera fase probando música y efectos.

Hay 0 comentarios, anotación clasificada en: msx, programming.

16 de Junio, 2019

LSP y Vim

Llevo ya unos años usando syntastic en vim, especialmente en Python (y algo en Go, porque he programado menos en este lenguaje). Lo que hace este plug-in es analizar la sintaxis de nuestro código con diferentes herramientas según trabajamos (normalmente al guardar el documento), y nos muestra en la barra lateral si hay errores o warnings.

Es como compilar según programamos, y a mi personalmente me ha servido mucho para mejorar mi python porque esos warnings te enseñan casi sin esfuerzo a escribir código siguiendo la guía de estilo de python (el PEP8). Aunque últimamente estoy volviéndome muy fan de herramientas que dan formato a nuestro código automáticamente, pero esto ya es historia para otra anotación ;).

Analizar el código así tiene ventajas, pero evidentemente tiene un coste, porque cada vez que se guarda el fichero, hay que ejecutar la herramienta que hace el trabajo. En general hablamos de milisegundos, y desde hace un tiempo vim hace esto de forma asíncrona (de fondo, sin bloqueos).

Hasta que empiezas a programar en Scala y tienes el problema de los tiempos de arranque de la máquina virtual de Java :(.

La verdad es que syntastic es una pasada, pero ha costado tiempo añadir soporte para muchos lenguajes y herramientas, y está disponible solo para vim.

Aquí es donde entra Language Server Protocol, que es una propuesta de Microsoft para estandarizar un protocolo para proporcionar la misma funcionalidad que syntastic nos da, y mucho más.

La idea es que ejecutamos un cliente de LSP en nuestro editor, sea cual sea, que se comunicará con un servidor que proporciona la funcionalidad necesaria para el lenguaje en el que estamos desarrollando.

De esta forma los servidores son independientes del editor, y al ser una arquitectura cliente/servidor, no es necesario esperar a que las herramientas arranquen, con lo que la lentitud al arrancar de la máquina virtual de Java es irrelevante (o incluso el análisis de grandes ficheros en python si usamos una herramienta pesada como pylint).

Aparte del análisis hay otras funcionalidades, como acceder a la documentación, auto-completar código semánticamente, refactorizar código (por ejemplo: renombrar variables), etc; todo dependiendo de lo que soporte el cliente y el servidor (LSP es bastante grande).

Ahora mismo hay una buena lista de servidores, y he encontrado un cliente muy fácil de instalar y que funciona muy bien en vim: LanguageClient-neovim.

En python es muy fácil instalar python-language-server y, aunque hace más o menos lo mismo que syntastic, es un poco más rápido y da algunas cosas extra que pueden ser bastante útiles.

Al final todo esto es lo mismo que se puede conseguir en un IDE pesado, pero me parece genial poder contar con estas ayudas en mi editor favorito.

Hay 0 comentarios, anotación clasificada en: vim, programming.

1 de Junio, 2019

Las contraseñas de Night Knight

Ya han pasado unas semanas desde la publicación de Night Knight, y ya ha habido tiempo para que la gente juegue y diga lo que piensa, y la respuesta ha sido mayoritariamente positiva.

Los pocos comentarios negativos no están dirigidos al juego en sí, sino a temas de presentación, como por ejemplo que el sistema para introducir contraseñas no es muy cómodo, o que el juego debería permitir continuar una vez se acaban las vidas.

Lo cual no está mal, porque lo que ha gustado menos, no es el juego. Tomo nota para hacer las cosas de forma diferente en el futuro.

Este es el primer juego en el que implemento contraseñas, y no quería que fuera la principal forma de jugar al juego. Cambia mucho la dinámica si te enfrentas a cada pantalla con 3 vidas una y otra vez hasta que pasas a la siguiente y te apuntas la contraseña.

Evidentemente no espero que nadie, o casi nadie, complete las 80 pantallas de una sentada, por eso implementé el sistema de contraseñas. Además me permite cometer más errores diseñando las pantallas, tanto por ajuste de dificultad como por curva de aprendizaje (por ejemplo, en Magica la última pantalla del juego es notablemente más fácil que las dos anteriores).

Pero está claro que el diseño del juego no funciona igual si tienes un número infinito de vidas (mantienes los puntos) o de continuaciones (pierdes la puntuación), y con las contraseñas lo que he propuesto es continuaciones incómodas, esperando que los jugadores arriesguen y no guarden la contraseña en cada pantalla.

Respecto a las contraseñas en sí, el sistema es muy sencillo y consta de 3 bytes codificados en 6 caracteres de un diccionario de 16. Por ejemplo YRYPKN.

El primer byte es aleatorio, para que sea más complicado romper el sistema (para mi que es más fácil meter un poke para conseguir vidas infinitas), con lo que puedes tener 256 contraseñas válidas para una misma pantalla. El siguiente byte es el número de pantalla al que se le aplica una función basada en el primer byte, y finalmente hay un byte de control muy simple para evitar que una contraseña aleatoria funcione.

Al final es muy sencillo y la mayor complicación ha sido introducir la contraseña, porque decidí no usar el teclado. Los MSX pueden tener las teclas organizadas de muchas formas, incluso más que QWERTY y AZERTY, y debido a cómo se lee matriz del teclado en estas máquinas, era imposible hacerlo de forma que funcionara en todos los modelos.

Tengo pendiente poner por aquí algunos enlaces a reacciones al juego, que además va a salir comentado en un par de publicaciones en papel :D.

Hay 0 comentarios, anotación clasificada en: msx.

15 de Mayo, 2019

»Night Knight ·Ya he publicado Night Knight y está disponible para descarga gratuita. La edición de coleccionista, por parte de Poly Play, está casi lista y espero que pronto esté en manos de la gente. Es pronto, pero por ahora parece que la recepción ha sido bastante buena. Es juego es divertido, eso ayuda :). Una anotación corta y un poco sosa, pero mi excusa es que no tengo mucho tiempo para más. Intentaré poner algunos enlaces a reacciones cuando las hayan.

Hay 0 comentarios, anotación clasificada en: msx.

Entradas antiguas