Internal Beeper


Memorias de un programador (2)
abril 25, 2005, 2:42 am
Filed under: Divagaciones

Programar para móviles tiene su encanto. Ya lo comenté, hace meses, antes de embarcarme en mi gran aventura por el mundo del j2me, y ahora que lo realizo, “por obligación”, debo reiterarlo. Es un encanto.

Pero un encanto con ciertas dosis de masoquismo, todo sea dicho. Programar para un sistema “poco potente”, implica tener en la mente, en mayúsculas, Arial 60, negrita, subrallado y lucecitas de neon, la siguiente palabra: LIMITACION.

Vamos a nombrar, de pasada, las limitaciones a las que se ve envuelto un programador de movil:

1.- Limitación de procesador. Lo que significa que, dependiendo de lo que hagas, el juego va a ir a patadas. Si uno no es cauto, y empieza a llenar la parte del código que se va a ejecutar constantemente (por ejemplo, en el repintado, o el trato de eventos) todo va a ir lento. Y la jugabilidad del juego va a bajar hasta el sótano.

2.- Limitación de código. Muchos móviles, o variantes del J2ME imponen un límite del tamaño de los archivos de código. Que no significa que el código fuente sea más corto, sino que el código compilado, debe serlo. Y si el límite es muy pequeño, como en las gamas bajas, uno puede alcanzar ese límite muy fácilmente. Y aquí si que no hay atajos. Si no cabe, no cabe. La única solución es optar siempre por un desarrollo simple. Nada de grandes árboles de inteligencia artificial para los enemigos. Si puedes, no hacer lo mismo, pero “simularlo” con muchos menos código, hazlo.

3.- Limitación de datos. Como si no hubiera suficiente con la limitación de código, a un movil no se le pueden poner los datos que a uno le de la gana. Cinco midis chusqueros, unas cuantas imágenes a pantalla completa y el movil se va a declarar en vaga.

4.- Limitación de memoria. La cantidad de cosas que un movil puede poner en memoria es, para variar, limitada. Muy limitada dependiendo de los modelos. Lo que implica que, aunque tu tengas una gran variedad de gráficos disponibles (o datos, en general), no vas a poder tenerlos todos cargados a la vez. Pero, claro, el movil no va a ponerse a cargar los datos cada vez que el protagonista del juego, por ejemplo, salta. Todas las variaciones gráficas posibles en un nivel deben estar en la memoria a la vez. Y eso implica todas las animaciones posibles de todos los personajes que intervienen en ese nivel, amén de todos los gráficos adicionales. Eso significa saber reaprovechar animaciones y nombrar a los familiares del diseñador del nivel, que ha creído que la variedad de enemigos hará el juego menos monótono.

5.- Limitaciones de soporte. El soporte del juego (es decir, el movil en concreto) puede tener otras limitaciones adicionales que están allá con el único objetivo de hacer la vida imposible a cualquiera que haga aplicaciones para ese movil. Puede ser la imposibilidad de hacer sonar más de un sonido a la vez, o el de apretar dos teclas simultaneamente (eso será la norma para casi qualquier móvil) o a veces cosas tan divertidas como la imposibilidad de tener más de X imágenes cargadas en memoria (independientemente del tamaño de las imágenes) o rutinas que no se pueden aplicar o no existen (por ejemplo, dibujar un círculo de un radio determinado, o calcular un coseno).

Si programar juegos para PC lo comparamos con escribir una novela, programar juegos para un dispositivo concreto, especialmente para uno limitado, es como escribir una novela, pero sin utilizar nombres propios, las letra V, J y U, verbos en subjuntivo y parágrafos que pasen de los 200 caracteres.

Pero, eso sí, mola lo que no tiene nombre.

Anuncios

8 comentarios so far
Deja un comentario

Muy interesante…

Comentario por Bombadil

Solo un friki sería capaz de decir algo así xD.

Comentario por Michael

Solo un friki sería capaz de decir algo así xD.

Comentario por Michael

Algun problema? xD

Comentario por Bombadil

Hace mucho tiempo que tengo ganas de programar un videojuego, y con tu post me han entrado más ganas aún. Esto de las limitaciones visto desde fuera parece un reto más que una tocada de narices.

Ah, y felicidades por el post. Y una pregunta de vago: ¿cómo se programan videojuegos para móvil? Me da pereza entrar en Google y buscar, así que si sabéis de alguna dirección a la que pueda acudir para informarme sería genial. He oído campanas sobre una librería de Java pero no sé cómo se llama… Y de hecho, ni siquiera sé si hay o no alternativas (bueno, creo que para N-Gage utiliza un compilador de C).

Comentario por Miq

NGage utiliza C.
Pero los dispositivos móbiles utilizan J2ME o, en algunos casos concretos, una versión más limitada aún llamada Doja.

Uno de los mejores tutoriales sobre J2ME en castellano se encuentra en: http://www.agserrano.com/publi.html

Pero te recomiendo que te metas en alguna comunidad, como http://www.microjava.com

Comentario por DonDepre

Una pregunta.. creeis que se podria hacer una conversion del Bruce lee de commodore 64 para java?? Sabes algo de mophun?

Comentario por Ikerin

La verdad que si miras las intros de 4kb de pouet se podrían buscar a buenos coders para videojuegos 🙂

Comentario por ethernet




Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s



A %d blogueros les gusta esto: