Apresentação
• Pedro Cahu
• Formado em Engenharia da Computação
– Em 2010 – (ITA - Instituto Tecnológico de Aeronáutica)
• Coordenador de Produção da Alpha Channel
• Meu site: jandexdev.wordpress.com
Proposta
• Mostrar sobre Alpha Racing
• Dificuldades no desenvolvimento
• Explicar a necessidade de se criar um editor
• Vantagens de se utilizar o Unity3D
Alpha Racing
• Primeiro Jogo desenvolvido pela Alpha Channel
• 1 ano em desenvolvimento
• Equipe sem experiência prévia em jogos comerciais
Visão Geral
• Jogo de corrida
– Velocidade
– Carros futuristas
• Advergame
– Se passa dentro do ambiente da Alpha Channel
• Online
– Recorde entre jogadores
– Desafio
– Rodar direto do Navegador de WEB
Pra que serve um Editor?
• Permitir que Level Designers criem
• Impossível ter criatividade lidando com limitações
técnicas
• No caso de outras engines: level criado direto no código-
>dificílima criação
• Possibilitar que usuários criem conteúdo
Sobre o Unity Editor
• Base para criação de cenários
• Ambiente visual
• Drag and Drop
• Expansível
Primeira Tentativa
• Dificuldades
– Trabalho de modelar inúmeras peças
– Todas as peças devem encaixar entre si
– Peças de tamanhos padronizados em tiles
– Solução comumente usado em jogos, porém tempo disponível
insuficiente
Solução
• Gerar a pista de modo procedural (por código)
– Vantagens:
• Não é necessário modelar
• Trechos de pista customizáveis
• Formato de pistas sem restrições
• Criação de pista em minutos
Como funciona?
• O trecho de pista é composto de 3 elementos:
• Definição de perfis de pista
• Mesclagem de vários perfis
• Definição dos parâmetros (curvatura, elevação, etc)
• Extrusão dos perfis segundo os parâmetros
Duvida!
• Mas do que é feito um modelo 3D?
– Vértices
– Faces (Conjunto de 3 Vertices)
Modelo 3D
• Vertice:
– Posição no espaço (x,y,z)
– Vetor Normal (x,y,z)
– Vetor Tangente (x,y,z)
– Mapa UV (x,y)
Modelo 3D
• Face:
– Lista índices de vértices
– Relaciona cada 3 vértices para montar uma
face
Algoritmo
• 1- Gerar Vértices a partir do perfil linha 0
• 2- Gerar para linha 1
• 3- Percorrer as duas listas montando os triangulos
• 4- Transformar Pivot em parâmetro/Nsegmentos
• 5-Gerar linha 2 baseada no pivot
• 6- Pecorrer linhas 1 e 2 montando triangulos