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.