Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Post on 24-May-2015

683 views 1 download

description

Slides do meu Mini Curso na semana de Tecnologia da Unip realizado em 21/10/2013.

Transcript of Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Desenvolvendo um jogo 3D com Ogre 3D e C++

Autor: Jonathan Ohara de Araujo

Sobre Mim23 +1 anos;

Bacharel em Sistemas de Informação pela Universidade Católica de Santos;

Trabalho com Java para sistemas Web;

Estudo desenvolvimento de jogos desde 2009;

2 projetos na área de jogos: Shyds; PontoV.

Shyds Games - http://shydsgames.com/

Criado para armazenar nossos jogos, news e como blog de desenvolvimento;

Projetos: Bola de Pano; Tumbu; Black Amber; Sem nome (On Hold); Stick Wars.

Shyds Games – Bola de Panohttp://shydsgames.com/

Shyds Games – Tumbuhttp://shydsgames.com/

Shyds Games – Black Amberhttp://shydsgames.com/

Shyds Games – Sem Nome ( On Hold )

http://shydsgames.com/

Shyds Games – Stick Warshttp://shydsgames.com/

PontoV - http://www.pontov.com.br/

Artigos sobre desenvolvimentos de jogos em geral;

Escrevo na coluna sobre Ogre3D

Desenvolvimento de jogos e Ogre 3D

Será abordado: Introdução; Indústria e Curiosidades;Mitos;Ogre 3D;Desenvolvimento de Jogos;

Api´s; Game Engines; Computação Gráfica;

Ferramentas de Auxílio; Construindo um ambiente; Desenvolvendo com Ogre 3D.

Introdução

Desenvolvimento de Jogos

2D;

3D.

Ogre 3D

Ogre 3D;

C++.

Indústria e Curiosidades

Consoles - Vendas

Console mais vendido: Playstation 2 (2000) – 155,59 milhões;

Jogo mais vendido: Wii Sports (Wii) – 77,34 milhões;

Jogo mais vendido (2013): Grand Theft Auto (XBOX 360) - 8,8 milhões;

Curiosidades

Em 2008 a receita da indústria de jogos nos Estados Unidos foi de aproximadamente 22 bilhões que é maior que a receita da indústria de musica e filmes juntos (10,4 bilhões e

9,5 bilhões repetitivamente).

Indústria – Notícias Recentes“GTA V exceeds $1 billion in only 3 day”

(GameIndustry 20/09/13)

Spending on videogames in the U.S. Reached US$ 16.3 billion in 2011 (Financial POST 2012)

Eventos Interessantes

IGF (Independent Games Festival);

SBGames (Simpósio Brasileiro de Games e Entretenimento Digital);

Mitos

É impossível fazer um jogo sozinho!!!

BBraid (2008) by Jonathan Blow

É impossível fazer um jogo sozinho!!! E em java!!!

Minecraft (2009) by Markus “Notch”

Eu não tenho os milhões de dólares necessários para

licenças e softwares!!!

Meu primeiro jogo terá gráficos perfeitos e 1000

horas de game play!!!

Eu sei programar, então sei fazer jogos!!!

Desenvolvimento de Jogos –

Api’s Gráficas

Api´s Gráficas

O que são?

Api gráfica == Game Engine???

Api’s

OpenGL (1992);

Direct3D (1995).

OpenGL

Direct 3D

Desenvolvimento de Jogos –

Engines Físicas

Engines Físicas

O que são?

Por que e quando usa-las?

Principais Engines Físicas

Nvidia PhysX

Havok Physics;

Bullet;

Open Dynamics Engine (ODE).

Principais Engines Físicas

Desenvolvimento de Jogos –

Game Engines

Game Engines

Conceito;

Função;

Componentes.

Game EnginesOgre 3D*;

Java Monkey Engine;

Unity;

Microsoft XNA.

Ogre 3D*

Open Source;

Multiplataforma;

C++;

http://www.ogre3d.org/

Java Monkey Engine

Open Source;

Multiplataforma;

Java;

http://www.jmonkeyengine.org/

Unity

Comercial com versão gratuita

Windows e Mac;

C#;

http://unity3d.com/

XNA

Gratuito

Windows e Xbox ;

C#;

http://creators.xna.com/en-US/

Comparação Performance (FPS)

(Jonathan 2011/2012)

Ogre 3D

Ogre 3D

Breve História

Por que Ogre 3D?

Por que C++?

Ogre 3D

Defeitos:Criando Ambiente e Criar Primeiro Projeto;Tempo de Compilação;

Soluções:Ogre App Wizard;Paciência e/ou PC da Nasa ;

PrincipaisTrabalhos

Garshasp - The Monster Slayer;

Family Farm;

Project Aftershock;

TorchLight;

Garshap

Family Farm

Project AfterShock

TorchLight

Torchlight

Desenvolvido pela Runnic Games;

Lançado em outubro de 2009;

Maioria das bibliotecas utilizadas são Open Source;

Torchlight

No Dia 6 de agosto de 2010 já tinha registrados bem mais de 600 mil vendas (fonte: Gamasutra);

Foi pago pelo jogo 20 dólares (caixa) e 10 dólares pelo download.

Desenvolvimento de Jogos –

Computação Gráfica

Coordenadas

LuzesLuzes direcionais;

Ponto de Luz;

Região de Luz.

Câmera

Cenas

Cenas

Objetos

Composição:

Estrutura física (Mesh);

Pintura.

Mesh

Composição:

Vértices;

Arestas;

Faces;

Relações.

Mesh

Mesh

Pintura

Por cores (RGBA) aplicado em vértices;

Por textura através de mapeamento.

Pintura por Cores

Pintura por textura

Pintura por textura

Pintura por textura

Funções ImportantesMovimento;

Escala;

Rotação.

Rotação em X

Rotação em Y

Rotação em Z

Rotação em Z

Entendendo como funciona um jogo

Loop Principal

123456789

1011

void main(){   loadResources();     while(!quit())    {        readInput();        updateGame();        drawGame();    }}

Ferramentas de Auxílio

Modelagem 3D

Blender 3D ( www.blender.org );

Blender2Ogre ( https://code.google.com/p/blender2ogre );

Ogre Meshy.

Desenvolvimento

Ogre app Wizard;

Ogitor;

Desenvolvendo com Ogre 3D

Ogre 3D em 10 slides (1 de 10)

Grafos;

Managers.

Nós;

Ogre 3D em 10 slides (2 de 10)

Iniciando Ogre: ogre = new Ogre::Root(“arquivo.cfg”);

Iniciando Manager de Cena:ogre->createSceneManager(tipo);

Criando um nó:manager->getRootSceneNode()->createChildSceneNode("no1");

Ogre 3D em 10 slides (3 de 10)

Entidades;

.mesh e .materials;

Ogre 3D em 10 slides (4 de 10)

Criando entidade:manager->createEntity(“arquivo.mesh"));

Associando entidade a um nó:no->attachObject(entidade);

Ogre 3D em 10 slides (5 de 10)

Criando Luz:manager->createLight("Luz");

Criando Câmera:manager>createCamera("Camera");

Ogre 3D em 10 slides (6 de 10)

Posicionando Nósno>setPosition( 10, 20, 30 );

no->setPosition(Ogre::Vector3( 10, 20, 30 ));

Ogre 3D em 10 slides (7 de 10)

Girando 90º em X:no->pitch(Ogre::Degree(90));

Girando 90º em Y:no->yaw(Ogre::Degree(90));

Girando 90º em Z:no->roll(Ogre::Degree(90));

Ogre 3D em 10 slides (8 de 10)

Renderizando o Frame Atual:mRoot->renderOneFrame();

Ogre 3D em 10 slides (9 de 10)

Mouse:OIS::MouseListener;

Teclado:OIS::KeyListener;

Joystick:OIS::OISJoyStick;

Ogre 3D em 10 slides (10 de 10)

Let’s Play!!!

Contato:http://www.slideshare.net/jonathanblacknight/jonathan.ohara.araujo@gmail.com@jonathan_oharahttp://shydsgames.com/http://www.pontov.com.br/

FIM