Programador, Design e Fundador Pedro H. S. Raimundo Programador, Design e Fundador
Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação
Vamos desenvolver!!!! Aplicação profissional totalmente integrada, multi-plataforma e uma das mais difundida nos dias atuais quando o assunto é produção de games independentes. Crie games para PC, MAC, Wii, Iphone , Web e muito mais. Alguns exemplos da própria Unity
Como funciona DevGame? Game GameArt GameDesign GameProgrammer Art
Alguns formatos para Games 2D Side-Scrolling Top-Side Shooter 3D FPS TPS
Brainstorm para Side-Scrolling Dimensão Época Publico Alvo e Publicação Inteligência Personagem e NPC Áudio Textura ......
Sugestões.... Jogador Pulo c/ Fogo Controle de sensibilidade (Atira projéteis) > Desafio Destruir NPC’s NPC Objetos caindo na tela Cenário Plataformas simples (Chão) Plataformas flutuantes Terreno simples com montanhas Power-Ups Caixas Pontos (Score) GUI Vida Pontuação
Introdução ao Unity Visualização geral Configuração de janelas Entendo a Viewport (atalhos) Atributos dos objetos Trabalhando com Tag e Layers Camera e Luz (Culling Mask) Usando Layouts
Manipulação de Objetos Escala, movimentação e rotação Importando modelos 3D Aplicação de materiais simples (shaders) Aplicação básica de texturas Criando Prefabs Entendendo o Sistema GUI Construindo Terrenos Criação de cenários simples
Introdução a Iluminação Tipos de Luzes Projeção de sombras Trabalhando com Culling Mask
Introdução a Programação Lógica de programação Conceitos básicos de programação Comandos simples Aplicando scripts
Programação Variáveis Tipos Encapsulamento (OO) Pequenas palavras que podem armazenar diversos conteúdos de diversos tipos. Ex: GameObject jogador; Tipos Ex: Float pontuacao; Encapsulamento (OO) Ex: private float Tempo; Int: ...-1,0,1,... Float: 0.1f , 5.98f, 10f string: “Olá Mundo” bool: true, false Private (Padrao): privado(somente a classe) Public : publico a classe e outras classe Static: reutilizável sem necessidade do new Protected: Protegido, sem alteração
Programação Atribuição Setar valor a um objeto, segue ex: Private float tempo Tempo = Time.time; Comparação (utilizado em decisões) == != ou !(negação) < ou <= > ou >=
Programação Aritméticos Operações matemáticas + - += ou -= *= ou /=(tem q ser diferente de 0) ++ --
Programação Estrutura de decisão. O objetivo é identificar o conteúdo de uma condição e direcionar o fluxo do programa para um determinado cálculo, rotina, desvio, função, etc. Primeiramente vamos entender o que é uma expressão condicional. Esta é uma expressão que sempre retorna um valor boleano, ou seja, verdadeiro ou falso. Exemplo: Preço é menor que 100. Se preço for menor que 100 então o resultado da expressão acima é VERDADEIRO. Caso contrario o resultado é FALSO.
Programação Você pode usar os seguintes operadores para fazer comparações em C#: (SUPONHA QUE A VARIAVEL SALARIO TENHA O VALOR 1200) Então a expressão que usamos no exemplo acima ficaria assim: Preço < 100
Programação if ( expressãoondicional ) { bloco-de-codigo1 } else
Programação
Programação As estruturas de repetição são usadas para controlar a execução de códigos repetidamente até que uma condição seja verdadeira. Veja os tipos de estrutura de repetição que vamos aprender: Laço for Laço foreach
Programação O loop 'for' trabalha checando uma condição para executar um bloco de código até que essa condição seja verdadeira, no caso do loop 'for' temos que em sua syntax declarar sua inicialização, sua condição e seu incremento, veja: for (int i =0; i <= 10; i++) { //instruções ; } Ex: Construção de uma lista de Objetos a serem criados no jogo.
Programação O loop 'foreach' é usado para interagir (percorrer) listas. Ele opera sobre Arrays ou coleções veja sua syntax básica: foreach(<tipo de dado> <nome> in <lista>) { //instruções }
Programação Veja um exemplo pratico para facilitar o entendimento: Percorrer os filhos de um objeto. Mash’s do meu jogador foreach (Transform filho in JogadorChuk) { filho.transform.render.material=true; }
Programação Conceitos específicos C# Conceitos específicos Unity Utilização de Classe Métodos (“Funções”) Importação de bibliotecas using Conceitos específicos Unity GameObject Transform Input Colisão
Programação + Engine Input As input’s tratam das informações de entrada que o jogador irá mandar para o jogo. Ex: Movimentos Horizontal e Vertical, Pulo, Atirar e etc. As input’s na maioria das vezes vem acompanhada pelo Time.deltatime (unity), garantindo o bom funcionamento em qualquer maquina.
Programação + Engine Simples código para manipulação de movimento e pulo X = Input.GetAxis(“Horizontal”); Y = Input.GetAxis(“Jump”); transform.Translate(new Vector3(x,y,0)*Time.deltaTime);
Programação + Engine Gravidade??? Rigidbody Conceito de corpo rígido. Concentra informações sobre um objeto como no mundo real. Ex: Massa, aceleração da gravidade e etc.
Programação + Engine Colisões (Unity) Trigger (Transpassável) Ex: moedas Collider(Não Transpassavel) Ex: Porta Enter (Inicio) Ex:CheckPoint Stay (Meio) Ex: Gás Venenoso Exit (Fim) Ex: A Porta fechar
Programação + Engine OnCollisionEnter(Collision quem) { print(quem.name); } OnTriggerEnter(Collider quem) { print( Destroy(quem.gameobject) ); }
Conceitos de Animação Manipulando animações Trabalhando com curvas Implementando animação no jogo
Finalizando... Configuração e compilação Resolução gráfica
Criando o nosso JOGO Utilizando o maximo da ferramenta apresentada, iremos agora terminar de desenvolver o jogo em plataforma ( Side-Scrolling ) e fazer compilação.
Referencias www.unity3d.com Software Script Reference Demos Free Assets