Скачать презентацию Do Reaktor ao D 4 MD Rui Pires Скачать презентацию Do Reaktor ao D 4 MD Rui Pires

0a8f3b5287e54b736329122cbf38b773.ppt

  • Количество слайдов: 33

Do Reaktor ao D 4 MD Rui Pires rui_pires@users. sf. net Tiago Rodrigues tiago_rodrigues@users. Do Reaktor ao D 4 MD Rui Pires [email protected] sf. net Tiago Rodrigues [email protected] sf. net Miguel Dias miguel. [email protected] pt

Resumo ● Visão geral do processo de desenvolvimento de jogos ● Projecto Reaktor ● Resumo ● Visão geral do processo de desenvolvimento de jogos ● Projecto Reaktor ● Projecto D 4 MD

Desenvolvimento de Jogos ● ● Antigamente uma pessoa sozinha conseguia desempenhar todas as tarefas Desenvolvimento de Jogos ● ● Antigamente uma pessoa sozinha conseguia desempenhar todas as tarefas de desenvolvimento de um jogo. Hoje em dia o desenvolvimento de um jogo comercial envolve um elevado numero de pessoas, especializadas em areas diferentes – – – Programadores Artistas Testers Game designer Game Producer

Desenvolvimento de Jogos ● Jogos amadores normalmente têm equipas mais reduzidas – – ● Desenvolvimento de Jogos ● Jogos amadores normalmente têm equipas mais reduzidas – – ● Projectos académicos ou Hobby’s Tem geralmente por objectivo mostrar as capacidades dos autores Empresas nunca contratam ninguém sem experiência – Os projectos amadores servem como port-fólio

Desenvolvimento de Jogos ● Fases no desenvolvimento de um jogo – Design do jogo Desenvolvimento de Jogos ● Fases no desenvolvimento de um jogo – Design do jogo ● ● – Ou como uma série de experiências com novas ideias ou tecnologia Criação de um protótipo ● – Pode começar com uma ideia bem definida Serve como proof of concept Produção ● Normalmente dura entre 1 e 3 anos (num jogo comercial) ● Crunch time

Desenvolvimento de Jogos ● Um jogo normalmente tem por componentes – Motor gráfico – Desenvolvimento de Jogos ● Um jogo normalmente tem por componentes – Motor gráfico – Motor de física – componentes de som, carregamento de modelos, input, etc – Ferramentas de desenvolvimento criadas “inhouse” e outras

Reaktor ● Enquadramento – Projecto final para a cadeira de Computação Gráfica e Multimédia Reaktor ● Enquadramento – Projecto final para a cadeira de Computação Gráfica e Multimédia (4º ano, ETI-ISCTE) – O tempo disponível para o projecto era cerca de 1 mês

Reaktor ● Objectivos: – Ter um FPS funcional – Ganhar experiência – Ganhar sensibilidade Reaktor ● Objectivos: – Ter um FPS funcional – Ganhar experiência – Ganhar sensibilidade aos problemas associados com o desenvolvimento de jogos – Aplicar os conhecimentos adquiridos na cadeira de CGM de uma maneira interessante

Reaktor ● Motor Gráfico – Foi desenvolvido de raiz, utiliza Open. GL para desenho Reaktor ● Motor Gráfico – Foi desenvolvido de raiz, utiliza Open. GL para desenho – Divisão espacial : BSP-Tree – Carrega mapas de Quake 3 (não compilados) ● ● Parsing e processamento do mapa Criação da BSP

Reaktor ● Motor de Física – Feito de raiz – Apenas dinâmica da translação Reaktor ● Motor de Física – Feito de raiz – Apenas dinâmica da translação – Integração de Euler – Algoritmo de detecção de colisão suporta colisões entre : ● Ponto-Esfera, Ponto-Elipsoide, Esfera-Esfera, Esfera. Elipsoide, Elipsoide-Elipsoide, Esfera-Poligono e Elipsoide-Poligono

Reaktor ● Suporte de Rede – Desenvolvido de raiz – Garantir o sincronismo entre Reaktor ● Suporte de Rede – Desenvolvido de raiz – Garantir o sincronismo entre as várias instâncias dos objectos do jogo – Arquitectura cliente/servidor – Objectos distribuídos pelos diversos utilizadores ● Objectos locais / Objectos Remotos – Um objecto criado localmente impõe o seu estado aos seus objectos remotos correspondentes – Entre actualizações de estado os objectos remotos são tratados como objecto locais

Reaktor ● Conclusões – – Com um desenho cuidado, e utlização de APIs portáveis, Reaktor ● Conclusões – – Com um desenho cuidado, e utlização de APIs portáveis, é relativamente fácil suportar várias plataformas (no nosso caso, Win 32 e Linux) A “arte” do jogo é muito importante para os jogadores. Reacções físicas menos realísticas não assustam os utilizadores. Ambiência é muito importante (sons, nevoeiro, aspecto geral. . . )

Reaktor ● Conclusões (2) – Hoje em dia não é viável a uma empresa Reaktor ● Conclusões (2) – Hoje em dia não é viável a uma empresa desenvolver um jogo comercial completamente de raiz – Tendência para comprar “Game-Engines” e desenvolver os conteúdos – Cada vez mais, surgem empresas especializadas no desenvolvimento de de middleware

D 4 MD (de-for-md) ● Enquadramento: – – – Nosso TFC (trabalho final de D 4 MD (de-for-md) ● Enquadramento: – – – Nosso TFC (trabalho final de curso) Jogo de simulação de condução, com ênfase na deformação de geometria (em resultado de choques) e simulação mecânica dos veículos Tirar partido da experiência obtida do Reaktor – Usar middleware existente como motores gráficos e motores de física de modo a permitir a concentração do esforço nas características específicas do projecto

● Motor Gráfico – D 4 MD Existem diversas alternativas open-source de grande qualidade: ● Motor Gráfico – D 4 MD Existem diversas alternativas open-source de grande qualidade: – – Irrlicht - http: //irrlicht. sourceforge. net/ – – OSG - http: //www. openscenegraph. org/ Ogre 3 D - http: //www. ogre 3 d. org Foi escolhido o Ogre 3 D – Elevada qualidade da documentação – API OO (c++) simples e extensivel – Multiplataforma, independente do sistema de renderização (Open. GL/D 3 D) e acesso fácil a programação com Shaders CG e GLSL – Comunidade bastante activa e actualizações frequentes

D 4 MD ● Motor de Física – – Poucas opções open-source: – ODE D 4 MD ● Motor de Física – – Poucas opções open-source: – ODE - http: //ode. org/ Algumas opções grátis para projectos não comerciais: – Tokamak - http: //www. tokamakphysics. com/ – True axis - http: //www. trueaxis. com/ – Newton Game Dynamics - http: //www. physicsengine. com/ – Novode. X - http: //www. novodex. com

D 4 MD ● Motor de Física – Escolhemos o Novode. X – API D 4 MD ● Motor de Física – Escolhemos o Novode. X – API C++ – Robustez e desempenho muito elevado com formas primitivas – Determinístico – Boa documentação e forum de suporte técnico – Se é bom para o motor Unreal 3, também é bom para o nosso jogo!

D 4 MD ● Deformação em jogos: – ● Embora existam muitos exemplos de D 4 MD ● Deformação em jogos: – ● Embora existam muitos exemplos de jogos que incluam deformação, a informação sobre as técnicas utilizadas é pouca Exemplos: – NFSU 2 – GTA 3 – CARMAGEDDON 2

D 4 MD ● Técnicas de deformação mais utilizadas – Técnicas com base física D 4 MD ● Técnicas de deformação mais utilizadas – Técnicas com base física – Mola-Massa – – – Especialmente indicada para corpos 2 D (ex: pano) Corpos com deformação contínua FEM (Finite Element Method) – Resultados muito realistas – – Requisitos de processamento e memória muito elevados Técnicas com base geométrica – FFD (Free Form Deformation) – Deformação do espaço : independência em relação à geometria

D 4 MD ● Exemplo Mola-Massa: – Arranjo 3 D usando molas orientadas D 4 MD ● Exemplo Mola-Massa: – Arranjo 3 D usando molas orientadas

D 4 MD ● Exemplo FEM: – Subdivisão FEM de um modelo complexo origem: D 4 MD ● Exemplo FEM: – Subdivisão FEM de um modelo complexo origem: M. Muller, Physically-Based Simulation of Objects Represented by Surface Meshes

D 4 MD ● Exemplo FFD: – Manipulação directa de um cubo através de D 4 MD ● Exemplo FFD: – Manipulação directa de um cubo através de FFD

D 4 MD ● Sistema de deformação – D 4 M: – Deformação intantânea D 4 MD ● Sistema de deformação – D 4 M: – Deformação intantânea de objectos com características metálicas – Uso da técnica DFFD (direct manipulation FFD) Reconfiguração automática dos controlos através de um ou mais deslocamentos no espaço – Deformações com resultados visuais agradáveis usando B-Splines cúbicas uniformes – Controlo da relação qualidade/desempenho através da distribuição de pontos de controlo – A independência em relação à geometria de deformação permite o uso de formas físicas simples para simular a dinâmica dos corpos –

D 4 MD • Sistema de deformação – D 4 M D 4 MD • Sistema de deformação – D 4 M

D 4 MD ● Simulação mecânica dos veículos: – Curvas de momento angular – D 4 MD ● Simulação mecânica dos veículos: – Curvas de momento angular – Momento aplicado às rodas e força consequente aplicada no solo vai influenciar o motor. – Veículos são bastante parametrizaveis – curva de Torque – mudanças e suas eficiências – pesos e sua distribuição – Eficiências : Transmissão, Travões, Diferencial, …

D 4 MD ● Simulação mecânica dos veículos (2) – – Rodas são simuladas D 4 MD ● Simulação mecânica dos veículos (2) – – Rodas são simuladas com raios, que vão ter o comportamento de molas (as suspensões) – solução mais eficiente para o motor de física – muito comum neste tipo de jogos A simulação completa da rodas impõe vários problemas para os motores de física, que assim são facilmente evitadas – Instabilidade devido ao elevado numero de “constraints” implicados

D 4 MD ● Modo multijogador / Interface imersiva – – Estamos igualmente a D 4 MD ● Modo multijogador / Interface imersiva – – Estamos igualmente a desenvolver um modo multijogador, que permitirá o jogo em rede –Tirar partido das características determinísticas do motor de física –Simulação paralela em cada um dos clientes –O servidor apenas controla o relógio global e o sincronismo de frame Usar o modo de rede para permitir o uso de uma interface imersiva 3 D – CAVE

● Cave: – Permite a visualização de um mundo 3 D através da imersão ● Cave: – Permite a visualização de um mundo 3 D através da imersão do utilizador numa estrutura de visualização e uso de óculos especiais

D 4 MD D 4 MD

D 4 MD ● Conclusões: – Hoje em dia é quase impossível desenvolver um D 4 MD ● Conclusões: – Hoje em dia é quase impossível desenvolver um motor de jogo todo de raiz – Existem bastantes alternativas open-source para os vários componentes: motores de física, motores gráficos, bibliotecas de som, etc. . – Usar middleware existente, ajuda bastante na obtenção de resultados com qualidade superior, no entanto o tempo necessário para aprender a lidar com as suas APIs e integrar diversos módulos que não foram pensados para trabalhar em conjunto pode ser igualmente elevado. – A experiência é muito importante na industria dos jogos, como nenhuma empresa recebe pessoas sem experiência é muito dificil entrar, no entanto ter trabalho feito na área, mesmo que feito de forma amadora, ajuda.