Olá.
Recentemente para fins de teste me aventurei a fazer um jogo para celular e acabou saindo o VMPong.

VMPong rodando em todo o seu esplendor…
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 (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 aqui (incluindo o código fonte completo com o projeto no NetBeans) . PS: o código fonte está em inglês, incluindo os comentários.
Bom estudo.
Espero ter ajudado. Qualquer sugestão não deixem de comunicar.
Links
Pensei em postar alguns links que encontrei, mas por enquanto existe um link muito bom em http://www.codebeach.com/index.asp?tabID=2&categoryID=25&subcategoryID=11 onde você pode encontrar diversos links para outros sites com muitos materiais sobre programação de games em J2ME.
July 14th, 2008

Olá pessoal.
Voltando finalmente à série de posts “semanais da semana” depois de um longo período “de molho” devido à maratona de trabalho intenso (muito intenso), como já foi discutido anteriormente, estudar códigos-fonte é uma das melhores maneiras de aprender a programar jogos porque você vê como as partes se interligam, como se aplicam determinadas técnicas, etc.
Existem diversos códigos fonte de jogos comerciais disponíveis para download, em especial a id Software sempre foi famosa por lançar o código de seus jogos alguns anos após o lançamento inicial.
Segue abaixo uma pequena compilação de alguns dos jogos da id Software pra você pegar e estudar (dos mais recentes para os mais antigos).
Quake 3

Uma das engines de maior sucesso da história (sucesso de vendas para a id) utilizada em diversos jogos comerciais, Quake 3 pegou todas as características das engines anteriores e melhorou em todos os aspectos: gráficos melhores com suporte à shaders e maiores resoluções devido ao hardware da época, ferramentas de edição melhoradas, etc.
quake3-132b-source.zip
Quake 2

Versão melhorada da engine do Quake, já com suporte nativo à plataforma win 32 (adeus DOS), código de networking melhorado e extensibilidade através de dlls (ao invés do antigo código QuakeC). Também trouxe melhorias na parte de modelos (novo formato md2) e a capacidade de trocar de renderizador em tempo real.
quake2.zip
Quake

Engine pioneira na época (1996) por utilizar polígonos arbitrários permitindo total imersão 3d. Feita para rodar em computadores 486 com 16mb de ram, ela era rápida e permitia uma grande flexibilidade através de uma linguagem de scripts chamada QuakeC. Mais tarde foi aperfeiçoada para rodar em ambientes windows (winquake) e suportar aceleralção 3d (glquake).
A id liberou junto o código fonte de todas as ferramentas utilizadas na edição do jogo (compilador QuakeC, editor de mapa, etc, não inclusos no pacote) que pode ser baixados no site do fabricante.
q1source.zip
Doom

Quem não se lembra do Doom? Wolfestein melhorado em todos os aspectos: os mapas possuem a possibilidade de ter paredes não ortogonais (como acontecia no Wolfestein), o chão pode ter inclinação, texturas no teto e no chão, efeitos de luz melhorados (com alguns truques na paleta de cores), etc.
Muito revolucionário para a época. Entretanto o código fonte original lançado (disponível para download abaixo) possui apenas suporte a Linux e sem som. Com o tempo foram criados novos “ports” e essas limitações foram corrigidas mas vale como aprendizado.
doomsrc.zip
Wolfestein 3D

Um dos primeiros jogos 3d da id Software, inovou ao utilizar uma técnica conhecida como “ray-casting” gerando imagens pseudo-tridimensionais e texturizadas com o hardware da época (286-4mb ram). A engine possui uma arquitetura de 16 bits e foi compilada com o Borland C 3.0
wolfsrc.zip
Possui algum código interessante? Quer ve-lo publicado aqui? Sabe de algum jogo comercial que teve sua fonte lançada recentemente? Não deixe de enviar o seu recado.
Valeu, até a próxima.
February 27th, 2008
Aproveitando a “folga”, segue mais dois jogos 3d desenvolvidos com a biblioteca Allegro:

Rays: um pequeno jogo de labirinto com uma engine Ray Casting. Possui duas fases. Algo no estilo: “ache a saida do labirinto”. Acompanha código fonte. Baixe agora

Y E T A N O T H E R S H O O T E R: jogo estilo galaga em 3d. Bacana. Acompanha código fonte. Baixe agora
Até.
October 8th, 2007