quinta-feira, 4 de novembro de 2010

Desenvolvimento de um jogo de futebol

Hoje falarei um pouco sobre o jogo Turma COC Soccer, que desenvolvi juntamente com a equipe Turma COC para aproveitar o evento do ano, a Copa do Mundo de 2010.

Este jogo foi um desafio e tanto, principalmente no que se refere a IA (inteligência artificial), pois as outras tarefas fazem parte do desenvolvimento de quase todos os tipos de jogos como por exemplo: controle de tempo, menus, telas de configurações, sincronização de áudio e animação. Mas a IA nesse jogo foi o que mais deu trabalho, pois tive que estudar varias técnicas de inteligência artificial para que pudesse adotar a que melhor se encaixasse num jogo de futebol.

O resultado foi que de inicio me deparei com algumas técnicas que tinha visto na faculdade, e que sinceramente, tive que realmente aprender "novamente", e entre elas estão: Redes Neurais e Algoritmos Genéticos.

Achei muito interessante a técnica de Redes Neurais pois ela possibilitaria que o computador “aprendesse” com o jogador e a partir de um certo tempo ele conseguiria neutralizar jogadas repetidas ou fazer ataques diferentes considerando a forma com que o jogador costuma se defender. Eu tinha certeza que essa era a técnica ideal, talvez pudesse ser mesmo, mas eu tinha outro probleminha, pois essa técnica requer muito processamento e isso ia comprometer muito a performance do jogo, principalmente por ser feito em flash/actionscript para se jogar no navegador onde cada pessoa que acessa o jogo pode der uma maquina mais modesta em termos de hardware.

Então depois de dar uma estudada em Algoritmos Genéticos e não gostar muito por não ver aplicação em jogos de futebol, pelo menos dentro do jogo em si, pois poderia ser aplicado para gerar variedades de jogadores ou para que eles evoluíssem conforme experiência em jogos etc. Mas não tínhamos tanta pretensão assim, nós queríamos fazer um jogo simples principalmente voltado para o publico infantil, nada parecido com FIFA ou Winning Eleven.

Finite State Mechines (Máquina de estados finitos) além de ser a técnica mais utilizada em jogos de todos os tipos, foi a solução ideal para o meu problema, pois com essa ela foi possível obter por parte NPCs (Non-player character) ou traduzindo “personagens não jogáveis”, um comportamento satisfatório que resultou na inteligência artificial definitiva do jogo. Só para deixar claro, essa técnica foi ideal no caso desse jogo especificamente, e não que ela deva obrigatoriamente ser aplicada a todo e qualquer jogo de futebol.

Nenhum comentário: