lunes, 23 de febrero de 2009

Asalto y Castigo, versión Amstrad CPC

Finalmente, he portado el código a Amstrad CPC Basic (Locomotive Basic).

El resultado ha sido impresionante, aunque algo menos vistoso.

Finalmente, he decidido que la aventura salga primero para el Amstrad, y después, a ver si consigo arreglar el tema del Spectrum.

En Amstrad, al correr la aventura quedan 14k's libres (sobre 41), y la respuesta a "coger la espada" ocurre casi en menos de un segundo. Y con más cosas, pues he aprovechado para expandir alguna descripción y un pequeño puzzle más.

En Spectrum, sólo quedan 2.5 k's libres corriendo la aventura, y la respuesta a "coger la espada" es de unos 3 a 5 segundos. La compilación, en el Speccy, es una necesidad.

martes, 17 de febrero de 2009

Asalto y Castigo

Quizás algunos os estéis preguntando a qué viene este silencio sobre "Asalto y Castigo", la aventura que programé en Speccy para el concurso de juegos en BASIC de Bytemaniacos, y al que llegué tarde.

Ahora participará en la RetroComp, aunque eso es, en realidad, lo de menos. Probablemente, sólo aquellos de ente vosotros amantes del Speccy la apreciarán, pero eso es otro tema.

La aventura está terminada y betatesteada, mil gracias de nuevo a Jenesis, mi Betatester oficial.

¿Por qué, entonces, no la he publicado?

La respuesta es sencilla: es lentísima. Uno de los problemas del Speccy es su extrema lentitud (fue diseñado para ocupar poco [aunque en eso tampoco funciona demsiado bien]), especialmente cuando el tmaaño del código crece. Actualmente, tarda unos dos segundos en cambiar de una localidad a otra, con comandos como "e", "o", "n" o "s" (o incluso, con sus versiones largas). El problema es que tarda unos 4-5 segs. en procesar algo tan simple como "coge la espada". Esto no es un problema de diseño, todas las búsqedas que se hacen se hacen mediante búsquedas binarias. De hecho, en lo que se tarda tiempo es en recorrer la cadena para extraer acc, uno y otro, Y no se puede evitar, hay que hacerlo.

Esto abre varias posibilidades:

- Publicar la aventura tal cuál está: Es una opción posible. Al fin y al cabo, la mayor parte de la gente (si no toda), la jugará en un emulador, y suelen tener un "turbo mode" muy adecuado para estos casos. Por ahora, teniendo en cuenta que el plazo de la retrocomp está lejos, lo he descartado.

- Compilar la aventura y publicarla tanto en BASIC (para verla, reaprovechar parte del código o lo que sea), como en código máquina. Esto es lo que estoy intentando ahora mismo. Desgraciadamente, no hay un compilador para Sinclair BASIC hoy en día que funcione en PC, así que hay que hacerlo con lo que había entonces: el HiSoft BASIC compiler. Por alguna razón, aunque he conseguido compilar, no funciona. Esto solucionaría todos los problemas de velocidad.

- Publicar la aventura para Amstrad CPC. Ya había pensado en portar la aventura a Amstrad CPC Basic, Locomotive Basic, mucho más rápido. Estoy seguro de que símplemente portando el código y cambiando la parte de acceso a cadenas, la aventura será perfectamente jugable. De hecho, probablemente si la hubiera hecho para Amstrad CPC, hasta podría ser mucho más interactiva y literaria de lo que es ahora mismo (he tenido que recortar texto hasta donde me he atrevido para hacer sitio para ciertas cosas [vitales]).

Como véis, el proyecto sigue en activo como desde el principio, e insisto, la aventura está terminada y betatesteada.

Veremos cómo termina todo ésto. La aventura será publicada dentro del plazo de la RetroComp, eso seguro, aunque sea tal y como está.