desenvolvimento de jogos com ogre 3d - mini curso unip

89
Desenvolvendo um jogo 3D com Ogre 3D e C++ Autor: Jonathan Ohara de Araujo

Upload: jonathanblacknight

Post on 24-May-2015

683 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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

Autor: Jonathan Ohara de Araujo

Page 2: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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.

Page 3: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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.

Page 4: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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

Page 5: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Shyds Games – Tumbuhttp://shydsgames.com/

Page 6: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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

Page 7: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Shyds Games – Sem Nome ( On Hold )

http://shydsgames.com/

Page 8: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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

Page 9: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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

Artigos sobre desenvolvimentos de jogos em geral;

Escrevo na coluna sobre Ogre3D

Page 10: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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.

Page 11: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Introdução

Page 12: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Desenvolvimento de Jogos

2D;

3D.

Page 13: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D

Ogre 3D;

C++.

Page 14: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Indústria e Curiosidades

Page 15: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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;

Page 16: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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).

Page 17: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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)

Page 18: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Eventos Interessantes

IGF (Independent Games Festival);

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

Page 19: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Mitos

Page 20: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

É impossível fazer um jogo sozinho!!!

Page 21: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

BBraid (2008) by Jonathan Blow

Page 22: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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

Page 23: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Minecraft (2009) by Markus “Notch”

Page 24: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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

licenças e softwares!!!

Page 25: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Meu primeiro jogo terá gráficos perfeitos e 1000

horas de game play!!!

Page 26: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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

Page 27: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Desenvolvimento de Jogos –

Api’s Gráficas

Page 28: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Api´s Gráficas

O que são?

Api gráfica == Game Engine???

Page 29: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Api’s

OpenGL (1992);

Direct3D (1995).

Page 30: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

OpenGL

Page 31: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Direct 3D

Page 32: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Desenvolvimento de Jogos –

Engines Físicas

Page 33: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Engines Físicas

O que são?

Por que e quando usa-las?

Page 34: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Principais Engines Físicas

Nvidia PhysX

Havok Physics;

Bullet;

Open Dynamics Engine (ODE).

Page 35: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Principais Engines Físicas

Page 36: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Desenvolvimento de Jogos –

Game Engines

Page 37: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Game Engines

Conceito;

Função;

Componentes.

Page 38: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Game EnginesOgre 3D*;

Java Monkey Engine;

Unity;

Microsoft XNA.

Page 39: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D*

Open Source;

Multiplataforma;

C++;

http://www.ogre3d.org/

Page 40: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Java Monkey Engine

Open Source;

Multiplataforma;

Java;

http://www.jmonkeyengine.org/

Page 41: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Unity

Comercial com versão gratuita

Windows e Mac;

C#;

http://unity3d.com/

Page 42: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

XNA

Gratuito

Windows e Xbox ;

C#;

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

Page 43: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Comparação Performance (FPS)

(Jonathan 2011/2012)

Page 44: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D

Page 45: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D

Breve História

Por que Ogre 3D?

Por que C++?

Page 46: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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 ;

Page 47: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

PrincipaisTrabalhos

Garshasp - The Monster Slayer;

Family Farm;

Project Aftershock;

TorchLight;

Page 48: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Garshap

Page 49: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Family Farm

Page 50: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Project AfterShock

Page 51: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

TorchLight

Page 52: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Torchlight

Desenvolvido pela Runnic Games;

Lançado em outubro de 2009;

Maioria das bibliotecas utilizadas são Open Source;

Page 53: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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.

Page 54: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Desenvolvimento de Jogos –

Computação Gráfica

Page 55: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Coordenadas

Page 56: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

LuzesLuzes direcionais;

Ponto de Luz;

Região de Luz.

Page 57: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Câmera

Page 58: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Cenas

Page 59: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Cenas

Page 60: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Objetos

Composição:

Estrutura física (Mesh);

Pintura.

Page 61: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Mesh

Composição:

Vértices;

Arestas;

Faces;

Relações.

Page 62: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Mesh

Page 63: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Mesh

Page 64: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Pintura

Por cores (RGBA) aplicado em vértices;

Por textura através de mapeamento.

Page 65: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Pintura por Cores

Page 66: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Pintura por textura

Page 67: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Pintura por textura

Page 68: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Pintura por textura

Page 69: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Funções ImportantesMovimento;

Escala;

Rotação.

Page 70: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Rotação em X

Page 71: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Rotação em Y

Page 72: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Rotação em Z

Page 73: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Rotação em Z

Page 74: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Entendendo como funciona um jogo

Loop Principal

123456789

1011

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

Page 75: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ferramentas de Auxílio

Page 76: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Modelagem 3D

Blender 3D ( www.blender.org );

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

Ogre Meshy.

Page 77: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Desenvolvimento

Ogre app Wizard;

Ogitor;

Page 78: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Desenvolvendo com Ogre 3D

Page 79: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D em 10 slides (1 de 10)

Grafos;

Managers.

Nós;

Page 80: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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");

Page 81: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D em 10 slides (3 de 10)

Entidades;

.mesh e .materials;

Page 82: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D em 10 slides (4 de 10)

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

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

Page 83: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D em 10 slides (5 de 10)

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

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

Page 84: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D em 10 slides (6 de 10)

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

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

Page 85: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

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));

Page 86: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D em 10 slides (8 de 10)

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

Page 87: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D em 10 slides (9 de 10)

Mouse:OIS::MouseListener;

Teclado:OIS::KeyListener;

Joystick:OIS::OISJoyStick;

Page 88: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

Ogre 3D em 10 slides (10 de 10)

Let’s Play!!!

Contato:http://www.slideshare.net/jonathanblacknight/[email protected]@jonathan_oharahttp://shydsgames.com/http://www.pontov.com.br/

Page 89: Desenvolvimento de jogos com ogre 3D - Mini Curso Unip

FIM