Desenvolvendo jogos com unity

79
DESENVOLVENDO JOGOS COM UNITY Unity 3D Erick Mendonça – [email protected]

description

Apresentação de slides para o minicurso Desenvolvendo jogos com Unity que ministrei na Terceira Semana de Computação da Universidade Federal de Sergipe, em dezembro de 2013.

Transcript of Desenvolvendo jogos com unity

Page 1: Desenvolvendo jogos com unity

DESENVOLVENDO JOGOS COM UNITY Unity 3D

Erick Mendonça – [email protected]

Page 2: Desenvolvendo jogos com unity

AGENDA

Desenvolvimento de jogos

Mercado de games

Indie games

Oportunidades

Unity

Histórico

Facilidades

Meus jogos vão rodar onde?

E dá pra usar no meu computador?

O que já fizeram?

Interface

Editor de Cena

Editor de Terreno

Criando objetos

Criando scripts

Hello World: Modern Warfare

Importando modelos, texturas e sons

Criando um menu

Exportando o jogo

Page 3: Desenvolvendo jogos com unity

MERCADO DE GAMES

Font

e: V

GSa

les

(http

://vg

sale

s.w

ikia

.com

/w

iki/

Vid

eo_gam

e_in

dus

try)

Page 4: Desenvolvendo jogos com unity

MERCADO DE GAMES

Font

e: V

GSa

les

(http

://vg

sale

s.w

ikia

.com

/w

iki/

Vid

eo_gam

e_in

dus

try)

Page 5: Desenvolvendo jogos com unity

MERCADO DE GAMES

2012: 63 bilhões de dólares (incluindo jogos para smartphones e tablets). *

Há 10 anos, a indústria movimentava 33,2 bilhões de dólares. Se ajustarmos esse valor com a inflação, chegamos a 41,43 bilhões.

Em 2007, o total ajustado era de 46,08 bilhões.

O que aconteceu entre 2007 e 2013?

* Fonte: Reuters (http://in.reuters.com/article/2013/06/10/gameshow-e-idINDEE9590DW20130610)

Page 6: Desenvolvendo jogos com unity

MERCADO DE GAMES: MOBILE

Font

e: PW

C (ht

tp:/

/w

ww

.pw

c.co

m/g

x/en/

glo

ba

l-ent

ert

ain

ment

-med

ia-o

utlo

ok/

seg

ment

-ins

ight

s/vi

deo-g

am

es.

jhtm

l)

Page 7: Desenvolvendo jogos com unity

MERCADO DE GAMES: ONLINE

Font

e: PW

C (ht

tp:/

/w

ww

.pw

c.co

m/g

x/en/

glo

ba

l-ent

ert

ain

ment

-med

ia-o

utlo

ok/

seg

ment

-ins

ight

s/vi

deo-g

am

es.

jhtm

l)

Page 8: Desenvolvendo jogos com unity

MERCADO DE GAMES: COMPARATIVO

Font

e: PW

C (ht

tp:/

/w

ww

.pw

c.co

m/g

x/en/

glo

ba

l-ent

ert

ain

ment

-med

ia-o

utlo

ok/

seg

ment

-ins

ight

s/vi

deo-g

am

es.

jhtm

l)

Page 9: Desenvolvendo jogos com unity

MERCADO DE GAMES: BRASIL

Quarto maior mercado de games (2012).

Superou o Reino Unido em faturamento (2013). Crescimento do mercado total de 25% em 2012-2013!

Distribuição digital: preços mais baixos.

Smartphones em alta!

Fontes:

G1: http://g1.globo.com/tecnologia/games/brasil-game-show/2013/noticia/2013/10/mercado-de-games-no-brasil-ja-fatura-mais-do-que-no-reino-unido-diz-gfk.html

Folha de São Paulo: http://www1.folha.uol.com.br/tec/2013/10/1361479-brasil-e-galinha-dos-ovos-dourados-do-mercado-de-games-diz-gfk.shtml

Page 10: Desenvolvendo jogos com unity

MERCADO DE GAMES: BRASIL

Vale-cultura não inclui jogos...

... Mas a lei Rouanet, sim!

Toren: primeiro jogo beneficiado pela Lei Rouanet, foi autorizar a arrecadar R$ 370 mil, e em agosto já haviam arrecadado R$ 75 mil.

Fonte:

Folha de São Paulo: http://www1.folha.uol.com.br/tec/2013/08/1324415-game-toren-levanta-r-40-mil-pela-lei-rouanet-meta-e-arrecadar-370-mil.shtml

Page 11: Desenvolvendo jogos com unity

UNITY

HistóricoFacilidadesMeus jogos vão rodar onde?E dá pra usar no meu computador?O que já fizeram?

Page 12: Desenvolvendo jogos com unity

HISTÓRICO

2001: Início do desenvolvimento.

2004: Fundação da empresa Unity Technologies, na Dinamarca.

2005: Unity 1 lançado na WWDC da Apple, somente para Mac na época.

2007: Unity 2.0.

2008: Unity iPhone, companhia triplicou de tamanho, provedor de middleware autorizado para o Wii.

2009: Primeira versão gratuita!

Page 13: Desenvolvendo jogos com unity

HISTÓRICO

2010: Asset Store, 250k desenvolvedores, Unity 3.0, Unity Android.

2011: 500k desenvolvedores, Rochard (primeiro jogo na PSN).

2012: Unity 3.5, Preview do Unity 4 e suporte a Linux, 1M desenvolvedores.

2013: Unity 2D Tools, Unity Cloud, Unity Games, Publicação gratuita, Xbox One, Blackberry 10.

Page 14: Desenvolvendo jogos com unity

FACILIDADES

IDE totalmente integrada ao motor/engine

Multiplataforma

Comunidade ativa

Documentação rica

Fácil colaboração

Loja de recursos (Asset Store)

Linguagens: Boo, Javascript e C#

Page 15: Desenvolvendo jogos com unity

FACILIDADES

Preview instantâneo

Efeitos prontos: Shaders, Sombras, HDR, Lens Effects, Ambient Occlusion e muitos outros!

Suporte a: bump mapping, reflection mapping, parallax mapping, screen space ambientocclusion (SSAO), dynamic shadows using shadow maps, render-to-texture, full-screen post-processingeffects.

Suporta shaders desenvolvidos em programação declarativa: HLSL, GLSL, Cg.

Suporta PhysX.

Suporta assets em formatos:

3ds Max, Maya, Softimage, Blender, Modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks, Allegorithmic Substance, SketchUp, 3dStudio.

Page 16: Desenvolvendo jogos com unity

FACILIDADES

Rede e internet.

Personalização e PreFabs.

Drag n’ Drop

Direct3D e OpenGL

Direct3D (Windows, inclusive DirectX 11), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS), e APIs proprietárias (Wii)

Scripting com suporte a banco de dados, expressões regulares, XML, arquivos e rede.

Algumas funcionalidades estão disponíveis apenas na versão Pro.

Page 17: Desenvolvendo jogos com unity

MEUS JOGOS VÃO RODAR ONDE?

Unity (free):

iOS,

Android,

Windows Store,

Windows Phone,

BlackBerry,

Desktop,

Web.

Gratuito!

Unity Pro:

Pro publishing for iOS,

Android,

Windows Store,

Windows Phone,

BlackBerry.

Disponível em licença(US$ 1500) ou assinatura(US$ 75/mês).

Bônus: Consoles!

Wii U,

Xbox 360,

Xbox One (2014),

PS3,

PS4,

PS Vita / Mobile.

Algumas plataformaspossuem restrições.

Page 18: Desenvolvendo jogos com unity

E DÁ PRA USAR NO MEU COMPUTADOR?

Requisitos de Sistema para o desenvolvimento com Unity:

Windows XP SP2 ou posterior; Windows 7 SP1; Mac OS X "Snow Leopard" 10.6 ouposterior.

Placas de vídeo com capacidades de DirectX 9 (shader model 2.0). Qualquer placafeita desde 2004 deve funcionar.

Page 19: Desenvolvendo jogos com unity

DETALHES ESPECÍFICOS DE PLATAFORMAS

iOS:

OS X

Xcode 4.3

Somente a versão do OS X faz build para iOS!

Android:

Android SDK e JDK

Android 2.0 ou superior.

Recomendado:

ARMv7 CPU ou superior,

Suporte a OpenGLES2.0.

Windows Store/Phone:

Windows 8 Pro

Windows Phone SDK 8.0

Visual Studio 2012

Não é possível desenvolverapps de Windows Phone 8 no Windows 7 ou Server 2008/2012!

Page 20: Desenvolvendo jogos com unity

EDITOR DE TERRENOS

Árvores,

Arbustos,

Pedras,

Grama,

Texturas,

Lightmaps,

Mais!

Page 21: Desenvolvendo jogos com unity

FÍSICA

Suporte ao Nvidia PhysX.

Corpos rígidos e macios (soft and rigid bodies).

Tecidos (cloth).

Materiais.

Ragdolls.

Juntas.

Carros.

Partículas.

Page 22: Desenvolvendo jogos com unity

SOM

Filtros, distorção,

reverberação, ecos,

3D ou 2D,

distância e volume.

Page 23: Desenvolvendo jogos com unity

CÓDIGO

Javascript

C#

Boo (python-like)

Integrado com IDE’s

(Visual Studio, por exemplo)

Código multiplataforma

(Monodevelop)

Page 24: Desenvolvendo jogos com unity

O QUE JÁ FIZERAM?

Page 25: Desenvolvendo jogos com unity

UNITE 2012 Várias jogos!

Page 26: Desenvolvendo jogos com unity

INTERFACE GERAL

Page 27: Desenvolvendo jogos com unity
Page 28: Desenvolvendo jogos com unity
Page 29: Desenvolvendo jogos com unity
Page 30: Desenvolvendo jogos com unity
Page 31: Desenvolvendo jogos com unity
Page 32: Desenvolvendo jogos com unity
Page 33: Desenvolvendo jogos com unity
Page 34: Desenvolvendo jogos com unity
Page 35: Desenvolvendo jogos com unity
Page 36: Desenvolvendo jogos com unity
Page 37: Desenvolvendo jogos com unity
Page 38: Desenvolvendo jogos com unity
Page 39: Desenvolvendo jogos com unity
Page 40: Desenvolvendo jogos com unity
Page 41: Desenvolvendo jogos com unity
Page 42: Desenvolvendo jogos com unity
Page 43: Desenvolvendo jogos com unity
Page 44: Desenvolvendo jogos com unity
Page 45: Desenvolvendo jogos com unity
Page 46: Desenvolvendo jogos com unity
Page 47: Desenvolvendo jogos com unity
Page 48: Desenvolvendo jogos com unity
Page 49: Desenvolvendo jogos com unity
Page 50: Desenvolvendo jogos com unity
Page 51: Desenvolvendo jogos com unity
Page 52: Desenvolvendo jogos com unity
Page 53: Desenvolvendo jogos com unity
Page 54: Desenvolvendo jogos com unity
Page 55: Desenvolvendo jogos com unity
Page 56: Desenvolvendo jogos com unity
Page 57: Desenvolvendo jogos com unity
Page 58: Desenvolvendo jogos com unity
Page 59: Desenvolvendo jogos com unity
Page 60: Desenvolvendo jogos com unity
Page 61: Desenvolvendo jogos com unity
Page 62: Desenvolvendo jogos com unity
Page 63: Desenvolvendo jogos com unity

CONCEITOS

Game Object Posição

Escala

Rotação

Assets Imagens

Modelos 3D

Sons

Outros arquivos

Packages: permite transferir gameobjects e assets, com suas dependências

Create Other

Components: atribuem comportamentos, aparência e funções. São anexados aos objetos.

Colliders

Camera: estáticas, animadas, anexadas a personagens ou a objetos do cenário. Podem receber efeitos: motion blur, lens flare, luz.

Skybox

Controle de Versão

Page 64: Desenvolvendo jogos com unity

CONCEITOS

Scenes

Áreas do jogo

Menus

Fases

Telas

Áudio

Audio Source

Audio Listener

Page 65: Desenvolvendo jogos com unity

CHÃO

Plane

Texture

Bumpmap

Page 66: Desenvolvendo jogos com unity

CAIXA

Component

Rigidbody: objetos que serão afetados pela física do jogo. Massa

Gravidade

Velocidade

Atrito

Detecção de colisão Componente Collider

Box Collider, Mesh Collider

Textura Normal

Difusa

Malha

Page 67: Desenvolvendo jogos com unity

LUZES

Direcional

Pontual

Holofote / spotlight

Area

Page 68: Desenvolvendo jogos com unity

BOLA

Physics

Material

Page 69: Desenvolvendo jogos com unity

ÁRVORE

Cyllinder

Page 70: Desenvolvendo jogos com unity

PREFABS

Conteúdo compartilhado

Padronização de objetos

Otimização

Centralização de alterações

Page 71: Desenvolvendo jogos com unity

SCRIPTS

Variável: no código e no editor

Scripts modulares permitem atribuir diversos comportamentos a objetos diferentes

Veja cada script como uma classe

Gameobjects

Transform

Rigidbody

Collider

Audio

Page 72: Desenvolvendo jogos com unity

MÉTODOS

Start

Update

FixedUpdate

OnCollisionEnter

OnCollisionStay

OnCollisionOut

Page 73: Desenvolvendo jogos com unity

CHARACTER CONTROLLER

PushBodies

OnControllerColliderHit

Page 74: Desenvolvendo jogos com unity

BUILDING

Não esqueça de adicionar cenas

Page 75: Desenvolvendo jogos com unity

CONTROLE DE VERSÃO

Usando Git:

Edit > Project Settings > Editor

Mode: Visible Meta Files

Asset Serialization: Force Text

Page 76: Desenvolvendo jogos com unity

CONTROLE DE VERSÃO

.gitignore

(Arquivos que podem ser ignorados no controle de versão)

Page 77: Desenvolvendo jogos com unity

REFERÊNCIAS E MATERIAIS DE ESTUDO

Canal GamesIndie no Youtube: http://www.youtube.com/user/GamesIndie

Documentação do Unity: http://unity3d.com/learn/documentation

Livro: Beginning 3D Game Development with Unity 4: http://www.amazon.co...

Unity 3D Training Video: http://walkerboystudio.com/html/unity...

Page 78: Desenvolvendo jogos com unity

DÚVIDAS

Page 79: Desenvolvendo jogos com unity

DESENVOLVENDO JOGOS COM UNITY Unity 3D

Erick Mendonça – [email protected]