Академический Документы
Профессиональный Документы
Культура Документы
ISSN 1984-0993
1 Introdução
Há um crescente interesse pelo desenvolvimento de jogos eletrônicos, tanto no mercado
quanto no meio acadêmico.
A indústria de jogos eletrônicos tem obtido lucros cada vez maiores nos últimos
anos, atingindo cerca de US$ 9,5 bilhões somente nos Estados Unidos no ano de 2007
[WIKIPEDIA 2009]. Estes jogos são desenvolvidos para diversas plataformas, entre
elas aparelhos de videogame domésticos, dispositivos móveis, aparelhos celulares e
computadores pessoais.
Além dos jogos comerciais, vendidos em lojas ou por serviços de venda digital,
existem outras modalidades como advergames, voltados à publicidade de marcas e
produtos; business games, desenvolvidos para o treinamento e aprendizado; e casual
games, jogos menores, mais simples e com uma menor curva de aprendizado.
No meio acadêmico, os jogos eletrônicos são utilizados como ferramentas
educativas e o processo de desenvolvimento pode ser aplicado em diversas disciplinas
de cursos de Ciência da Computação e similares. O desenvolvimento de jogos pode ser
utilizado para exemplificar conceitos de engenharia de software, matemática, física,
computação gráfica, programação, inteligência artificial, comunicação em redes, entre
outros.
Nos últimos anos houve um considerável aumento na quantidade de cursos
voltados ao desenvolvimento de jogos eletrônicos no Brasil, distribuídos entre cursos de
graduação, pós-graduação, cursos livres, de extensão e especialização [ABRAGAMES
2008]. Existem também eventos, como o SBGames [SBGAMES 2008], voltados à
promoção da área no meio acadêmico.
O desenvolvimento de jogos não é, no entanto, uma tarefa trivial. Há uma alta
complexidade relacionada à elaboração de conteúdo e estilo do jogo, criação de enredos,
escolha e desenvolvimento de tecnologias, criação de interfaces etc. Na área de
programação, um desenvolvedor iniciante pode encontrar dificuldades em escrever
códigos para manipulação de recursos, testes de colisão, gerenciamento de memória e
2
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
diversas outras tarefas comuns ao desenvolvimento de jogos. E mesmo um
programador experiente está sujeito a erros de codificação, que podem ser difíceis e
custosos de se identificar e corrigir.
Este trabalho tem como objetivo apresentar uma ferramenta que possibilite o
desenvolvimento de jogos eletrônicos utilizando-se de um ambiente gráfico, onde o
usuário possa definir a lógica do jogo através de componentes visuais, sem necessidade
de codificação. A ferramenta, chamada Visual Game, propicia um maior nível de
abstração no desenvolvimento, ainda que reduza a liberdade do desenvolvedor, que
passa a estar limitado pelos recursos oferecidos pelo ambiente.
2 Ambiente Visual
O Visual Game é um ambiente que tem por finalidade simplificar o desenvolvimento de
jogos, tornando o processo mais acessível através da utilização de componentes visuais
e da geração de código-fonte automática. Desta forma, o usuário tem que se preocupar
somente com a lógica do jogo, deixando de lado questões relacionadas à sintaxe da
linguagem de programação e ao gerenciamento de recursos e memória.
Este ambiente tem como público alvo:
• Professores - que podem utilizá-lo como ferramenta de auxílio no ensino de
desenvolvimento de jogos e lógica de programação;
• Estudantes - que podem direcionar o estudo para questões específicas e deixar a
codificação de lado momentaneamente;
• Desenvolvedores de um modo geral - que podem utilizar o ambiente para
desenvolver jogos completos, se beneficiando da maior abstração, ou protótipos
que podem ser finalizados posteriormente, graças à possibilidade de exportar o
código-fonte gerado automaticamente pela ferramenta.
O desenvolvimento do Visual Game foi feito com a linguagem de programação
C# e o ambiente Microsoft.Net [WIHLIDAL 2006], em conjunto com as bibliotecas
Allegro (para a parte gráfica) e IrrKlang (para os efeitos sonoros).
O ambiente visual é a parte central do projeto. Nele são construídos os jogos que
posteriormente têm seu código-fonte gerado automaticamente por um componente do
ambiente. Este código é gerado de acordo com uma estrutura definida no Visual Game
Framework, um framework voltado para o desenvolvimento de jogos em geral, que se
utiliza do Allegro e do IrrKlang para desenhar os gráficos do jogo, tocar efeitos sonoros
e tratar entradas do usuário, através do mouse e teclado.
O código-fonte do jogo é compilado através do MSBuild, um utilitário que
facilita a compilação de projetos na plataforma .Net e acompanha o ambiente de
execução desta plataforma, de forma que um software adicional para a compilação não é
necessário. Uma vez que o código-fonte é gerado no ambiente, ele é repassado ao
MSBuild que chama o compilador equivalente (neste caso o C# Compiler) e o arquivo
executável é gerado, conforme a Figura 1, que mostra a integração dos componentes do
sistema.
3
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
2.1 Allegro.Net
O Allegro.Net é uma versão da biblioteca gráfica Allegro [ALLEGRO 2009]
desenvolvida como parte deste trabalho para possibilitar que esta biblioteca possa ser
empregada no ambiente .Net. O desenvolvimento foi feito utilizando um serviço do
.Net, o Platform Invocation Service, que permite ao código gerenciado escrito em uma
linguagem como o C#, por exemplo, acessar o código nativo de uma biblioteca escrita
em C, como é o caso do Allegro.
4
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
2.3 Visual Game
O Visual Game tem como objetivo possibilitar o desenvolvimento de jogos de maneira
visual, através de uma interface gráfica onde todas as configurações do jogo podem ser
feitas de forma simples e clara.
Com este ambiente, o desenvolvedor pode definir diversas configurações do
jogo, como as dimensões da tela, título da janela, modo de execução em tela cheia, entre
outros. É possível, ainda, carregar e configurar recursos (imagens, efeitos sonoros e
fontes), criar entidades (objetos) e seus eventos (de teclado, mouse e colisão) e ações
(animar o objeto, movê-lo, criar ou destruir instâncias, tocar efeitos sonoros etc.),
montar palcos (formas de dividir o jogo em fases), gerar o código-fonte criado e utilizar
um compilador para criar um arquivo executável.
A Figura 2 mostra a tela de carregamento de imagens, onde é possível selecionar
uma imagem e configurar a quantidade de quadros em que ela se subdivide. A Figura 3
exemplifica a atribuição de um evento de teclado e uma ação de movimento a uma
entidade. Por fim, a Figura 4 exibe a tela de criação de palcos, onde as entidades podem
ser adicionadas ao jogo.
5
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
6
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
Estas classes são armazenadas em um formato XML e posteriormente são
traduzidas em código-fonte na linguagem C# de acordo com um conjunto de regras
definido pelo gerador de código. Assim, o gerador parte de um código estruturado
(Quadro 1) e gera o trecho equivalente em uma linguagem de programação (Quadro 2).
3 Conclusão
A utilização de ferramentas de desenvolvimento rápido no desenvolvimento de jogos
eletrônicos é uma alternativa viável e torna o processo mais acessível para
desenvolvedores iniciantes e estudantes, ao mesmo tempo em que facilita o trabalho de
profissionais da área, uma vez que a geração automática de código-fonte elimina a
possibilidade de erros de codificação.
A ferramenta proposta neste trabalho permite a criação de jogos completos,
ainda que haja uma perda de liberdade e o desenvolvedor fique limitado às opções
oferecidas pelo ambiente para a criação de seus jogos. Desta forma, é importante que o
ambiente ofereça uma ampla variedade de ferramentas a serem utilizadas durante o
desenvolvimento, de forma a reduzir estas limitações.
O ambiente desenvolvido pode ser aprimorado de várias formas em trabalhos
futuros. Seguem algumas propostas: término das funções propostas e acréscimo
de novas funções dando mais liberdade ao desenvolvedor; possibilidade de exportação e
importação de entidades para aumentar a reutilização; possibilidade de criar relações de
herança entre as entidades criadas nos jogos; opção de criação de ações por parte dos
usuários, a fim de eliminar as restrições do ambiente; e possibilidade de utilização de
scripts em uma linguagem de programação.
Referências Bibliográficas
ABRAGAMES. Cursos de Games no Brasil. [S.L.], 2008. Disponível em:
http://www.abragames.org/docs/cursos_jogos.pdf. Acesso em 29 de janeiro de 2009.
7
Revista TECCEN – Edição Especial – volume 2 – número 1 - março de 2009 –
ISSN 1984-0993
ALLEGRO. ALLEGRO – A Game Programming Library. [S.L.], 2009. Disponível em:
http://alleg.sourceforge.net/. Acesso em 29 de janeiro de 2009.
SBGAMES. SBGames. [S.L.], 2008. Disponível em: http://www.sbc.org.br/sbgames.
Acesso em 29 de janeiro de 2009.
WIHLIDAL, Graham. Game Engine Toolset Development. 1. ed. Boston: Thomson
Course Technology, 2006.
WIKIPEDIA. Video Game Industry. [S.L.], 2009. Disponível em:
http://en.wikipedia.org/wiki/Video_game_industry. Acesso em 29 de janeiro de
2009.