Espaço para divulgação de trabalhos e ideias criados durante o curso de Jogos e Entretenimento Digital (Jogos Digitais) - UNISINOS.

quinta-feira, 11 de fevereiro de 2010

Xadrez para Insanos

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.

0 comentários:

Postar um comentário