31 de agosto de 2010

Regreso al "pixel"

Se acabaron las "vacaciones".

Como a Michael J. Fox en la película Regreso al Futuro, el tiempo empieza a correr en mi contra; NECESITO publicar el programa YA. Llevo ya bastante tiempo trabajando en él y creo que tengo que avanzarlo todo lo que pueda en el menor tiempo posible.


Como soy muy perfeccionista en todo lo que hago (o eso creo), el proyecto se está alargando bastante retocando y puliendo detalles internos del juego... así que de esta tarde no pasa para que termine las rutinas internas del mapa...

Aún me quedará la parte de diseñar los diferentes niveles, enemigos.... bufff, casi nada.

24 de agosto de 2010

Actualizando a GLBasic versión 8.078

Aunque ya hacía tiempo que se trabajaba en la versión 8 y todas sus betas (ver en el foro oficial los múltiples comentarios al respecto), ahora el entorno se despega de la coletilla de beta para ser la actual versión oficial descargable, la número 8.078.

Éstas son las diferencias que se han introducido desde la 7.341 hasta la version actual que como se puede ver no son pocas:

(fichero log_e.gbas)
// 8.078
// iPhone:
// iOS4 multitasking able. See "AUTOPAUSE" manual.

// Core:
// INSTR and REPLACE$ can work with binary data
// containing CHR$(0) characters now.


// 8.064 beta
// Editor:
// Code-folding uppercased INLINE code.
// Font-Creator:
// Added font dialog scaling, better font sizing and
// taking care of 128/256 character fonts now.
// Compiler:
// can reuse same function name in multiple TYPEs.
// nested ?IF didn't evaluate well.


// 8.054 beta
// Mac/iPhone:
// NETWEBGET hung for good.
//
// Compiler:
// external TYPEs should work now.


// 8.050 beta
// iPhone:
// SAVESPRITE/SAVEASBMP fixed to work on iPhone. (do all platforms work?)
// PLATFORMINFO$("BATTERY") was broken.
//
// New Platform:
// Pandora - http://www.openpandora.de
// WinCE - Works also with Windows CE Netbooks


// 8.03 beta
// New command:
// MEM2SPRITE, SPRITE2MEM - Sprites from DIM pixel data.
//
// Editor:
// Option to change inline background colour.
//
// iPhone:
// Total of 16 simultanously touches can be handled now (for iPad mainly)


// 8.006 beta
// Compiler:
// Bugs with functions in types fixed.
// Win32:
// Window was not centered with multiple monitors.
// Editor:
// Update was still refering to V7
// iPhone:
// IMPORT "C" int iPhoneIsCracked() // works now
// Landscape mode was broken.


// 8.002 beta
// Compiler:
// Auto-generated variables are GLOBAL in main program, and LOCAL for SUBs and FKTs.
// Option "Explicit declarations" is enabled for new projects by default.
// Comments broke the precompiler commands.
// Help comments (//?) choked the compiler.
//
// Core:
// Network: switched to blocking sockets internally. Faster on most platforms.
// BMP images with 16 bit colour depth are supported now. (Where'd you get these from?)
// New protection system allows external GPC calling.
//
// iPhone:
// MOUSEAXIS was defect.
// iPad support added. Use the project options to set the screen size.
//
// New command:
// NOT - negates an expression.
// ENCRYPT$() - encrypt a string (128 bit encryption)
// DECRYPT$()
// LEFT$() - convenient MID$() wrappers
// RIGHT$()


// 7.350
// *** ANNOUNCEMENT ***
// THIS IS THE LAST V7 UPDATE. YOU WILL NEED A NEW SETUP
// TO V8.x NOW! GET IT. NO UPDATE FEE REQUIRED.
// FULLY COMPATIBLE.

// Editor:
// IncrediBuild skips improved.

Sistema de puertas terminado

He terminado la rutina de implementación de puertas en el mapa. He diseñado varios tipos de puertas en función de cómo se pueden abrir éstas.

De momento hay definidas tres puertas; las que se abren sin más, las que requieren una llave (objeto que hay que recoger) y las que para abrirse requieren que se active un botón.


En la primera captura podemos ver un recuadro en verde con el texto "RES 00"; eso es el "botón" que abre la puerta... requiere que algún objeto ó personaje se sitúe en dicha posición permanentemente para que la puerta se mantenga abierta.


Ya de paso comento la pequeña evolución que ha sufrido el fichero de gráficos del mapa... aunque no es definitivo, el set de tiles del mapa incluye ahora otros tonos de color (grises)... y sombras para darle un toque más curioso.

17 de agosto de 2010

Extraño error de pintado de sprites

He detectado un problema en el pintado de sprites. Se trata de un "error" que sólo sucede en el iPhone 3G 16Gb, en el caso del iPad 32Gb no hay problema.

El procedimiento que empleo para el pintado de sprites es el siguiente:

En primer lugar cargo la imagen utilizando LOADSPRITE. La imagen tiene un tamaño de 1280x480(x256) píxeles, formato PNG. La idea es utilizar esta única imagen para las diferentes pantallas del tutorial, separados en 4 "páginas" (1280/4=320 píxeles).


Para la representación de las diferentes páginas hago lo siguiente: primero pinto la imagen en la posición pantalla 0,0 que será la "primera página". Espero pulsación en pantalla y modifico el valor de la posición horizontal de la imagen y pinto la misma imagen en -320,0 para mostrar la "segunda página"... así sucesivamente hasta completar las 4 "páginas".


Bueno, sólo hay que ver la captura para observar el fallo que se presenta SOLO en el iPhone (la imagen aparece como DOBLE de tamaño horizontal). iPad y otras plataformas como Win32 ... funciona a la perfección.


Esperemos a ver los chicos del foro de GLBasic, a ver qué opinan.

16 de agosto de 2010

Video GLBasic - Test LPNT-IX 007 HD

Vídeo del estado actual del desarrollo donde se muestran los avances en cuanto a los objetos insertados en el mapa.

15 de agosto de 2010

NetHack, el origen de todo.

A estas alturas del desarrollo y aún no he comentado la idea de donde parte el proyecto LitioPixel; se trata del clásico Nethack (recomiendo la lectura del enlace en la Wikipedia).

Si aún no lo has probado éste es el momento ya que es un juego que aunque por su aspecto puede parecer muy simple, esconde en su interior todo un mundo de magia y misterios.




Capturas extraídas de la página oficial http://www.nethack.org/) con el juego en módo gráfico original, ASCII. También podemos observar el aspecto que muestra para las versiones de windows en módo gráfico.

Citando al la Wikipedia, disponible para Unix (en sus múltiples variantes, incluidos Linux, Solaris, Cygwin y muchas otras más), MS-DOS, Windows, MacOS, PalmOS, Windows CE para Pocket PC, Amiga...y actualmente añado que también hay versión para todas las plataformas actuales y cómo no iPod / iPhone / iPad.

Objetos en el mapa

Montaje de varias capturas en las que se muestran los avances en cuanto al mapa y objetos con los que interactuar.


Como se puede ver en la imagen, de momento he declarado cuatro tipos de objetos:

- OBJ 01 y OBJ 02, recogibles. Cada uno gestiona una variable diferente.

- OBJ 03 no permite ser recogido. Pensado para ítems "decorado".

- OBJ 04 permite ser empujado. Funcionará a modo de "trigger".

Incluyo también muestra de información del mapa conforme se carga. Tengo pensado modificar esta pantalla para que muestre información al jugador sobre el nivel, tiempo, objetivos, etc.

La miniatura situada abajo a la derecha muestra cómo los OBJ 04 han sido movidos, así como el resto de objetos que ya han sido recogidos, lo cual se refleja en el panel marcador del juego.

13 de agosto de 2010

Trabajando en la sombra...

Vacaciones!?!?

Trabajo cada día un mínimo de cuatro horitas en el desarrollo del juego... quiero aprovechar las horas que tengo libres para avanzar.

El editor de mapas funciona correctamente (ver post anterior), aunque el interface de usuario es muy tosco; no pienso mejorarlo, me sirve para lo que necesito y puedo añadir funcionalidades al mapa a través del editor sin demasiadas complicaciones.


Sigo trabajando en mejorar el método de carga del mapa (la estructura interna del fichero ha cambiado) ahora ya tengo los objetos cargados en el mapa y el personaje principal los detecta y recoge sin problemas. Tengo por optimizar aún la rutina de empujar los objetos.

He aprovechado también para limpiar los gráficos y su asignación en memoria, he reducido de 21 a 15 los png que necesito cargar, aunque ahora son todos de tipo ANIM. Incluídas las 4 variaciones de tipografías que pienso utilizar.

Como comentario final, mi contador de ejecuciones del juego SOLO en el portátil Windows indica 662 test... ;)

8 de agosto de 2010

Editor de mapas básico terminado

De momento mi sencillo editor está terminado. He modificado el formato del fichero de mapas para poder incluir todas las características que necesito. Ahora el archivo ocupa el triple en tamaño ya que además de almacenar las posiciones de los gráficos en el mapa, incluye algunas nuevas características que necesito por nivel como objetos, acciones, etc.


El editor de mapas incluye las siguientes características:
- Tamaño de mapa modificable.
- Tres capas de trabajo: gráficos, objetos y "acciones".
- Posición de entrada/salida de mapa posicionable.
- Posibilidad de dar nombre al mapa.
- Reacción independiente por "tile" según "acciones".

*Nota: La velocidad de la aplicación que se muestra en el vídeo no corresponde con la realidad debido al consumo de recursos que emplea el software de captura empleado.

5 de agosto de 2010

Fin del mantenimiento...

Demasiados días ya sin programar ni avanzar en el proyecto... de momento dejo el blog como está actualmente en cuanto a diseño, colores y "gadgets"...

3 de agosto de 2010

Mantenimiento del blog...

Ya se sabe, cada X tiempo toca realizar mantenimiento del blog, eliminar fotos de Picasa que me sobran, modificar alguna que otra cosa por aquí y por allá, añadir las opciones de compartir a Facebook y Twitter, en fin... algo aburrido, pero necesario.


Aprovecho también para cambiar los colores del blog, me apetece ver que tal quedará con unos tonos más "retro".