Jul 14th 2008, 00:22
Código fonte de um pong para celular e observações sobre o projeto.
Recentemente para fins de teste me aventurei a fazer um jogo para celular e acabou saindo o
VMPong.
Para esta tarefa eu queria verificar:
- qual a dificuldade real de se fazer um jogo para celular;
- quais ferramentas, plataformas e ambientes disponíveis;
- quais são as possibilidades.
Como eu queria algo “livre” e estava curto em dinheiro, a minha melhor opção era sem dúvida o
Java. Após algum tempo verificando a página de tecnologias de
mobilidade da Sun, resolvi dar um chance e botar a mão na massa.
O primeiro passo foi conseguir ter acesso às ferramentas necessárias, neste quesito eu apelei para o
NetBeans. Um ambiente completo e integrado para desenvolvimento Java (incluindo claro, módulos para desenvolvimento mobile).
No processo todo, aprendi algumas lições:
- ferramentas para desenvolvimento Java são muito boas, em especial o NetBeans dá conta do recado com o seu ambiente integrado;
- sempre teste no aparelho, emuladores são muito diferentes e no meu caso (no meu celular V3), o celular é muito mais lerdo do que o emulador;
- celulares são muito diferentes de serem programados. Cada variável declarada, cada memória alocada deve ser pensada com atenção pois os recursos são muito escassos;
- a parte mais difícil do processo todo foi conseguir passar o jogo para o celular (realmente complicado, vale um artigo inteiro por si só);
- se você curte otimizar o código ao máximo vai se divertir bastante;
- as possibilidades são grandes;
- ver um jogo que você fez rodar em seu celular é muito bacana (todo mundo devia experimentar isso um dia :) )…
No geral, utilizando conceitos básicos de game loop e colisão, consegui fazer um pong simples e rápido para o celular (o problema inicial foi se acostumar com o “feeling” de espaço e tempo da plataforma.
As possiblidades para jogos para celulares são grandes, em especial conforme eles aumentam de capacidade, as coisas ficam muito mais interessantes, mas por enquanto, o público alvo para este tipo de plataforma são os jogadores casuais (e com razão). Com o advento e adesão do
OpenGL ES os celulares mais novos já suportam aceleração 3D (acessível através da API OpenGL (em uma versão reduzida)).
É possível fazer coisas muito mais bacanas (eu mostrei apenas a ponta do iceberg).
Como não poderia deixar de ser, o jogo pode ser baixado logo abaixo (incluindo o código fonte completo com o projeto no NetBeans) . PS: o código fonte está em inglês, incluindo os comentários.

Arquivo do projeto VMPong no formato NetBeans
Bom estudo.
Links
GSMArena: excelente site com especificações técnicas sobre praticamente todos os celulares GSM existentes.
J2me forums: um dos melhores forums sobre programação Java para celulares.
J2me tutorials: link com diversos tutoriais.
jasonlam604.com: excelente site com diversos tutoriais e um livro gratuito sobre programação de jogos para celulares.