Ferramentas utilizadas

Linguagens de programação

O código do jogo foi programado na linguagem C. Para gerar código executável para o processador do Gameboy Advance recompilamos o GCC e utilizamos um linkscript especial, que reorganiza o código compilado em posições de memória específicas definidas por um cabeçalho, customizado para as nossas necessidades.

No desenvolvimento de ferramentas auxiliares utilizamos C, Java e Perl.

Make

Fizemos um Makefile que aceita um parâmetro que define se a versão compilada será a de testes ou a final. Essa opção basicamente habilita macros de C que definem quais trechos de código serão compilados. Isso foi necessário pois, no modo de testes, usamos algumas funções que só funcionam no emulador, permitindo escrever na saída padrão. Além disso, alguns valores eram usados apenas na versão de testes para maior comodidade; por exemplo, uma unidade poder se mover 20 casas num único turno, e apenas 2 casas na versão final.

Controle de versões

Para fazer o controle de versões do código utilizamos o Subversion, ferramenta alternativa ao tradicional CVS. Junto com a distribuição adequada de tarefas, o Subversion permitiu que reduzíssemos o número de problemas de conflito entre versões quando trabalhávamos concorrentemente.

Eclipse

Para desenvolver as ferramentas em Java utilizamos o Eclipse, um IDE poderoso e amplamente utilizado atualmente. Consideramos seu uso também na implementação do jogo em si, entretanto o plugin para a linguagem C não estava maduro o suficiente para os nossos fins.

Krawall Free SDK

Krawall é uma biblioteca de aúdio feita especificamente para o Gameboy Advance. Usamos sua versão gratuita, que gerencia efeitos sonoros e música no formato s3m. Decidimos não desenvolver nossa própria ferramenta de áudio pois nenhum de nós possui conhecimentos de Computação Musical, logo tal tarefa consumiria um tempo considerável de desenvolvimento. Hoje, com o projeto concluído, acreditamos que essa foi uma decisão correta.

Conversor de imagens

Utilizamos o programa de linha de comando gfx2gba para converter imagens no formato pcx para código C. Esse programa leva em conta características de imagens no GBA, tais como número de cores, dimensões, paletas, etc.

Ferramentas de Teste

Testar o jogo no console a cada modificação seria algo inviável. Dessa forma, utilizamos um emulador de Gameboy Advance chamado VisualBoyAdvance. Apesar de emular as condições de hardware do GBA, tempos de execução reais e certos detalhes gráficos só podiam ser verificados no próprio hardware. Nesse caso, utilizamos um cartucho regravável para executar o jogo no próprio Gameboy.