• Bem Vindo!

    Faço parte do INDIGENTE - Interactive Digital Entertainment e nesse blog pretendo escrever sobre minhas experiências dentro dos projetos que participo nesse grupo de pesquisa e desenvolvimento de jogos. Em resumo, esse blog funcionará como um diário de produção. Aqui, você poderá acompanhar o que faço, que técnicas aplico, que referências uso, as dificuldade que passei e tudo mais que de alguma forma me ajuda dentro do meu trabalho. Espero que esse blog ajude você de alguma forma também. Seja bem vindo e boa leitura.

Semana de Apresentações

Posted by Jandson On 10:43 0 comentários

Bem, essa semana que passou eu diria que o kirimurê mais uma vez foi a estrela do Indigente. Muita gente quer conhecer um dos nossos principais projetos na atualidade. Durante a semana tivemos uma apresentação feita por Adolfo no Instituto Anísio Teixeira-IAT. Tivemos alguns contratempos com relação ao equipamento que seria utilizado na exibição do Kirimurê. Isso porque temos um MacBook Pro que fica pronto para eventos desse tipo, mas como esse MacBook estava na sala de Vaninha, nossa coordenadora, e a mesma não se encontrava em Salvador, foi complicado mas no final conseguimos encontrar a professora Lais, que compartilha a sala com Vaninha e tinha acesso ao equipamento. Com esse episódio descobri que o Kirimurê não pode ser executado em máquina virtual. Isso porque a parte de renderização 3D não pode ser feita por software e sim por hardware. Isso acaba por reforçar a minha teoria de que o baixo desempenho do Kirimurê em máquinas com placas de vídeo da SIS ou da VIA se dá pelo fato de muita coisa ser feita por software. Voltando um pouco a apresentação que aconteceu no IAT, tivemos problemas também na exibição do kirimurê, não por conta do passeio em si, mas por conta do equipamento utilizado na projeção que não aceitava a resolução 1280 x 800. Realmente, na hora de compilar e configurar o Kirimurê para rodar no MacBook, esqueci de mudar esse detalhe, mas não é nada complicado. Nada que não pudesse ser resolvido no momento da apresentação. Existe um arquivo na pasta save chamada User.cfg. Esse arquivo contém as configurações do DirectX e inclui também coisas como resolução. Bastava abrir esse arquivo com o bloco de notas mesmo e alterar a resolução de 1280 x 800 para 800 x 600 que geralmente é aceita pelos projetores. Falha de comunicação entre quem apresentou o Kirimurê no IAT e a equipe de programação. Mas isso é uma discussão interna, não vamos prolongar muito isso aqui.
A outra apresentação que tivemos do Kirimurê, essa sim com um pouco mais de sucesso, aconteceu no dia 09/06 no auditório do Pavilhão de Aulas da Federação - PAF1. Essa apresentação aconteceu em conjunto com a apresentação da empresa de desenvolvimento de jogos Gamenyx. Com essa apresentação podemos perceber que estamos no caminho certo ao apostar no mercado de jogos. Não é um ramo fácil. Muitas pessoas não dão valor ao que fazemos mas, é um mercado que cresce muito e aos poucos as pessoas começam a perceber as vantagens desse ramo.
Infelizmente não tive tempo de avisar aqui sobre as apresentações, mas tentarei avisar com antecedência as próximas. Ainda não me acostumei com essa coisa de postar em blog, espero que isso melhore com o tempo e acabe virando um hábito. Assim, as próximas gerações de desenvolvedores de jogos no Indigente e em qualquer outro lugar não precisaram passar pelas mesmas dificuldades que passamos.

Mutirões para Miúda

Posted by Jandson On 11:21 0 comentários

Durante 2 sábados seguidos o pessoal do Indigente vem tentando fazer alguma coisa para o andamento de miúda mas não estamos tento sucesso nisso. Eu não sei bem explicar o que está acontecendo. Estamos tentando nos reunir e estamos até conseguindo, mas as coisas não andam. Na primeira semana tivemos problemas com os arquivos e a falta do animador que de ultima hora não pode ir, com isso ficamos sem material e sem alguém para ensinar um pouco de técnicas de animação. Na semana seguinte a coisa andou um pouco. A sala estava cheia. Cheia de pessoas para o processo seletivo, mas para o mutirão de miúda só tinha eu, Fernando Medeiros e Suelen (trabalhando em casa e usando o gtalk para se comunicar). Bem minha parte eu consegui desenvolver um pouco, estava meio enferrujado no Flash mas consegui colocar a interface no lugar certinho (com ajuda de Suelen) e consegui também fazer uma pequena animação na barra de botões. No próximo sábado eu termino o restante acredito.

Compilando Kirimurê.

Posted by Jandson On 16:52 0 comentários

Para ter acesso ao código do Kirimurê antes dele ser concluído e de alguma formar poder contribuir para o desenvolvimento desse software, é necessário ser um Indigente. Para isso, o candidato tem que passar por um processo seletivo. Para maiores detalhes sobre o processo seletivo do Indigente, mande um e-mail para jan.nunes@gmail.com com sua dúvida. Esse semestre as inscrições já terminaram, mas semestre que vem estarei divulgando as datas chaves do processo.
De tempos em tempos, calouros e aspirantes a programadores pedem para olhar o código do Kirimurê e já encontram dificuldades logo na hora de compilar. Explicarei aqui passo a passo o que é necessário para compilação de Kirimurê em WINDOWS. Eu utilizo Visual Studio 2005 como IDE e sei configurar as coisas para essa versão. Não testei as configurações para outras versões do VS porque essa já atende minhas necessidades perfeitamente. Por isso não sei como configura-las em outra versão.
Para começar, será necessário baixar essas coisas:
  • Tortoise SVN - Será necessário para baixar os arquivos do Kirimurê. Enquanto o projeto não estiver concluído não poderei publicar o link pra o repositório. Somente é permitido aos integrantes do Indigente. Basta baixar o arquivo de acordo com a versão do seu Windows (XP, Vista ou Seven) (32bits ou 64Bits). Instale o Tortoise aceitando os termos dos desenvolvedores e clicando em avançar, avançar, ..., até que a instalação tenha sido concluida. Provavelmente pedirá para reiniciar o computador para as modificações fazerem efeito.
  • Boost - Conjunto de bibliotecas otimizadas para threads, funções matemáticas entre outras coisas. Aqui funciona com a versão 1.38 não tenho certeza se versões superiores vão causar problemas. Explicarei aqui como funciona o processo para versão. Será necessário que o computador que você esteja instalando o boost esteja conectado com a internet (de preferência uma internet bem rápida). Após baixar o instalador, execute e avance nos termos de compromisso até chegar na parte de seleção do mirror. Selecione o Random mirror, mande avançar. Na tela seguinte irá aparecer a tela com caixas de seleção para o compilador e as variantes que você deseja instalar. Existe a possibilidade de instalar tudo, mas é muito trabalhoso e demorado, por isso escolha apenas o compilador que você está usando, Nesse caso o Visual C++ 8.0 (VS2005) e como variantes você pode marcar todos os quadrinhos. Na tela seguinte irá aparecer umas seleções de componentes que serão instalados. Todos os componentes que estão sem um sinal de "+" na frente devem estar marcados. Para os componentes que tem um sinal de "+" na frente, marque apenas a versão do seu compilador (VC8.0). Isso vai evitar que você baixe arquivos desnecessários. Feito isso, clique em avancar e você verá o local de destinação, pode deixa-lo como está mesmo e clique em avançar. Depois disso pode sair e tomar um café, bater um papo, ou estudar outra coisa porque demora bastante para baixar as coisas.
  • DirectX SDK - Esse é simples demais, basta baixar e instalar normalmente (é grandinho também).
  • PhysX SDK - Vai ser necessário fazer um cadastro no site antes de baixar a ferramenta. Depois disso é só baixar e instalar normalmente.
  • Ogre3D SDK - Engine gráfica usada no Kirimurê. Mais um pacote de aplicativos fácil de instalar.


Após baixar e instalar tudo isso é hora de baixar e configurar o projeto do Kirimurê. Para isso, crie uma pasta em um local de sua preferência para baixar o projeto do svn utilizando o Tortoise. Para baixar o projeto, Clique com o botão direito do mouse sobre a pasta onde deseja salvar o projeto e selecione a opção SVN Checkout. Feito isso, irá aparecer uma janela solicitando a URL do repositório. Essa URL só os integrantes do indigente tem acesso. Então basta colocar a URL e clicar em OK. O projeto é bem grande, vai levar um bom tempo baixando. Enquanto isso você pode ir configurando as variáveis de ambiente que serão necessárias na compilação do projeto.
Para configurar as variáveis de ambiente, será necessário ter permissão de administrador na máquina e é bem simples. Abra as propriedades do sistema do seu computador, Isso varia nas mais diversas versões do windows. No Win7 basta seguir o caminho: "Meu Computador"->propriedades->Alterar Configurações. No Xp acho que basta clicar em propriedades em "Meu Computador" que já aparece a janela. Feito isso, vamos na aba Avançado e lá em baixo tem um botão chamado Variáveis de Ambiente. Se vc já instalou o Ogre SDK já pode observar em Variáveis de Usuário para "Fulano de Tal" que foi criada uma variável chamada OGRE_HOME que aponta para a pasta onde o ogre foi instalado. Faremos o mesmo para o PhysX e para o Trip3D (Framework de integração que será baixado junto com o projeto do Kirimurê). Começaremos pelo PhysX que a essa altura já deve estar instalado na sua máquina. Para isso, clique em novo, no nome da variável coloque PHYSX_DIR (tem que ser tudo maiúsculo mesmo, do jeito que está ai) e no valor da variável você vai colocar o caminho até a pasta onde está o PhysX (aqui ficou: C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.3). Quando terminar de baixar o projeto vamos fazer algo parecido para o Trip. O nome da variável é Trip3DDir e o valor é o caminho para a pasta Trip3D que você baixou junto com o projeto.
Agora que você já baixou o projeto e configurou as variáveis de ambiente, é hora que configurar o Visual Studio 2005. O Kirimurê está dividido em duas pastas, uma chamada FAPESB e outra chamada FUNCEB. As duas utilizam as mesmas dependências e o mesmos arquivos do Trip porém são diferentes. No projeto da FAPESB o foco maior é o desempenho, então o projeto padece um pouco de efeitos visuais. Já no projeto da FUNCEB a preocupação com desempenho não existe e podemos caprichar nos efeitos especiais. As configurações que descrevo aqui vale para os dois projetos.
Dentro da pasta build você encontrará uma pasta FAPESB e uma FUNCEB, escolha uma das duas, lá encontra-se um arquivo chamado Kirimure.sln. Esse é o arquivo do projeto no VS. Podemos então configurar as dependências no VS. Para isso em Tools, escolha options, expanda o menu Projects and Solutions e clique em VC++ Directories. Ao lado, selecione no dropdown Show directories for: a opção Include Files. Dai, vamos incluir 3 locais. O primeiro é o caminho para a pasta include do OgreSDK (C:\OgreSDK\include). O segundo é o caminho para a pasta do boost (C:\Program Files (x86)\boost\boost_1_38) e o terceiro é o caminho para a pasta include dentro das dependências do projeto ($(SolutionDir)dependencies\include) note que aqui eu usei uma macro do Visual Studio, mas quem não souber como fazer isso, basta colocar o caminho por extenso mesmo. Voltando ao dropdown Show directories for: escolhemos agora a opção Library Files. Lá, vamos inserir os caminhos para: "$(SolutionDir)dependencies\lib", "C:\OgreSDK\lib", "C:\Program Files (x86)\boost\boost_1_38\lib", "C:\Program Files (x86)\boost\boost_1_38\libs" e "C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib".
Pronto, agora que esse processo gigante foi feito, vamos compilar Kirimurê, Para isso vamos no Solution explorer e clicando com o botão direito sobre TourSalvador marcamos a opção Set as StarUp Project. Na barra de tarefas, existe um dropdown chamado Solutions Configurations Com quatro opções, escolha a opção Profile para que a compilação seja mais rápida, evitando geração de códigos de Debug e descartando erros que não comprometem o funcionamento do executável. Depois é só clicar no botão de Play que fica do lado esquerdo desse Dropdown. Se todas as configurações estiverem corretas o projeto será compilado e será gerado um executável dentro da pasta bin->release do projeto que você escolheu (FAPESB ou FUNCEB). Uma vez compilado, basta você carregar a pasta bin (que contem as pastas release e data) para que você possa executar kirimurê em qualquer lugar que tenha as configurações mínimas para isso. Estamos estudando ainda o que seria essas configurações mínimas, Mas posso chutar aqui que um computador simples com um processador pentium4 com placa de video onboard da intel, com 512mb de memória ram e WindowsXP já conseguiria rodar a versão da FAPESB tranquilamente. Mas lembrando que isso é apenas um chute, não fizemos testes suficientes ainda.



"O medo mata as pessoas."

Posted by Jandson On 10:52 0 comentários

Depois de um dia de trabalho intenso, tentando aumentar ao extremo o desempenho do Kirimurê, a equipe de programação junto com a equipe da parte gráfica tem o hábito de jogar Dota para descontrair um pouco o ambiente. Numa dessas partidas enquanto um dos meus colegas estava fugindo do herói de outro colega para não morrer, ouvi uma conversa muito celebre que dizia: "...Continua ai, ele não vai lhe atacar. O medo mata as pessoas..." (Philipe Arraes) Depois de muitas risadas fui para casa e comecei a filosofar sobre a frase final dessa conversa. Comecei a pensar e percebi que aconteceu algo no projeto que me deixou com muito medo e quase me matou de susto. Na semana passada, decidimos separar o Kirimurê em duas pastas, uma para mexer no código para o produto que pretendemos entregar para FAPESB e outra para o produto da FUNCEB. Isso é necessário porque no caso da FAPESB o produto precisa ser executado em máquinas de escolas públicas e estamos carecas de saber o quão ruim são as máquinas delas. Já com o produto da FUNCEB não há essa preocupação e podemos caprichar nos efeitos especiais. Ao separar o projeto nessas duas pastas, percebi que o código não compilava mais. Não entendi bem o que aconteceu porque já tinha feito mudanças de pastas antes e não tinha acontecido nenhum problema. Achei que pudesse ser algum bug do Visual Studio. Resolvi então voltar ao estado anterior para verificar as coisas. Para minha surpresa, o medo que mata as pessoas, o projeto não compilou. Na verdade o projeto não estava sendo reconhecido no Visual Studio. Fui para casa quase desesperado em busca do meu notebook para ver a versão que eu tinha salvo lá. Ainda bem que estava compilando. Mas ai eu continuei pensando que as alterações que eu tinha feito nas pastas não deveria interferir no reconhecimento do Visual Studio, então resolvi guardar o que eu tinha salvo no meu notebook em um lugar seguro e baixar do SVN uma nova cópia (Já com o possível estrago que eu tinha feito). Depois de uma noite inteira baixando as coisas resolvi testar e não é que no meu notebook as mudanças que eu tinha feito deram certo!!!. Resolvi testar em todas as outras máquinas do indigente e também deu tudo certo. Ai percebi que alguém havia alterado algumas configurações no Visual Studio que causou essa confusão toda.
"O medo mata as pessoas." já dizia Philipe Arraes. De vez em quando substituímos Dota por CS. Quando eu descobrir quem alterou as configurações, essa pessoa entenderá o que a frase significa - HEADSHOT.