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

terça-feira, 6 de agosto de 2013

Projeto final Jogos Digitais (2012)

EOnM - "Entertainment On Mobile" - é uma plataforma para Narrativas Geolocalizadas, criada como trabalho de conclusão para o curso de Jogos Digitais da UNISINOS, em 2012, sob a orientação do professor Tiago R. Lopes.
Desenvolvida para dispositivos móveis que utilizem o sistema operacional Android.
Seu funcionamento consiste em carregar e executar produtos, narrativas geolocalizadas desenvolvidas por terceiros, que devem exportar seu conteúdo audiovisual para que isso seja possível.
Como primeiro case foi adaptada à plataforma uma narrativa interativa web chamada O Décimo Segredo (descrita na página Projetos), criada por alunos do curso de Comunicação Digital da UNISINOS.
Esta plataforma foi projetada para oferecer flexibilidade suficiente para que diferentes tipos de produtos de entretenimento utilizem-na.
Para criar um produto, o produtor em questão deve descrever o conteúdo utilizado e definir as regras de execução em um arquivo XML, que será interpretado pela plataforma, e disponibilizar o conteúdo audiovisual de acordo com estas regras (dependendo, por exemplo, se ele definiu que o acesso aos vídeos será pela internet ou off-line).

Site do projeto neste link.
Apresentação da banca do TC: - link -
Monografia do TC: - link -

Informações técnicas:
Projetada para receber com maior facilidade customizações como adição ou remoção de APIs;
Entre as tecnologias fundamentais da plataforma está a utilização de geolocalização com Google Maps API;
Versão mínima do Android: 2.3;
Descrição de um produto é realizada em um arquivo XML que será interpretado pela plataforma.

Modelo da plataforma:

Modelo da plataforma EOnM.


Flexibilidade da plataforma (versões possiveis):

sexta-feira, 21 de janeiro de 2011

Arca de Noé - o jogo

Arca de Noé – o jogo, é um jogo experimental educativo-ambiental,  que propõe jogabilidade inovadora utilizando realidade aumentada. Os jogadores são responsáveis pela conservação dos animais presentes no jogo que simula o funcionamento de um criadouro conservacionista homônimo.
Desenvolvido para aplicação em sala de aula, por grupos de jogadores, requer realização de várias ações simultaneamente. Um grupo é composto por até cinco jogadores com marcadores (marcadores de papel que controlam os personagens em cena), um gestor (responsável pela interação direta com o jogo pelo computador), e opcionalmente gerentes (jogadores que não controlam o jogo diretamente, mas coordenam as ações dos demais jogadores).
Para mais detalhes sobre o projeto do jogo, consulte o tutorial e design doc.
Esta é uma versão de testes do jogo.
O educador aplicador do jogo pode configurá-lo, definindo atributos de jogo como quais animais estarão presentes (podendo criar novos ou alterar os atuais). A configuração é feita por arquivos LUA.

Iniciativa: o projeto é uma iniciativa de Monica Frozza, que sugeriu a criação de um jogo como parte de seu TCC de Biologia (TCC aprovado plenamente). O jogo baseia-se na representação de criadouro conservacionista homônimo, também com a intenção de motivar os jogadores (estudantes do ensino fundamental, de 5ª a 8ª séries) a conhecerem o local e o trabalho que é realizado lá.

Ferramentas e bibliotecas:
Programação:
    Visual Studio 2008.
Arte 2D e 3D:
    Blender 2.49b (modelagem, animação e texturização).
    Gimp 2.6 (texturas de modelos 3D e interface gráfica).
Bibliotecas:
    OSGART (OSG + ARToolkit).

Grupo:
- Deividson Müller Goulart:
    Programador;
    Game Designer líder;
    Artista 2D (GUI e terreno);
    Documentarista.
- Mônica Frozza:
    Responsável conteúdo de Biologia;
    Game Designer.
- Eduardo Longo:
    Controle do projeto: controle de metas, milestones e cronograma;
    Organizador da ligação entre programador e artistas.
    Artista 3D auxiliar;
    Game Designer;
    Documentarista;
- Pablo Garcia:
    Artista líder.
- Lucas Munhoz:
    Artista.
- Prof. Jackson Müller:
    Orientador geral conteúdo de Biologia.


Video tutorial:

segunda-feira, 12 de julho de 2010

Alien Conquer - Nintendo DS

Demo de jogo para Nintendo DS implementado para a disciplina de Programação para Consoles - UNISINOS, 2010/1 -, com o professor Marcio Garcia Martins.

Grupo:
Deividson M. Goulart: implementação do gameplay e estrutura geral do jogo;
Otto Lopes: criação do projeto SVN, implementou o input (juntamente com Taiuã), interface gráfica (menu e hud) e implementou a estrutura para música e efeitos sonoros;
Taiuã Pires: ideia original e estrutura inicial.
Este jogo foi originalmente criado pelo Taiuã para PC, e para este trabalho foi portado pra NDS.

Arte de Leonardo Silva Marques e Taiuã Pires.

Utilizados:
  • Visual Studio 2008;
  • TortoiseSVN;
  • API PAlib;
  • Emulador DeSmuME;



Video (somente video sem áudio - jogo possui música e efeitos sonoros):

Terreno e SkyDome

Trabalho implementado para a disciplina de Técnicas Avançadas de Computação Gráfica (UNISINOS), de 2010/1, com a professora Rossana Queiroz.
Heightmap com LOD através de ROAM (implementado com Binary Triangle Tree) e SkyDome.

O heightmap é criado a partir de imagem.
Para a representação de terrenos, foi utilizada a técnica de Heightmap, ou mapa de alturas, uma estrutura de dados (matriz representando a largura e comprimento do terreno - XZ) que armazena a altura (Y) do terreno em cada coordenada do plano XZ. 
    O algoritmo base é de autoria de Bryan Turner, que apresenta uma forma de se renderizar grandes terrenos utilizando a técnica de LOD (Level of Detail), técnica que aumenta o nível de detalhe da malha de vértices em pontos próximos ao observador, e diminui em pontos distantes, através de ROAM (Real-Time Optimally Adapting Meshes), técnica para manipular a malha de vértices do terreno em tempo real, que por sua vez é possível utilizando-se BTT (Binary Triangle Tree), árvore binária de triângulos que possui vários níveis de profundidade, e durante a renderização, a profundidade que será executada varia da distância do ponto em questão ao observador e o limite de exploração árvore adentro a cada frame. A malha de vértices não é alterada, o processo de Tesselation, efetuado a cada frame antes da renderização, apenas monta os polígonos com vértices selecionados para formar uma malha aproximada à original, diminuindo drasticamente o número de vértices utilizados e polígonos desenhados.
A textura é um ponto que precisa ser melhorado, pois tive que utilizar uma textura para todo o terreno, com resolução limitada (máximo de 4096x4096).
Resultados: terrenos de 1024x1024 ou maiores, consegue-se 60fps com tranquilidade (isso com um Athlon 64 X2 Dual Core, com 2.6GHz por core).

Utilizado:
  • OpenGL;
  • Glut;
  • SDL_Image (inicialmente DevIL, mas migrei pra SDL pela documentação e funcionalidades);
  • Lua.

Video:

domingo, 11 de julho de 2010

Billboards


Exercício implementado para a disciplina de Técnicas Avançadas de Computação Gráfica, de 2010/1, com a professora Rossana Queiroz.
Imagens da professora e tbm de Mr. Bubble.

Utilizado:
  • OpenGL;
  • Glut;
  • SDL_Image;
  • Lua.


Video:

L-System

Exercicio implementado para a disciplina de Técnicas Avançadas de Computação Gráfica, com a professora Rossana Queiroz. Simples visualizador de L-System, com leitor implementado pela professora.

2010/1.

Utilizado:
  • OpenGL;
  • Glut;
  • Lua.

Video:

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.