lunes, 13 de febrero de 2006

THiNK, Robot! y 3

Analizando críticamente el código fuente del juego, acepto que lo volvería a escribir desde cero.
A medida que fui conociendo el lenguaje y la plataforma, me di cuenta de lo que no usaba... o usaba mal.
Finalmente, como el tiempo apremiaba, tuve que recurrir a los siempre odiosos parches para salir del paso.

El hábito de programar orientado a objetos, por ejemplo, en móviles se debe reconsiderar. Al menos en algunos aspectos. Con un heap tan bajo en ciertas plataformas, es una buena práctica dejar de lado métodos como get y set, sustituyéndolos con accesos a variables protegidas.

Como todo está hecho en MIDP 1.0, tuve que ver cómo cargaba las imágenes en memoria. (En MIDP 2.0 hay clases que administran eso sin problemas)
Me hice una clase para cargar una gran imagen y extraer tiles y sprites desde allí. Pero permanentemente se me escapaba la memoria heap. Nunca pude comprobar si era algún error mío o los emuladores me indicaban mal el heap ocupado. Así que decidí crear y cargar archivos individuales para cada imagen. Esto llevó a tener un archivo .jar de mayor tamaño y realmente no es lo que debe hacerse... pero al no poder probar sobre celulares, no quise arriesgarme a que luego nada funcionara por falta de memoria.

Traté de seguir las guidelines de Nokia para el armado de los menúes y uso de teclas.
Me hubiera gustado crear los menúes usando la UI de bajo nivel, con un juego de caracteres gráfico y efectos especiales... pero el tiempo no daba para todo eso.
Como dije en su momento... cada celular trata de forma distinta a los fonts del sistema, por lo que en cada emulador he visto un meú diferente... Ahora estoy escribiendo un framework para desarrollar menúes de texto o gráficos en forma más genérica.

La última semana, además de pulir todo, fue dedicada al sonido. Encontré algunos loops .wav interesantes en www.flashkit.com y otros midi que convertí a tonos a través de la Suite de Nokia.
Demás está decir que también puede ser mejorado...

Terminando con todo esto de THiNK, Robot!... considero que fue una gran experiencia.
Desarrollar para móviles, no sólo juegos, es un camino que recién se comienza a andar...
Cuando analizo un poco este mercado, me pongo en la situación de los años en que programaba para las home computers... limitada plataforma... inmenso futuro y la posibilidad de aún poder competir contra las grandes desarrolladoras.

Nos leemos.