introdução ao desenvolvimento de jogos com unity3d

69

Upload: caio-vinicius-marques-teixeira

Post on 20-Jul-2015

337 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Introdução ao desenvolvimento de jogos com unity3d
Page 2: Introdução ao desenvolvimento de jogos com unity3d

Quem sou eu?Caio Vinicius Marques TeixeiraBacharelando em Sistemas de Informação

EACH-USP

Técnico em Informática

ETEC de Poá

Page 3: Introdução ao desenvolvimento de jogos com unity3d

Minhas experiências

TCCEventosGame JamsPalestras

Page 4: Introdução ao desenvolvimento de jogos com unity3d

Minhas experiências

FEA-USP / GETECGames for Change EuropeCoursera

Page 5: Introdução ao desenvolvimento de jogos com unity3d
Page 6: Introdução ao desenvolvimento de jogos com unity3d
Page 7: Introdução ao desenvolvimento de jogos com unity3d
Page 8: Introdução ao desenvolvimento de jogos com unity3d
Page 9: Introdução ao desenvolvimento de jogos com unity3d
Page 10: Introdução ao desenvolvimento de jogos com unity3d
Page 11: Introdução ao desenvolvimento de jogos com unity3d
Page 12: Introdução ao desenvolvimento de jogos com unity3d
Page 13: Introdução ao desenvolvimento de jogos com unity3d
Page 14: Introdução ao desenvolvimento de jogos com unity3d
Page 15: Introdução ao desenvolvimento de jogos com unity3d
Page 16: Introdução ao desenvolvimento de jogos com unity3d
Page 17: Introdução ao desenvolvimento de jogos com unity3d
Page 18: Introdução ao desenvolvimento de jogos com unity3d
Page 19: Introdução ao desenvolvimento de jogos com unity3d

Mas, não quero fazer jogos...

Page 20: Introdução ao desenvolvimento de jogos com unity3d

Tappy PlaneVamos aprender na prática!

Page 21: Introdução ao desenvolvimento de jogos com unity3d

Unity: Views

http://docs.unity3d.com/Manual/LearningtheInterface.html

Page 22: Introdução ao desenvolvimento de jogos com unity3d

Project ViewAcessar e gerenciar assets◦ Assets: Recursos gráficos, sons, códigos, etc.

http://docs.unity3d.com/Manual/ProjectView.html

Page 23: Introdução ao desenvolvimento de jogos com unity3d

Unity PackagesPacote de assets◦ Compactado

◦ Compartilhar recursos entre diferentes projetos

Page 24: Introdução ao desenvolvimento de jogos com unity3d

Scene ViewPermite visualizar, posicionar e gerenciar objetos no jogo.

Permite alterações com o jogo em execução!

http://docs.unity3d.com/Manual/SceneView.html

Page 25: Introdução ao desenvolvimento de jogos com unity3d

Hierarchy ViewExibe todos os objetos na cena atual

http://docs.unity3d.com/Manual/Hierarchy.html

Page 26: Introdução ao desenvolvimento de jogos com unity3d

Toolbar

http://docs.unity3d.com/Manual/Toolbar.html

Page 27: Introdução ao desenvolvimento de jogos com unity3d

Arquitetura Entity-ComponentTodo objeto na Unity é uma “Entidade”.◦ Permite desacoplamento de código

◦ Você não precisa mexer em código de baixo nível

http://gameprogrammingpatterns.com/component.html

Page 28: Introdução ao desenvolvimento de jogos com unity3d

Arquitetura Entity-Component

Componentes◦ Definem “comportamentos” de objetos.

◦ Podem ser programados (scripts).

http://gameprogrammingpatterns.com/component.html

Page 29: Introdução ao desenvolvimento de jogos com unity3d

Inspector

Inspector view◦ Permite alterar propriedades de componentes e variáveis

públicas de scripts.

◦ Alterações em tempo de execução!

http://docs.unity3d.com/Manual/Inspector.html

Page 30: Introdução ao desenvolvimento de jogos com unity3d

Game ViewJogo rodando. :)

http://docs.unity3d.com/Manual/GameView.html

Page 31: Introdução ao desenvolvimento de jogos com unity3d

RigidbodyComo simular gravidade?

Page 32: Introdução ao desenvolvimento de jogos com unity3d

CollidersAvião e obstáculos são apenas imagens na tela

Como saber que é um objeto sólido?

Colliders!

Page 33: Introdução ao desenvolvimento de jogos com unity3d

Scripts Scripts = Componentes

Como criar? Como adicionar a um objeto.

Hello World!

Page 34: Introdução ao desenvolvimento de jogos com unity3d

CallbacksMétodos executados automaticamente pela engine.

Start() – Executa quando um objeto é criado

Update () – Executa uma vez a cada frame

FixedUpdate() – Idem ao Update, deve ser usado para física e entrada.

Page 35: Introdução ao desenvolvimento de jogos com unity3d

Vector 3Como representar movimentos?

Vetores!

Page 36: Introdução ao desenvolvimento de jogos com unity3d

Rigidbody.velocityAltera a velocidade de um rigidbody com um Vector.

Page 37: Introdução ao desenvolvimento de jogos com unity3d

InputKeyCodes

Input.GetKey

Page 38: Introdução ao desenvolvimento de jogos com unity3d

Scripts no InspectorVariáveis públicas são exibidas no Inspector.

Page 39: Introdução ao desenvolvimento de jogos com unity3d

ObstáculosComo fazer a progressão da cena?

Duas abordagens:◦ Personagem e câmera se movem para frente

◦ Cenário movimenta para trás

Page 40: Introdução ao desenvolvimento de jogos com unity3d

PrefabsObjetos “pré-fabricados”.◦ Permite salvar um gameobject e seus componentes.

◦ Gerenciar múltiplos clones

Método Instantiate◦ Permite criar clones de objetos.

Page 41: Introdução ao desenvolvimento de jogos com unity3d

Destruir objetos passados?Método Destroy()

Callbacks OnBecameVisible e OnBecameInvisible

Page 42: Introdução ao desenvolvimento de jogos com unity3d

Não é a melhor solução...Garbage Collector◦ Pode rodar a qualquer instante

◦ Quedas de framerate...

Page 43: Introdução ao desenvolvimento de jogos com unity3d

Solução ideal: Object poolingReutilizar objetos◦ Objeto foi destruído?

◦ Adicionar em uma lista de inativos

◦ Precisa de um novo objeto?◦ Lista de inativos está vazia?

◦ Crie um novo

◦ Não está vazia?

◦ Reutilize

Page 44: Introdução ao desenvolvimento de jogos com unity3d

GameoverDetectar colisão!◦ Recarregar jogo.

Page 45: Introdução ao desenvolvimento de jogos com unity3d

Unity UIRecurso novo!◦ Unity 4.6 Beta.

Canvas◦ Text

◦ Button

Page 46: Introdução ao desenvolvimento de jogos com unity3d

ColisãoCallbacks OnCollisionEnter e OnCollisionExit

Objeto Collision

Page 47: Introdução ao desenvolvimento de jogos com unity3d

CenasCenas -> Níveis do jogo

Devem ser salvas e adicionadas ao build.

Application.LoadLevel

Page 48: Introdução ao desenvolvimento de jogos com unity3d

Pontuação

Como fazer?

Page 49: Introdução ao desenvolvimento de jogos com unity3d

TriggersTriggers◦ Detectar se objeto está em uma determinada “zona”.

Page 50: Introdução ao desenvolvimento de jogos com unity3d

Break

Page 51: Introdução ao desenvolvimento de jogos com unity3d

3D

Page 52: Introdução ao desenvolvimento de jogos com unity3d

3D vs. 2DSão independentes!◦ 2D é recente.

◦ Podem coexistir no mesmo projeto e cena!

Page 53: Introdução ao desenvolvimento de jogos com unity3d

Motores físicosIndependentes◦ Rigidbody vs. Rigidbody2D

◦ Collider vs. Collider2D

Page 54: Introdução ao desenvolvimento de jogos com unity3d

Standard AssetsAssets padrões da Unity◦ Unity Packages

Page 55: Introdução ao desenvolvimento de jogos com unity3d

Antes, não faça isso em casa!Vamos brincar um pouco com física e alguns standard assets.◦ Sem otimização alguma

Page 56: Introdução ao desenvolvimento de jogos com unity3d

Unity Terrain

Page 57: Introdução ao desenvolvimento de jogos com unity3d

First Person ControllerStandard Asset◦ Implementa movimentação (pulo, andar, etc)

◦ Implementa camera

Page 58: Introdução ao desenvolvimento de jogos com unity3d

Brincadeiras com físicaVamos criar uma barreira gigante de caixas e derruba-la. ◦ Otimização nula!

Page 59: Introdução ao desenvolvimento de jogos com unity3d

Explosão?Sistema de partículas◦ Shuriken

Explosão do PhysX

Page 60: Introdução ao desenvolvimento de jogos com unity3d

PublicaçãoComo gerar executáveis? :)◦ Windows, Linux, Mac

◦ Web◦ Unity Web Player

◦ WebGL (Coming Soon)

◦ Android

◦ etc...

Page 61: Introdução ao desenvolvimento de jogos com unity3d

Antes de terminar, Bonus Stage

Page 62: Introdução ao desenvolvimento de jogos com unity3d

Como estudar Unity?Unity Learn (http://unity3d.com/pt/learn)

Unity 3D Student (http://www.unity3dstudent.com/)

Unity Cookie (http://cgcookie.com/unity/category/tutorials/)

Digital Tutors (http://www.digitaltutors.com/training/unity-tutorials)

Reddit (http://www.reddit.com/r/unity3D)

Page 63: Introdução ao desenvolvimento de jogos com unity3d

Evite Cargo Cult Programming!

Page 64: Introdução ao desenvolvimento de jogos com unity3d

Aprenda conceitos gerais!Aprenda a teoria, o que acontece “por baixo”

Livros◦ Introdução ao desenvolvimento de games, Steve

Rabin, vol.2

Sites

◦ Game Developer – Como ser um programador de jogos? http://gamedeveloper.com.br/

◦ Game Programming Patterns -http://gameprogrammingpatterns.com/

Page 65: Introdução ao desenvolvimento de jogos com unity3d

Faça jogos!“A melhor forma de aprender a fazer jogos, é fazendo.”

“Você fará pelo menos 10 jogos ruins antes de fazer um realmente bom.”

Page 66: Introdução ao desenvolvimento de jogos com unity3d

EventosConferências

Exposições

Game Jams

IGDA

Etc.

Page 67: Introdução ao desenvolvimento de jogos com unity3d

Participem!

Reuniões todas as terças, às 16:00 na sala 221 do Titanic.

Page 68: Introdução ao desenvolvimento de jogos com unity3d

Dúvidas?

Page 69: Introdução ao desenvolvimento de jogos com unity3d

Obrigado.

[email protected]

github.com/caioteixeira

fb.com/caio.vinicius.m.teixeira