Roteiro Introdução Conceito de motor Arquitetura de um motor Exemplos de motores Introdução Atualmente o mercado de jogos é um das atividades mais lucrativas do momento, tendo superado inclusive a indústria cinematográfica. Introdução O avanço do hardware gráfico e o surgimento de novos recursos como placas de aceleração física tem possibilitado o desenvolvimento de jogos cada vez mais reais. NVIDIA 9800 GX2 Introdução Seguindo esta tendência, os motores utilizados para o desenvolvimento de jogos tornam-se cada vez mais potentes e dinâmicos. Crysis – Cryteck/EA Games (2007) Introdução As principais áreas da computação envolvidas no desenvolvimento de jogos são: Computação gráfica Estruturas de dados avançadas Banco de dados Inteligência artificial Engenharia de software Redes Além de: Matemática Física Conceito de Motor O conceito de motor surgiu no início dos anos 90 com o lançamento do jogo Doom. Comparativo entre jogo Doom apresentado em 1993 e Doom 3 lançado em 2003. Conceito de Motor Um motor gráfico pode ser definido como um conjunto de bibliotecas que permitem a abstração da programação em baixo nível de maneira a oferecer uma interface de desenvolvimento mais amigável ao programador. Arquitetura de um Motor Os motores são geralmente implementados utilizando um arquitetura de três camadas: Aplicação Núcleo Subsistemas Arquitetura de um Motor Subsistemas: A camada de subsistemas e formada por diversos módulos que oferecem serviços específicos ao núcleo por meio de APIs e drivers que se comunicam com o sistema operacional. Módulo gráfico Módulo de rede Módulo de som Módulo de I/O Exemplo para uma camada de subsistemas Arquitetura de um Motor Algumas APIs empregadas em subsistemas são: OpenGL – renderização 2/3D DirectX – renderização 2/3D, som 2/3D, dispositivos de entrada OpenAL – som 2D e 3D Ravok – física ODE – física Physx – física JPGLib – carregamento de imagens Arquitetura de um Motor Núcleo: chama cada função no momento apropriado e com os parâmetros apropriados. Identifica, inicia e coordena o funcionamento de todos os módulos do motor. Arquitetura de um Motor Camada de aplicação: A aplicação é o software implementado utilizando os recursos oferecidos pelo motor. O desenvolvedor somente especifica o cenário, carrega e posicionar os modelos, disparar animações e efeitos, bem como define as respostas que o jogo deverá fornecer com base em uma maquina de estados ou ações do usuário. Tipos de Motores Atualmente, existe uma vasta gama de motores destinados a diferentes propósitos. É possível classificar os motores em: Motores 2D Motores 3D Motores 2D JUnderGE Suporte a: - Bricks - Tiles - Sprites - Layers Motores 3D - Ogre 3D Torque 3D Jmonkey Jake enJine Java3D - Ogre 3D Características: Engine 3D voltada para a rendericação Desenvolvida em C++ Fácil utilização Multiplataforma (DirectX/OpenGL) Gratuita Ogre 3D Pacific Storm (2006) Lesta Studios - http://www.pacificstorm.net Torque 3D Características: Engine 3D completa para o desenvolvimento de jogos Desenvolvida em C++ Fácil utilização Multiplataforma (DirectX/OpenGL) Proprietária: Licença comercial ($295) Torque 3D Hinterland (2008) Tilted Mill Entertainment - http://www.tiltedmill.com/hinterland/ Motores 3D em Java Características: - Jmonkey Jake enJine Java 3D Dúvidas Contatos