Unity3d

Post on 10-Aug-2015

225 views 0 download

Transcript of Unity3d

GamingGaming

William HiginoNathan Cruz

Mercado de jogos, e Desenvolvimento utilizando Unity

O MercadoEntre as alternativas de entretenimento, os jogos digitais estão entre os que vêm apresentando as maiores taxas de crescimento...

... Estima-se que suas vendas sejam duas vezes maiores que as da indústria fonográfica, e que

devam crescer mais rapidamente que as do setor cinematográfico até 2016

(BNDES: Mapeamento da Indústria Brasileira e Global de Jogos Digitais 2014)

O Mercado

O Mercado (EUA)

Fonte: esa – entertainment software association

O Mercado (EUA)

Fonte: esa – entertainment software association

Desenvolvimento no Brasil

• 133 Empresas de Desenvolvimento• 1133 Trabalhadores• 92 empresas tem 9 ou menos pessoas

Fonte: I Censo da Indústria de Jogos Digitais

• IDE e Engine para desenvolvimento de jogos, com suporte a integração com diversas tecnologias atuais

• Multi-plataforma– Windows, Mac, WebPlayer, Linux– IOS, Android, Windows Phone– PS3, PS4, Xbox360, Xbox One, Wii U

• Suíte de desenvolvimento disponível apenas para Windows e Mac.

Principais Tecnologias

• Arquitetura focada para plug-ins• Scripting simplificado utilizando frameworks e

diferentes linguagens• Suporte a Shaders• Animação 3D (Mecanim)• Sistema de partículas (Shuriken)• Física In-game (PhysX)• Controle de Áudio

Plug-ins Populares

2DToolkit – Adaptação da IDE para desenvolvimento 2D

iTween – Facilita o gerenciamento de objetos em cena (Translação, rotação, escala, câmera, vetores, etc)

Plug-ins Populares

NGUI – Criação de UI incluindo botões, textos, imagens, checkboxes, dropdowns, entre outros.

PlayMaker – Criação de máquinas de estado com objetos da cena, permitindo iniciar ou customizar comportamentos, conforme o momento do jogo.

Scripts

• Linguagens– C#– Javascript– Boo

• Frameworks–Mono 2.6– UnityEngine– .Net

Scripts

Usados para atribuir comportamentos aos objetos.

Utilizam a mesma API, independente da linguagem escolhida.

Podem ser levados para diferentes objetos, podendo possuir parâmetros específicos em cada um, além de valores padrão. (herança)

using UnityEngine;

using System.Collections;

public class TransformFunctions : MonoBehaviour{

public float moveSpeed = 10f;

public float turnSpeed = 50f;

void Update (){

if(Input.GetKey(KeyCode.UpArrow))

transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);

else if(Input.GetKey(KeyCode.DownArrow))

transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);

else if(Input.GetKey(KeyCode.LeftArrow))

transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);

else if(Input.GetKey(KeyCode.RightArrow))

transform.Rotate(Vector3.up, turnSpeed * Time.deltaTime);

}

}

Shaders• Uso de Shaders embutidos (Utilizam CG/Nvidia HLSL), podendo ser

customizados utilizando ShaderLab (sintaxe similar a CSS)

// colored vertex lightingShader "Simple colored lighting" { // a single color property Properties { _Color ("Main Color", Color) = (1,.5,.5,1) } // define one subshader SubShader { Pass { Material { Diffuse [_Color] } Lighting On } }}

Criação de Cenas

Criação de Cenas

• Hierarquia de objetos em árvore• Propriedades modulares dos objetos, sendo

configurados individualmente– Scripts de comportamento– Parâmetros de física– Opções de renderização– Parâmetros e gatilhos de áudio

Componentes do objeto

Animações

• Utiliza o Mecanim (sistema de animação embutido no Unity), dispensando a necessidade de ferramentas externas

• Permite a criação de movimentos complexos, utilizando movimentos simples e máquinas de estado

Física

• Processamento realizado utilizando– Colliders: Detectores de colisão entre objetos– Rigidbody: Atribuição de um corpo como “rígido”,

tendo então “leis da física” aplicadas ao mesmo.– Joints: Junções entre diferentes objetos, ou a

pontos fixos no espaço

Física

• Processamento realizado utilizando– Collision / Trigger event system: Gatilhos para

ativar comportamentos ou eventos físicos, utilizando os rigidbodys dos objetos para detectar sua presença, ou proximidade

– Character Controllers: Atribui ao objeto do jogador regras específicas de física, facilitando a interação física com o chão, paredes, e outros objetos inanimados da cena

Loja de Assets

• Oferece recursos pré-fabricados, que podem ser importados diretamente nos projetos Unity:– Animação– Efeitos de áudio, músicas, som ambiente– Modelos 3D– Scripts (IA, Camera, Física, GUI, Rede, etc)– Sistemas de partículas– Shaders– Texturas

Exemplos

Assassin's Creed Identity

Exemplos

ExemplosHearthstone:

Heroes of Warcraft

VersõesUnity (Free): Recursos Limitados em diversos aspectos (Gráficos, Mecânica, Áudio, etc). Permite uso comercial para entidades com menos de US$ 100.000,00 de receita

Bibliografia

https://en.wikipedia.org/wiki/Unity_%28game_engine%29 http://unity3d.com http://unity3d.com/showcase/gallery/games https://en.wikipedia.org/wiki/Hearthstone:_Heroes_of_Warcraft https://en.wikipedia.org/wiki/List_of_Unity_Engine_games http://developer.download.nvidia.com/shaderlibrary/webpages/

hlsl_shaders.html