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

sexta-feira, 12 de abril de 2013

Engine selecionada : Blender


    Apesar do Blender não ter sido um dos programas que inicialmente planejei testar acabei por usar ele pois descobri que seu engine é muito eficiente nos aspectos que desejo implementar, além de ser também muito intuitivo.

 
    Digo que o Blender Game Engine é eficiente não somente pelo fato de incorporar elementos que outras engines possuem, mas por incorporar o python com linguagem de scripting ele amplia as possibilidades de aplicação com o uso de módulos incluídos no python.

Tudo isso foi conseguido com uma instalação muito fácil, e com uma interface muito user-friendly. (Instalei a versão 2.66)
 
    Do post anterior, eu gostaria de uma engine que:

    1. Tivesse possibilidade de tocar video
    2. Possibilitasse uma layer com animaçao (game) sobre o uma layer com um video
    3. Colher posição atual do video
    4. Conseguir enviar comandos para porta serial


    Todos esses requisitos foram alcançados pelo Blender, que juntamente com o python, facilitou a o desenvolvimento do teste que descreverei a seguir.

   A técnica para tocar video é criar uma textura a partir do vídeo desejado que é dinamicamente atualizada a cada frame pelo blender. Desta forma o video é executado, porém sem som.

   O som deve ser tocado em paralelo, sincronizado com o video. Abaixo estão algumas imagens do projeto e o código-fonte está anexo e os controles relacionados para se tocar o video.

   Neste projeto também existe um mini-game que roda em cima(literalmente) do video. Para este teste, segui o tutorial deste video do youtube.
 
O código para o video foi adaptado do código neste site, cujos créditos (aparentemente) vão para Dalai Felinto.

Sensores e controladores do minigame


Sensores e controladores do video e envio de sinais
 
    Um ponto crucial deste teste foia  integração com um hardware externo, comunicando-se por uma porta serial.
    Para isso utilizei o módulo pyserial, que permite uma comunicação descomplicada com a porta serial.

    Inicialmente tive problemas para a instalação deste módulo, uma vez que apesar de ele funcionar com o python 3.3 (python que vem com o Blender 2.66) ele é escrito para um python anterior.

    Para contornar esse problema, instalei o pip para windows deste link e segui o tutorial de instalação do pyserial para o pip, e deu tudo certo.

    Só como observação: você deve ter a versão do python 3.3 instalada no seu sistema para poder gerar o pacote do pyscript que você depois colocará na pasta do python para ser utilizada dentro do  Blender.

    Finalmente, utilizei um arduino mega para poder fazer os testes com a comunicação serial. O código para o arduino pode ser baixado aqui. O arquino em teste foi testado com uma shield com leds e reles.
 

Baixe aqui o arquivo .blend para testar o projeto.


quinta-feira, 28 de março de 2013

Pesquisa de Engine de games

O objetivo da pesquisa é encontrar uma engine que cumpra os seguintes requisitos:
  1. Ter um player de video
  2. Possibilitar uma layer com animaçao sobre o uma layer com um video
  3. Colher posição atual do video
  4. Conseguir enviar comandos para porta serial
Tudo isso de uma forma simples que possa ser reproduzido em outros computadores por qualquer pessoa(sem a necessidade de muitos conhecimentos técnicos).

Neste post descrevo brevemente as experiências que adquiri com cada engine que testei.