descadastro
site NCE
 
 
Jogos Eletrônicos
 
artigos publicados

Desenvolvimento de Jogos

 

Pedro Demasi
Doutorando do IM-NCE/UFRJ
Membro do Grupo de Desenvolvimento de Jogos Inteligentes, NCE/UFRJ
Membro da equipe de desenvolvimento do jogo Alien Revolt, M1nd Corporation

     
 

1- Introdução

Não faz muito tempo que o desenvolvimento de jogos começou a ganhar algum destaque aqui no Brasi. Até final da década de 90, pouco se fazia ou mesmo se comentava a respeito, e uma indústria nacional nessa área parecia algo tão distante quanto bizarro. Quase que simultaneamente, porém, esse ramo começou a despertar interesse tanto na academia quanto no mercado, e hoje em dia temos um protótipo do que seria uma indústria brasileira de jogos eletrônicos.

No ano de 2000, iniciou-se uma empreitada no congresso da SBC (Sociedade Brasileira de Computação) em Curitiba, o embrião do que viria a ser o Workshop Brasileiro de Jogos e Entretenimento Digital (WJogos), hoje um evento já bem estabelecido no calendário de congressos de computação no país, embora ainda não devidamente reconhecido por seu valor. Já nessa época, a Continuum, empresa paranaense formada por originalmente por estudantes da UFPR, trabalhava no desenvolvimento do Outlive, jogo tido como marco da indústria brasileira de jogos, e que atingiu relativo sucesso no mercado externo.

Não aconteceu exatamente um "boom" no interesse pela área no Brasil, mas certamente esse cresceu bastante a partir dessa época. Muito se debateu e se debate até hoje, e há muito mais erros do que acertos principalmente devido à total falta de preparo daqueles que resolvem se lançar por esse caminho. Um dos muitos mitos que cercam o desenvolvimento de jogos é o de não é necessária formação teórica para tal, basta saber programar e ter designers competentes. Pura ingenuidade. Os principais desenvolvedores do mundo concordam que é fundamental uma formação forte, de preferência em Ciência da Computação ou Engenharia de Computação, e que um mestrado já não é mais apenas uma opção mas, sim, quase que uma obrigação para aquele que deseja se tornar um profissional competente.

O estudo é fundamental em qualquer área profissional que se siga, mas num mercado extremamente competitivo em que bilhões de dólares são investidos e que contempla um público extremamente exigente, não há espaços mais para amadorismo, para entusiastas sem a formação adequada. Desenvolver jogos lida com quase todas as áreas da computação, e não apenas programação e computação gráfica, como muitos imaginam, como veremos a seguir.


2- Formação de um bom Desenvolvedor

As várias áreas estudadas em computação têm grande aplicação no desenvolvimento de jogos, e dominá-las é muito mais do que puramente uma questão de orgulho pessoal, é praticamente uma necessidade de sobrevivência na área! Analisemos algumas delas e suas aplicações:

* Computação Gráfica: talvez a área mais óbvia de todas, já que é fundamental para a apresentação do jogo e a interface com o jogador.
* Inteligência Artificial: fundamental para o controle das diversas entidades do mundo em que o jogador está inserido, na interação entre elas e para a percepção de realidade.
* Compiladores: muitos jogos lidam com linguagens de scripts para personalização do mundo de jogo, bem como para extensão e "mods". Muitas vezes tal possibilidade pode garantir o sucesso de um jogo.
* Grafos e Algoritmos: é comum programadores entusiastas não saberem lidar com algoritmos clássicos, porém fundamentais, desde a mais simples busca em largura até a implementação de um algoritmo de menor caminho de Dijkstra usando uma heap. Conhecer e dominar essa área pode ser a diferença entre um jogo lento e mal-feito para um otimizado e
bem mais adequado.
* Arquitetura: não apenas em otimizações de baixo nível, mas principalmente na programção específica para determinadas plataformas, o conhecimento de arquitetura de computadores e de linguagens de baixo nível pode ser um requisito obrigatório. Não acredita? Olhe na página
de empregos da Nintendo!
* Redes: hoje em dia todo jogo que se preze deve ter a opção "multiplayer" para jogos pela Internet. Saber lidar com latência e limitações de banda é fundamental. Conhecer bem determinados algoritmos e protocolos pode tornar um jogo viável para multiplayer.
* Programação: sim, é fundamental dominar a programação de computadores, e não apenas uma linguagem. Ao decorrer do desenvolvimento de um jogo, pode-se deparar com várias linguagens e APIs diferentes. Conhecer todas é impossível, mas saber programar bem independe de linguagem, e aquele que tem tal domínio possui uma vantagem inestimável sobre os "programadores de mão cheia" que tanto existem por aí, mas pouco sabem de programação realmente. Saber usar e manipular estruturas de dados complexas, saber como implementar algoritmos e ter a noção clara de como a teoria de complexidade se
aplica na prática é uma necessidade.
* Cálculo e Física: se você é daqueles que sempre reclama de ter de estudar física e cálculo na computação, desiste de desenvolver jogos, a não ser que você queira programar jogo da velha pro resto da vida. Sistemas de partículas e outros simuladores físicos, que contam com o
apoio teórico de cálculo, são necessários para se criar um ambiente mais realista possível, e uma experiência realmente cativante para o jogador. Mesmo jogos simples como o velho Mario Bros necessitam de tais esquemas, afinal, mesmo derrotando o temível Koopa, Mario não
consegue se livrar dos efeitos da gravidade quando pula. ;)

Poderíamos nos alongar em outras áreas, mas já foi possível dar uma amostra do que como é fundamental uma formação forte, teórica e prática, para se aventurar nessa área de desenvolvimento de jogos.


3- Áreas de Desenvolvimento de Jogos

Existem diversos segmentos diferentes de programação de jogos, cada qual com suas características próprias, vantagens e desvantagens. Qual deles seguir muitas vezes não depende apenas de vontade, mas, sim, de oportunidade.

* Consoles: Já tem quase 10 anos que se previu a morte dos consoles, principalmente a partir do momento em que os jogos de computador passaram a ser mais complexos e avançados. Depois de mais uma profecia furada, os gurus de plantão argumentam que os consoles só sobrevivem porque atingem um público mais infantil, o que também é conversa fiada, uma vez que a Sony está prester a lançar seu Playstation 3, sabidamente para o público mais velho. A Nintendo ataca com o Revolution (nome ainda provisório) a ser lançado em 2006, enquanto que a Microsoft desfila com seu novíssimo XBox 360 nas feiras de entretenimento pelo mundo. A entrada da gigante do software nesse segmento, inclusive, prova que tal filão está longe de secar.
Vantagens: desenvolve-se para uma plataforma fechada, com todo o apoio da equipe criadora da arquitetura, não tendo os problemas de compatibilidade que acontecem com os PCs. Desvantagens: é necessário um investimento muito grande, pois as licenças pagas para desenvolvimento não são baratas.
* PCs: esse é outro mercado bem estabelecido, e muitas desenvolvedoras lançam versões de seus jogos originalmente para consoles para os computadores. Vantagens: abrangência muito grande, pois hoje em dia o computador é um componente quase que obrigatório nas casas. Desvantagens: muita pirataria e incompatibilidade entre máquinas e sistemas.
* Dispositivos Móveis: essa é a menina dos olhos do desenvolvimento de jogos no Brasil, principalmente para celulares. Tal desenvolvimento não requer grandes investimentos e tem-se a possibilidade de lutar de igual para igual com grandes desenvolvedoras pelo mundo. É um mercado em expansão, mas já se acredita que não vai tardar muito e a bolha vai estourar, e então poucos continuarão no mercado. Vantagens: pouco investimento inicial, pouca pirataria (normalmente os jogos são voltados para o uso de serviços da operadora de telefonia).
Desvantagens: plataformas muito limitadas.


4- Pesquisa em Jogos

Por que usar jogos para pesquisa científica? Há muitos motivos, como o apelo da área, mas há também a aplicação e integração de várias áreas da computação (como já foi visto aqui) e a possibilidade imensa de aplicação e teste de inovações tecnológicas e científicas. Afinal, que
teste melhor (e mais intenso) um algoritmo de Inteligência Artificial pode ter do que jogar contra a máquina mais inteligente que existe (o homem)?

A possibilidade de testes exaustivos e bem difundidos (ainda mais hoje em dia, com a popularidade da Internet) torna o uso de jogos eletrônicos como forma de pesquisa acadêmica bem atrativa. O uso dos mesmos em atividades de aprendizado já vem obtendo a devida atenção, e aqui no NCE já temos dissertações defendidas e pequisas avançadas nesse sentido. Além disso tudo, a possibilidade de integração de diversas áreas é algo que também chama a atenção.

Há, é claro, algumas desvantagens. Uma delas, talvez a mais clara, seja a dificuldade de aceitação. É difícil pedir verba de pesquisa para um jogo. E se for pedido financiamento para compra de um video-game, ou mesmo para um placa gráfica com aceleração 3D? Será que
alguma agência de fomento levaria tal pedido a sério? Bem, verdade seja dita, tal preconceito vem sendo quebrado aos poucos, a resistência à área vem diminuindo de maneira promissora.

Outra desvantagem é a questão da qualidade do jogo. Com as super-produções a que os jogadores estão acostumados, pode ser difícil conseguir muitos voluntários para ajudar a testar um jogo bem mais simples, mas que tenha alguma característica científica (ou mesmo um
algoritmo de Inteligência Artificial novo) que precise ser testado.

Jogando tudo na balança, contudo, a pesquisa em jogos é bastante vantajosa e vem ganhando terreno com velocidade, o que é bastante promissor.


5- Conclusões

A área de desenvolvimento de jogos ainda engatinha no Brasil, e há muito oba-oba por parte da imprensa e dos próprios desenvolvedores. Não há qualquer resultado realmente significativo que justifique qualquer projeção animadora quanto ao futuro, mas ainda temos de passar por um momento de retração (esperar "a poeira baixar") para ter uma real idéia do que temos capacidade de fazer aqui. A falta de recursos maiores para investismentos ainda é um grande problema, e a quantidade de "entusiastas" despreparados (no sentido da base de formação como foi visto aqui) também atrapalha muito. Mas tais estágios são necessários, e esperamos que em breve tenhamos uma indústria amadurecida, bem como uma respeito adequado na academia com relação à importância do desenvolvimento de jogos.

 
 
         
 
    página principal
 
Núcleo de Computação Eletrônica
Universidade Federal do Rio de Janeiro
Prédio do Centro de Ciências Matemáticas e da Natureza Bloco C
Caixa Postal: 2324 - CEP: 20.010-974
Cidade Universitária - Ilha do Fundão, Rio de Janeiro - RJ Tel: 2598-3333