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

Mostrando postagens com marcador trabalhos. Mostrar todas as postagens
Mostrando postagens com marcador trabalhos. Mostrar todas as postagens

12 julho 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:

11 julho 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:

07 fevereiro 2010

Simulador de Formigas

Criado para a disciplina de Animação Computadorizada, 2009/1, com o professor Fernando Marson, como trabalho de avaliação de Grau B (50% do GB).

Características:
Linguagem C++;
IDE Visual Studio;
Plataforma PC / Windows;
Versão atual: 0.3;
Bibliotecas:
  • OpenGL / GLUT.
Principais conceitos abordados, quanto à implementação:
  • Animação Comportamental;
  • Inteligência Artificial;
  • Agentes em Grupo.
Descrição:
Aplicativo que simula o ambiente de um formigueiro.

Há quatro tipos (castas, funções dentro do formigueiro) de formigas. Cada casta têm sua função (comportamentos simplificados na atual versão).
A versão atual apresenta a simulação das principais características presentes na maioria das espécies.

- Castas:
    Cada casta possui uma função específica que atribui à formiga comportamento e características próprias (alterando também características físicas, como forma e o raio de percepção). As descrições apresentam somente o presente na atual versão:
  • Rainha: Formiga procriadora;
  • Obreira (formiga pequena): busca por alimento;
  • Operária (formiga média): carrega alimentos encontrados pelas obreiras e os aloja no formigueiro;
  • Soldado (formiga grande, escura): guarda o formigueiro.
- Metabolismo:
    O metabolismo da formiga influencia a velocidade de suas ações, e a velocidade de consumo de energia/ digestão dos alimentos. Há um padrão para cada casta, que também varia de acordo com o comportamento de cada formiga.

- Comunicação:
    Quando uma formiga entra no raio de percepção de outra, ela se direciona à esta em busca de comunicação. Caso esta segunda formiga aceite a comunicação, há troca de feromônio (substância química liberada pela formiga), que é interpretado por cada formiga como informações. Elas também podem alimentar uma à outra se necessário.
Quando há comunicação, a cor da formiga é alterada, ficando mais clara, com tom azulado. Este processo geralmente é rápido, o que faz com que a cor da formiga “pisque”.

-Alimentação:
    As formigas podem se alimentar no formigueiro, ou com outra formiga, quando estiverem fora do formigueiro.
A formiga muda de cor, quando se alimenta, ficando verde.

- Geração de novas formigas:
    Quando é ativada a reprodução de uma nova formiga, a casta a qual esta pertencerá é aleatória, porém dentro de uma lista de probabilidades, onde:
  • Rainha: 1 única Rainha por formigueiro;
  • Obreira: 50%.
  • Operária: 45%.
  • Soldado: 5%.
- Formigueiro:
    A saída do formigueiro muda de cor dependendo do nível de comida no formigueiro. Vermelho indica nível mínimo, e dourado nível alto. Há capacidade máxima para comida no formigueiro, e também de formigas (não ativada na versão atual).

- Morte:
    Uma formiga morre quando sua energia chega a zero. A energia é decrementada quando, ao digerir, não houver comida em seu organismo. Sua cor é alterada para branco.


Melhorias Futuras:
  • Comportamento das formigas, como mais funções para cada casta;
  • Finalização da estrutura de Feromônio. Orientação das formigas pelo feromônio liberado no ambiente;
  • Possibilidade vários formigueiros;
  • Mais animais no ambiente, com os quais as formigas interagem, como aranhas (para a simulação de ataques);
  • Ambiente virtual mais complexo, com vegetação, e terreno;
  • Otimização avançada, como, por exemplo, detecção de colisão mais eficiente, e visualizador também otimizado;
  • Formigueiro mais complexo;
  • Possibilidade de parametrização do aplicativo pelo usuário;
  • Possibilidade de servir como base de influência para um futuro jogo de estratégia, estilo RTS.
  • ...
Funcionamento:
O formigueiro é gerado em posição aleatória.
O usuário controla a adição de novas formigas e alimentos no cenário.


Video com demonstração:

03 fevereiro 2010

Animador por Script

Criado para a disciplina de Animação Computadorizada -2009/1- professor Fernando Marson.

Características:
Linguagem C++;
IDE Visual Studio;
Plataforma PC / Windows;
Versão atual: 0.4;
Bibliotecas:
    - OpenGL / GLUT;

Descrição:
Este aplicativo executa animações definidas pelo usuário em um arquivo de texto (script). No script, é utilizada uma linguagem pré-definida (linguagem pré-definida pelo professor).

Este trabalho foi pré-definido pelo professor para implementação como trabalho Grau A da disciplina.

Grupo:
A implementação foi constantemente debatida pelo grupo.

Deividson Müller Goulart. Responsável pelo core do aplicativo.
- Estrutura geral;
- Estrutura de leitura do script;
- Visualizador;
- Implementação de transformações.

Frantiesco Masutti . Responsável principal pela aplicação de transformações.
- Implementação de transformações.

Gabriel Schulte . Responsável principal pela aplicação de transformações.
- Implementação de transformações.




Video com demonstração (baixa qualidade):

31 janeiro 2010

Video-Casting: Crack em Jogos Digitais

Desenvolvido para a disciplina de Oficina de Jogos: Motores de Jogos - 2008/2 -, com o professor João Ricardo Bittencourt.

Video que levanta questões éticas sobre a utilização de crack em jogos digitais.

Grupo:
Deividson M. Goulart. - Roteiro, direção e edição.
João S. Streibel. - Atuação, relatório do video e colaboração.

Colaboraram:
Frantiesco Masutti. - Atuação.
Gabriel Schulte. - Atuação.

O video:

29 janeiro 2010

Paint AR

Criado para a Disciplina Realidade Virtual -2008/2- professor Fernando Marson.

Descrição:
Aplicativo que simula uma espécie de “Paint” com Realidade Aumentada.
O usuário poderá desenhar e criar animações na cena captada pela câmera de vídeo/ webcam, utilizando marcadores ARToolkit como “pincéis”.

O projeto Leitor de modelos OBJ (João S. Streibel e Deividson M. Goulart), foi utilizado para a utilização de modelos 3D no formato OBJ no aplicativo.

A função do aplicativo em sua versão atual: Desenhar objetos 3d, criar cenários, desenhar em 3D no mundo real.

Características:
Linguagem C++;
IDE Visual Studio;
Plataforma PC / Windows;
Versão atual: alpha.
Bibliotecas:
  • OpenGL / GLUT;
  • ARToolKit;
  • Lua.

Melhorias Futuras:
- Interface gráfica para maior facilidade para o usuário, com novas funções.
- Salvar a cena resultante. Possibilidade de salvar como modelo 3D único.
- Salvar a cena resultante como vídeo (atualmente é possível com uso de programas como Fraps).
- Possibilidade de vários modelos 3D serem adicionados para serem utilizados no aplicativo.
- Animação. Utilização de animações prontas, e criação de animações pelo usuário.
- Desenho a mão livre, pelo usuário.
- Utilização do mouse para edição da cena resultante (em conjunto com o uso do pincel/ marcador). Com isso pode-se usar o pincel em cena somente para que o aplicativo tenha uma perspectiva 3D da cena captada, e as demais ações poderão ser feitas com o mouse, diretamente na cena resultante.
- Iluminação (virtual) geral na cena (atualmente é individual para cada modelo adicionado), podendo ser configurado pelo usuário.
- Cena virtual criada de forma fixa. Atualmente a cena criada é relativa à câmera (quando a câmera é movimentada, toda a cena virtual se movimenta relativamente).
- Possibilidade de utilização do marcador somente para o aplicativo obter a perspectiva 3D da cena captada, em um primeiro momento, de configuração. Posteriormente, marcadores não seriam mais necessários, e o usuário poderia efetuar ações, utilizando o mouse, diretamente na cena resultante.
- ...


Video com exemplo de uso. Como não tinha uma web cam disponível, fiz com um video que usei para testar o aplicativo, mas a ideia é utilizar o aplicativo com uma cena captada, em tempo real.


27 janeiro 2010

Modelos 3D

Modelos feitos na disciplina de Ferramentas de Design, com o professor Mauricio B. Gehling, em 2008/2.
Trabalho com tema definido pelo professor.

Na disciplina utilizamos Maya 8.5 PLE.

Foi meu primeiro contato com modelagem, e acho que com o que aprendi lá dá pra quebrar o galho quando necessário. Desde lá também tive contato com outras ferramentas, superficialmente, como 3DS, Milkshape, Wings 3D, e principalmente Blender (apesar da interface pouco simpática, é extremamente flexível).


imagens trabalho 1 - moveis diversos:





Trabalho 2 - modelos texturizados:



A famosa carroça:


Trabalho 3 - árvore "artística":

E o trabalho final, Jaspion (modelo com bones):

25 janeiro 2010

Gerador paramétrico de terrenos heightmap e floresta

Trabalho dividido em duas versões.

1ª versão: Gerador paramétrico de terrenos (heightmap) e florestas.

Trabalho implementado para a disciplina de Realidade Virtual, de 2008/2, com o professor Fernando Marson.

Gerador de terreno e floresta a partir de definições do usuário no arquivo de configuração.
O gerador exporta o modelo gerado para um arquivo .wrl (VRML).
Este arquivo pode ser visualizado com, entre outros players, Cortona 3D Viewer
(plugin para browser’s como Explorer, Firefox e Chrome, gratuito).

Grupo:
João Saldanha Streibel. [jstreibel@gmail.com]. Responsável pelo Core do aplicativo.
  • Gerador de terreno, implementando algoritmo para geração de terrenos (heightmap) presente no livro Game Programming Gems 7edition;
  • Exibição da criação do heightmapping através de imagem, em tempo real, com SDL e SDL Thread;
  • Estrutura VRML do terreno.
Deividson Müller Goulart. [dmg.speed9@gmail.com]. Implementação a partir do gerador de heightmapping.
  • Gerador paramétrico da floresta;
  • Estrutura VRML dos demais objetos em cena.
  • Composição da estrutura final VRML.

Características:
Linguagem: C++;
IDE: Visual Studio;
Imagens: obtidas na Internet;
Gráficos: 3D. Visualização da geração do terreno em 2D (SDL);
Plataforma PC / Windows para o gerador. Para utilização do terreno/ floresta gerado, plataforma compatível com algum plugin para browser de internet ou player VRML/ X3D;
Bibliotecas:
  • SDL;
  • SDL Thread.


videos de exemplos gerados:





2ª versão: Gerador paramétrico de terreno (heightmap), com visualizador (OGL).
Trabalho implementado para a disciplina de Computação Gráfica, de 2008/2, com o professor Leandro Tonietto.

Gerador de terrenos heightmap a partir de parâmetros definidos pelo usuário.
Nesta versão é possível modificar mais parâmetros relativos à geração do terreno. Sendo possível obter diferentes resultados.

Configuração da geração definida no arquivo “config_terreno.lua”.
Definição do material do terreno no arquivo “material_terreno.mtl”.
Além do terreno visualizado com OpenGL, o terreno será exportado para um modelo no formato .wrl (VRML), na pasta Output.

Melhorias futuras:
Edição em tempo real do terreno gerado com o mouse.
Exportação do terreno para modelo 3D no formato OBJ.
Texturização do terreno.

Grupo:
João Saldanha Streibel. [jstreibel@gmail.com]. Responsável pelo Core do aplicativo.
  • Melhorias no algoritmo para geração de heightmap implementado para a disciplina de Realidade Virtual, como novos parâmetros para a geração.
Deividson Müller Goulart. [dmg.speed9@gmail.com]. Implementação a partir do gerador de heightmapping.
  • Adaptação da implementação do aplicativo em sua versão vrml, com gerador de florestas, para a atual.
  • Estrutura de visualização com OpenGL;
  • Parametrização com script LUA.
Características:
Linguagem: C++;
IDE: Visual Studio;
Gráficos: 3D, OpenGL. Visualização da geração do terreno em 2D (SDL);
Plataforma PC / Windows para o gerador. Para utilização do terreno VRML gerado, plataforma compatível com algum plugin para browser de internet ou player VRML/ X3D;
Bibliotecas:
  • OpenGL, GLUT;
  • SDL;
  • SDL Thread.
  • script LUA.

video com simples exemplos.

23 janeiro 2010

Leitor e Visualizador de OBJ

Implementado em 2008/2 para a disciplina de Computação Gráfica, com o professor Leandro Tonietto, como trabalho Grau A.
Leitor de modelos 3D no formato Wavefront OBJ. Tema do trabalho definido pelo professor.

Características:
Linguagem: C++;
IDE: Visual Studio;
Modelos 3D: obtidos na Internet para teste;
Gráficos: 3D, OpenGL;
Plataforma PC / Windows;

Grupo:
João Saldanha Streibel. [jstreibel@gmail.com]. Responsável pelo “coração” do aplicativo.
  • Leitor arquivo .obj;
  • Leitor imagem no formato PNM;
  • Estrutura para o Mesh (malha do modelo) criado a partir dos dados lidos no arquivo .obj.
Deividson Müller Goulart. [dmg.speed9@gmail.com]
  • Estruturação geral do programa;
  • Visualizador com OpenGL + Glut;
  • Texturização;
  • Incremento leitor OBJ;
  • Pequenas adaptações no leitor imagem PNM;
  • Leitor arquivo MTL.