Projeto e Implementação de Jogos Eletrônicos Daniel Oliva Sales 20/11/2008 Roteiro • • • • • • • • • • Introdução Objetivo Motivação Desenvolvimento de Jogos Inteligência Artificial Computação Gráfica Material e Métodos Desenvolvimento Resultados e Conclusão Trabalhos Futuros Introdução • O desenvolvimento de jogos é uma área de caráter multidisciplinar • Aplicações em tempo real • Área tem aumentado sua importância Objetivo • Aplicar a metodologia de desenvolvimento de jogos proposta na literatura na construção de um jogo para sistema embarcado e observar os resultados Motivação • Interesse pessoal no desenvolvimento em um sistema embarcado • Desafio: Busca por adaptação e otimização do código Desenvolvimento de Jogos • Processo de Elaboração de um Jogo: – Confecção do Design Bible – Produção de Áudio e Imagens 2D – Modelagem 3D – Desenvolvimento dos artefatos computacionais – Integração dos aspectos artísticos e computacionais Inteligência Artificial • Algoritmo Minimax Computação Gráfica • Computação Gráfica – OpenGL: conjunto de rotinas – Câmera Sintética – Projeções Computação Gráfica (cont.) – Translação, Rotação e Escala – Transformações Hierárquicas – Realismo (Iluminação, Reflexão, Textura e Animação) Material e Métodos • Console Sony Playstation Portable • PSPDev + PSPDevLibInstall – Compilador GCC – Conjunto de Bibliotecas Utilizadas Material e Métodos (cont.) • Software: – Dev C++ – Photoshop – Guitar Pro 4 – Audacity Desenvolvimento • Design Bible – Roteiro • Guerra Medieval – Game Design – Gameplay • Regras: peças, ataque e defesa, condições de fim de jogo – Interfaces Desenvolvimento (cont.) • Produção de Áudio e Imagens 2D – Inclusão de sons e músicas – Inclusão de imagens usadas como texturas, cursores, menus, etc. • Formato .TGA -> mapeamento de cores em RGBA Desenvolvimento (cont.) • Modelagem 3D no PSP– Especificação dos vértices Desenvolvimento (cont.) • Modelagem 3D – Mapeamento de Texturas – Coordenadas de Aplicação da Textura – Cálculo da cor final do fragmento • MODULATE: CF = Cf * Ct Implementação • Projeto Inicial – Linguagem C++ – Main.cpp, ia.h, tabuleiro.h – Jogo já possui as características finais préimplementadas Implementação (cont.) • Inteligência Artificial no PSP – Limitações do hardware: 64Mb de RAM, processador MIPS R4000 de 333Mhz – Poda alfa-beta – Condição de Parada – Heurística de utilidade – Chance de jogada randômica Implementação (cont.) • Heurística de Utilidade Otimizada Implementação (cont.) • Computação Gráfica no PSP – Unidade de Processamento Gráfico: 33 milhões de polígonos por segundo, 2MB VRAM onboard – Biblioteca PSPGU: funcionamento semelhante à OpenGL, porém sem a GLUT Implementação (cont.) • Computação Gráfica (cont.) – Função Desenha Implementação (cont.) • Função Main Resultados e Conclusão • A metodologia adotada permitiu a implementação do jogo como previsto • Obteve-se como resultados observados tanto o jogo como o próprio trabalho • Principal contribuição: referência para desenvolvimento de novos jogos, de qualquer gênero Resultados e Conclusão (cont.) • O projetista deve conhecer todas as áreas envolvidas • As interfaces das classes devem ser muito bem definidas no projeto • A demanda por tempo e equipe é proporcional à complexidade do projeto • Todos os envolvidos devem conhecer as limitações do hardware Resultados e Conclusão (cont.) • Conclui-se que a adoção de uma metodologia adequada é fundamental para o sucesso de um projeto Trabalhos Futuros • Modo multiplayer utilizando a rede wireless 802.11 • Uso de Redes Neurais como solução para a IA • Inclusão de novos cenários e modos de jogo • Modelos 3D mais complexos • Save/Load Dúvidas???