Академический Документы
Профессиональный Документы
Культура Документы
Baseada em COMPONENTES
x
Orientada a OBJETOS
EN3617 Jogos Digitais, aspectos
Tcnicos e Aplicaes
Prof. Mrio Minami, 2Q15
OBJETIVOS
Revisitar Conceitos Bsicos de Programao
Orientada a Objeto (POO), em Games
Como usar a Linguagem C# no Motor de
Jogos Unity3D
Apresentar a Programao Baseada em
Componentes (PBC) no Unity3D
Breve Histria do C#
Bell Labs comeou em 1920
Em 1967 contratou Dennis Ritchie, Fsico e
Matemtico Aplicado de Harvard
Em 1974, junto com Kernighan, criou a
Linguagem C, e com Thompson, o SO Unix
Em 1983 surgiu o C++ (C com Classes), que
mantinha compatibilidade com C
Em 2001, a Microsoft lanou o C#, combinou
C, C++, LISP, Haskell e outras.
Paradigmas do C# (C-sharp)
Imperativo (operaes executadas em
ordem)
Orientado a Objeto: a cada objeto
permitido fazer aquilo que deseja
Permite gerenciamento de memria pelo
programador (por isso usado em
Embedded)
Por exemplo recolher o lixo
Classes no Unity3D
Aparecem
com
extenso CS
(C-Sharp)
Ambiente Unity3D
Scene & Game
Toolbar
Hierarchy
Inspector
Project
Console
Inserindo um Objeto 3D
> GameObject > 3D Object > Cube
Comentrios
Linhas 1 e 2, bibliotecas do Unity3D
Linha 4, nome da Classe
MonoBehaviour a Classe Base
filho de Behaviour
Objetos
Uma Classe possui moldes e instrues para construir um novo objeto.
Cada objeto criado deve ser instanciado dos moldes de uma Classe
Instancia: Quando construmos um objeto atravs de moldes e
instrues de uma Class. A Classe no em si mesma uma instancia
criada por ela.
Exemplo 1: podemos ter uma Classe com instrues para construir um objeto
POO em Videogames
Classes individuais podem
enderear diferentes aspectos
do Game
Uma Classe zumbi pode ser
instanciada vrias vezes para
criar uma horda de zumbis
errantes
Uma Classe pode gerenciar
como movimentar o seu Jogador
com as setas
Uma outra Classe pode
gerenciar o inventrio de itens
no Game
Programao Baseada em
Componentes (PBC)
COMPONENTES Unidades de produo, aquisio e
processos independentes que interagem para o
funcionamento do Sistema
Similar ao que ocorre na terceirizao na Indstria
Automotiva e os Carros Mundiais
Arquitetura Baseada em Componentes (ABC):
Abordagem de Engenharia de Software (ESW) que
foca na decomposio do projeto em Componentes
Funcionais e individuais ou em Componentes
Lgicos com interfaces de comunicao bem
definidas em mtodos, eventos e propriedades.
Maior nvel de abstrao que OO, e no foca em
protocolos ou estados compartilhados.
Exemplo de Componentes
Componentes so:
Add Component
Sphere Collider
Pode ser atingido por um projtil
Mesh Collider
Pode fundir primitivas grficas
Audio
Associa som a um pulo, a um disparo de arma laser,
ou a uma morte
O Unity3D
Foi Desenvolvido para trabalhar com
Componentes
um pouco diferente da arquitetura OO,
necessita acostumar-se com a ideia
Para testar o que se faz (desenvolver o jogo)
MUITO VERSTIL!
Levou um tiro;
Pulou;
Morreu;
Etc.
Referncias
Introduo ao Desenvolvimento de Games, Rabin, S., vol. 2,
Cengage Learning, 2013.
Learning C# Programming with Unity 3D, Okita, A., CRC Press,
2014.
Unity: Now You're Thinking With Components, Porter, Oct
2013, in:
http://gamedevelopment.tutsplus.com/articles/unity-nowyoure-thinking-with-components--gamedev-12492
Architectural Patterns and Styles, Ch.3, MS Developers
Network, in: https://msdn.microsoft.com/enus/library/ee658117
Designing Components versus Objects: A Transformational
Approach, Lorenz, D. H. and Vlissides, J., Proc. ICSE, pp 253-262, Toronto, Canada, May 12-19, 2001.