Mostrando entradas con la etiqueta programación.. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación.. Mostrar todas las entradas

jueves, 18 de febrero de 2016

Por fin aprenderás a programar un juego profesional para Amstrad CPC

¿Cuantas veces has querido realizar tu propio videojuego para Amstrad CPC? ¿Cuantas veces te has atrevido a intentar aprender a programar utilizando algunas librerías existentes o, mejor aún, aprendiendo código máquina hasta que, finalmente, te has rendido?
Lo cierto es que los amantes del Amstrad CPC nunca lo hemos tenido muy fácil para poder programar nuestros propio juegos para Amstrad CPC. Como ya sabes,  los juegos publicados en ESP Soft, han sido creados y programados a la vieja usanza, programando en código máquina y utilizando algunas librería auxiliares. De hecho, los inicios de casi todos nosotros con la programación en Amstrad CPC ha sido en Basic, algo que, más o menos, nunca se nos dio del todo mal, pero es evidente que utilizar Basic para hacer juegos con aspecto profesional para Amstrad CPC no es lo más indicado.
¿Y si pudiéramos crear juegos profesionales programando en Basic? ¿Cómo programar un juego en 8 bits de forma sencilla e impecable? Pues sí. Es posible...

lunes, 21 de septiembre de 2015

WIP cpcrslib

En el antiguo foro de Esp Soft de vez en cuando daba avances de la situación en la que se encontraban algunos proyectos en los que estaba trabajando. Me resulta imposible enumerar todos los puntos que he tocado en este tiempo (creo que la última vez que actualicé fue en Febrero) pero sí puedo dar un par de pinceladas sobre lo que ha cambiado en este tiempo en la librería cpcrslib.

Primero, el cambio más importante es el más tonto de todos, he divido la librería de la versión SDCC en archivos, uno por cada función. Esto era así en z88dk, cuando convertí la librería a SDCC me volví un poco loco por cómo se hacía ya que había algunos cambios sustanciales y me tocó improvisar. Ahora con la experciencia y la ayuda de Fran Gallego (autor de cpctelara y algunos tutoriales de programación muy interesantes) la librería pesa menos y es más rápida ya que también aprovechamos que SDCC 3.5.x da soporte a llamadas rápidas a funciones, cosa que ya, por otra parte, ya tenía z88dk.

Segundo, sigo con mi particular piedra en el zapato: El scroll. En la versión publicada se da soporte y un ejemplo de scroll horizontal por software y mapa de tiles pero estoy inmerso en una versión nueva para utilizar doble buffer y mapa de tiles. Esta versión es más rápida pero es más complicada de montar ya que utiliza desde &8000 a &FFFF para guardar las dos pantallas, aunque si la pantalla no es completa se pueden aprovechar algunos kbs dentro del rango de arriba. En mi caso es donde guardo los sprites.

La idea que tenemos en mente es darle uso al motor y hacer algo jugable, pero sin prisa y con muchas pausas. Desgraciadamente el tiempo es limitado, lo mismo que las ideas.

Os dejo un par de ejemplos de scroll sobre el mismo (o muy parecido) mapeado. El primero es con la versión actual de cpcrslib, el segundo es con la versión en la que estamos trabajando.


 


La última versión de las librerías está en Sourceforge:


Y ya sabéis, y si no, ahora sí. Estamos en el foro de Amstrad.es y damos soporte a programación en y para CPC: Basic, ASM, C y lo que se precie.