introdução ao desenvolvimento de jogos com unity3d

Post on 20-Jul-2015

337 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

EACH-USP

Técnico em Informática

ETEC de Poá

Minhas experiências

TCCEventosGame JamsPalestras

Minhas experiências

FEA-USP / GETECGames for Change EuropeCoursera

Mas, não quero fazer jogos...

Tappy PlaneVamos aprender na prática!

Unity: Views

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

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

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

Unity PackagesPacote de assets◦ Compactado

◦ Compartilhar recursos entre diferentes projetos

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

Hierarchy ViewExibe todos os objetos na cena atual

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

Toolbar

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

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

Arquitetura Entity-Component

Componentes◦ Definem “comportamentos” de objetos.

◦ Podem ser programados (scripts).

http://gameprogrammingpatterns.com/component.html

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

Game ViewJogo rodando. :)

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

RigidbodyComo simular gravidade?

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

Como saber que é um objeto sólido?

Colliders!

Scripts Scripts = Componentes

Como criar? Como adicionar a um objeto.

Hello World!

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.

Vector 3Como representar movimentos?

Vetores!

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

InputKeyCodes

Input.GetKey

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

ObstáculosComo fazer a progressão da cena?

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

◦ Cenário movimenta para trás

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

◦ Gerenciar múltiplos clones

Método Instantiate◦ Permite criar clones de objetos.

Destruir objetos passados?Método Destroy()

Callbacks OnBecameVisible e OnBecameInvisible

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

◦ Quedas de framerate...

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

GameoverDetectar colisão!◦ Recarregar jogo.

Unity UIRecurso novo!◦ Unity 4.6 Beta.

Canvas◦ Text

◦ Button

ColisãoCallbacks OnCollisionEnter e OnCollisionExit

Objeto Collision

CenasCenas -> Níveis do jogo

Devem ser salvas e adicionadas ao build.

Application.LoadLevel

Pontuação

Como fazer?

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

Break

3D

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

◦ Podem coexistir no mesmo projeto e cena!

Motores físicosIndependentes◦ Rigidbody vs. Rigidbody2D

◦ Collider vs. Collider2D

Standard AssetsAssets padrões da Unity◦ Unity Packages

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

Unity Terrain

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

◦ Implementa camera

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

Explosão?Sistema de partículas◦ Shuriken

Explosão do PhysX

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

◦ Web◦ Unity Web Player

◦ WebGL (Coming Soon)

◦ Android

◦ etc...

Antes de terminar, Bonus Stage

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)

Evite Cargo Cult Programming!

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/

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

EventosConferências

Exposições

Game Jams

IGDA

Etc.

Participem!

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

Dúvidas?

Obrigado.

caio.vinicius.teixeira@usp.br

github.com/caioteixeira

fb.com/caio.vinicius.m.teixeira

top related