Desenvolvido para as seguintes disciplinas, todas do semestre 2009/2:
- Projeto de Jogos: Multijogador, com o professor Mauricio B. Gehling.
- Inteligência Artificial, com o professor João R. Bittencourt. Para esta disciplina foi desenvolvido o módulo de treinamento de unidades, utilizando Algoritmos Genéticos.
[Projeto ainda ativo.Costumo deixar o meu ultimo trabalho semestral ativo por mais um semestre, caso haja alguma oportunidade para continuá-lo.]
Características:
Linguagem C++;
IDE Visual Studio;
Plataforma PC / Windows;
Gráficos 3D;
Versão atual: 0.38 - alpha;
Ferramentas:
Blender;
GIMP;
Star UML.
Bibliotecas:
Biblioteca gráfica OSG (Open Scene Graph);
Lua;
SDL;
SDL Threads;
SDL Net.
Descrição resumida:
Xadrez para Insanos reinventa um dos jogos mais tradicionais da história. Com uma visão moderna e pouco conservadora, é mais uma versão para o jogo, que tenta transformar um simples tabuleiro em um novo universo, cheio de novas possibilidades, ação e estratégia mais dinâmica (em turnos ou tempo real). Este jogo será multiplayer, para PC.
É uma derivação do xadrez clássico. Sua base conceitual é a mesma, a representação do confronto entre exércitos. Cada jogador controla um time de peças de mesma cor (ou qualquer outro elemento que possa identificá-los como pertencentes a um mesmo time). As principais diferenças ao xadrez convencional são a influência do terreno e clima, a possibilidade de se mover todas as peças a cada jogada, elementos do jogo personalizáveis, e a presença do fator sorte. O objetivo principal é o mate (xeque-mate no Rei).
Uma peça tem atributos como postura - que pode ser agressivo, defensivo, ou normal - e valores para ataque, defesa, energia, locomoção, entre outros.
São dois modos-chave de jogo: Turnos e RTS. Em Turnos, o jogo está mais próximo do xadrez convencional (incluindo um sub-modo onde há o próprio), enquanto o modo RTS assume o gênero de estratégia em tempo real. A partir destes dois modos fundamentais, futuramente poderá haver uma série de sub-modos, cada um propondo uma experiência específica - o projeto do motor prevê esta flexibilidade para futuras extensões -.
Módulo de aprendizado de máquinas utilizando Algoritmos Genéticos:
A técnica de aprendizado de máquinas foi implementada especificamente para a etapa de desenvolvimento do jogo. O objetivo é encontrar configurações dos atributos de uma peça ideais para cada tipo de peça. Neste modo de execução, o aplicativo é executado em tempo simulado.
Algoritmos Genéticos:
Conceito pertencente à área de Aprendizagem de Máquinas. Técnicas baseadas neste conceito seguem os princípios da genética e evolução por seleção natural apresentada na Teoria da Evolução das Espécies, por Charles Darwin. Nesta lógica, a evolução de uma população se dá a partir da seleção dos indivíduos mais aptos para reproduzirem, gerando novos indivíduos, que herdam as características -as características de um indivíduo são representadas em um cromossomo, que possui genes para cada característica - de seus geradores, numa combinação genética que gera um ser de características próprias. Ao longo das gerações da população, os melhores indivíduos vão sendo selecionados, reproduzindo-se, gerando novos indivíduos, o que resulta em uma cadeia evolutiva.
O objetivo de sua implementação é se obter peças que tenham atributos balanceados entre si, e que representem o tipo específico de peça de acordo com o esperado pelos desenvolvedores.
A população possui diferentes tipos de indivíduos (tipos de peças), que se relacionam (combatem entre si), mas não evoluem juntamente. O processo de evolução acontece individualmente para cada tipo de peça.
Funcionamento:
O jogador controla seu time de peças com o mouse.
Versão atual:
- Nesta versão alpha, foram priorizados o motor de jogo e o modo RTS (ao contrário do que os documentos iniciais descrevem, sendo que este modo é mais complexo).
- Multiplayer também presente.
- Módulo de aprendizado de máquinas utilizando Algoritmos Genéticos. Com ambiente virtual próprio para a simulação.
Próximas melhorias:
Resumidamente as próximas melhorias previstas estão focadas na evolução do motor de jogo, retorno visual do jogo (para a análise do gameplay atual), multiplayer, e ainda no modo RTS.
- Motor de jogo:
- Colisões entre peças (da mesma equipe, tratamento completo);
- Física;
- Som;
- Objetos em cena, e sua interação com peças;
- ...
- Interface: out e in-game;
- IA melhorada;
- Implementação de alguns detalhes do Módulo de aprendizado de máquinas, e testes;
- Cenário;
- Controle das peças pelo mouse: seleção múltipla, e formações táticas de peças em grupo;
- Evolução do modo Multiplayer;
- ...
Presente na documentação:
- Concept Doc;
- Proposal Doc;
- Design Doc;
- Arte Conceitual;
- Cronograma;
- Diagrama de classes resumido;
- Relatório sobre Inteligência Artificial implmentada.
Video com demonstração:
obs.: Houve um problema com o programa de captura de video, e o mouse nao está sendo exibido em sua posição original (na execução do jogo). Para seleção das peças, o mouse deve ser posicionado em algum ponto da peça em questão.