Introdução ao desenvolvimento de jogos com unity3d

1.108 visualizações

Publicada em

Slides do Workshop sobre introdução ao desenvolvimento de jogos que ministrei na EACH USP.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Introdução ao desenvolvimento de jogos com unity3d

  1. 1. Quem sou eu? Caio Vinicius Marques Teixeira Bacharelando em Sistemas de Informação EACH-USP Técnico em Informática ETEC de Poá
  2. 2. Minhas experiências TCC Eventos Game Jams Palestras
  3. 3. Minhas experiências FEA-USP / GETEC Games for Change Europe Coursera
  4. 4. Mas, não quero fazer jogos...
  5. 5. Tappy Plane Vamos aprender na prática!
  6. 6. Unity: Views http://docs.unity3d.com/Manual/LearningtheInterface.html
  7. 7. Project View Acessar e gerenciar assets ◦ Assets: Recursos gráficos, sons, códigos, etc. http://docs.unity3d.com/Manual/ProjectView.html
  8. 8. Unity Packages Pacote de assets ◦ Compactado ◦ Compartilhar recursos entre diferentes projetos
  9. 9. Scene View Permite visualizar, posicionar e gerenciar objetos no jogo. Permite alterações com o jogo em execução! http://docs.unity3d.com/Manual/SceneView.html
  10. 10. Hierarchy View Exibe todos os objetos na cena atual http://docs.unity3d.com/Manual/Hierarchy.html
  11. 11. Toolbar http://docs.unity3d.com/Manual/Toolbar.html
  12. 12. Arquitetura Entity-Component Todo 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
  13. 13. Arquitetura Entity-Component Componentes ◦ Definem “comportamentos” de objetos. ◦ Podem ser programados (scripts). http://gameprogrammingpatterns.com/component.html
  14. 14. 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
  15. 15. Game View Jogo rodando. :) http://docs.unity3d.com/Manual/GameView.html
  16. 16. Rigidbody Como simular gravidade?
  17. 17. Colliders Avião e obstáculos são apenas imagens na tela Como saber que é um objeto sólido? Colliders!
  18. 18. Scripts Scripts = Componentes Como criar? Como adicionar a um objeto. Hello World!
  19. 19. Callbacks Mé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.
  20. 20. Vector 3 Como representar movimentos? Vetores!
  21. 21. Rigidbody.velocity Altera a velocidade de um rigidbody com um Vector.
  22. 22. Input KeyCodes Input.GetKey
  23. 23. Scripts no Inspector Variáveis públicas são exibidas no Inspector.
  24. 24. Obstáculos Como fazer a progressão da cena? Duas abordagens: ◦ Personagem e câmera se movem para frente ◦ Cenário movimenta para trás
  25. 25. Prefabs Objetos “pré-fabricados”. ◦ Permite salvar um gameobject e seus componentes. ◦ Gerenciar múltiplos clones Método Instantiate ◦ Permite criar clones de objetos.
  26. 26. Destruir objetos passados? Método Destroy() Callbacks OnBecameVisible e OnBecameInvisible
  27. 27. Não é a melhor solução... Garbage Collector ◦ Pode rodar a qualquer instante ◦ Quedas de framerate...
  28. 28. Solução ideal: Object pooling Reutilizar 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
  29. 29. Gameover Detectar colisão! ◦ Recarregar jogo.
  30. 30. Unity UI Recurso novo! ◦ Unity 4.6 Beta. Canvas ◦ Text ◦ Button
  31. 31. Colisão Callbacks OnCollisionEnter e OnCollisionExit Objeto Collision
  32. 32. Cenas Cenas -> Níveis do jogo Devem ser salvas e adicionadas ao build. Application.LoadLevel
  33. 33. Pontuação Como fazer?
  34. 34. Triggers Triggers ◦ Detectar se objeto está em uma determinada “zona”.
  35. 35. Break
  36. 36. 3D
  37. 37. 3D vs. 2D São independentes! ◦ 2D é recente. ◦ Podem coexistir no mesmo projeto e cena!
  38. 38. Motores físicos Independentes ◦ Rigidbody vs. Rigidbody2D ◦ Collider vs. Collider2D
  39. 39. Standard Assets Assets padrões da Unity ◦ Unity Packages
  40. 40. Antes, não faça isso em casa! Vamos brincar um pouco com física e alguns standard assets. ◦ Sem otimização alguma
  41. 41. Unity Terrain
  42. 42. First Person Controller Standard Asset ◦ Implementa movimentação (pulo, andar, etc) ◦ Implementa camera
  43. 43. Brincadeiras com física Vamos criar uma barreira gigante de caixas e derruba-la.  ◦ Otimização nula!
  44. 44. Explosão? Sistema de partículas ◦ Shuriken Explosão do PhysX
  45. 45. Publicação Como gerar executáveis? :) ◦ Windows, Linux, Mac ◦ Web ◦ Unity Web Player ◦ WebGL (Coming Soon) ◦ Android ◦ etc...
  46. 46. Antes de terminar, Bonus Stage
  47. 47. 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)
  48. 48. Evite Cargo Cult Programming!
  49. 49. 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/
  50. 50. 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.”
  51. 51. Eventos Conferências Exposições Game Jams IGDA Etc.
  52. 52. Participem!  Reuniões todas as terças, às 16:00 na sala 221 do Titanic.
  53. 53. Dúvidas?
  54. 54. Obrigado. caio.vinicius.teixeira@usp.br github.com/caioteixeira fb.com/caio.vinicius.m.teixeira

×