Jogo 1: Amazing Racer Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)
Objetivo Guiar passo-a-passo a criação de um jogo completo Antes de mais nada, precisamos pensar no projeto (e o planejamento associado), podemos focar em três aspectos do jogo: 1. O conceito 2. As regras e 3. Os requisitos
O Conceito Você inicia em um extremo de uma região e corre até um outro extremo Nessa região haverá: montes, árvores e outros obstáculos no caminho O objetivo do jogador será alcançar o mais rapidamente possível a chegada
As Regras 1. Não haverá uma condição de vitória e derrota, apenas uma condição de objetivo alcançado (quando o jogador atingir a zona de chegada) 2. Os locais de onde o jogador irá nascer (spawn) e da zona de chegada serão sempre os mesmos 3. Haverão obstáculos de água caso os jogadores caiam neles eles retornam ao ponto de spawn 4. O objetivo do jogo é atingir a zona de chegada no menor tempo possível será uma regra implícita
As Regras Uma coisa a ter em mente ao fazer um jogo, é que um software é um processo de permissão A não ser que algo seja explicitamente permitido, este algo não será possível ao jogador Tudo o que você deseja que o jogador possa fazer, precisa estar explicitamente habilitado
Alguma Terminologia Spawn processo no qual o jogador entra no jogo Spawing point local exato do spawn Condição uma espécie de gatilho, uma condição de vitória é um evento que causa o final bem sucedido do jogo. Uma condição de derrota é um evento que causa o final mal sucedido do jogo Controlador do jogo dita as regras e fluxo do jogo, responsável por saber se o jogo foi ganho ou perdido (ou se simplesmente acabou) qualquer objeto (na cena) pode ser designado como tal Playtesting processo de jogar um jogo que ainda esta em desenvolvimento, para ver os jogadores reagem
Os Requisitos Determinar quais recursos (assets) serão necessários para a construção do jogo Para o jogo em questão: 1. Um terreno retangular (com obstáculos), sobre o qual serão designados os pontos de spwan e chegada 2. Efeitos de textura e ambientação para o terreno 3. Objetos representando os pontos de spawn e chegada 4. Um controlador de personagem (primeira pessoa) 5. Uma interface com o usuário (GUI) básica 6. Um controlador para o jogo
Uma Ideia para o Terreno
Criando o Mundo do Jogo Com a idéia do mundo precisamos cria-lo Serão utilizados muitos recursos já disponibilizados por padrão pelo Unity Alguns arquivos adicionais serão disponibilizados em um ZIP na página do professor (aula 7)
Esculpindo o Mundo Para agilizar esse processo foi disponibilizado um mapa de altura para você Passos: 1. Criar um novo projeto, numa pasta de nome sugestivo 2. Adicione um terreno ao projeto em (0, 0, 0) 3. Busque o arquivo terrain.raw nos arquivos fornecidos e importe o mesmo como mapa de altura 4. Não altere Depth, Width e Height 5. Como o arquivo foi gerado no MAC, altere o Byte Order 6. Defina o tamanho do terreno em 200 de largura (X) por 100 de comprimento (Z) e 100 de altura (Y) 7. Crie uma pasta Scenes dentro de assets
Adicionando a Ambientação Aplique texturas e efeitos de ambientação Importe o pacote Environment (Assets > Import Package) Sugestões: 1. Rotacione a luz direcional segundo a sua preferência 2. Aplique texturas ao terreno (GrassHillAlbedo = partes planas; CliffAlbedoSpecular = partes íngremes; GrassRockyAlbedo = áreas intermediárias e MudRockyAlbedoSpecular = dentro dos poços) 3. Adicione árvores ao terreno (espaçadas) áreas planas 4. Adicione água à cena, posicionando em (88, 29, 49) e com escala (50, 1, 50)
Adicionando a Ambientação Alguns elementos que podem ser adicionados: 1. Névoa 2. Grama ao redor dos poços (escondendo os mesmos) 3. Flares para a luz direcional, simulando o sol 4. Esteja livre para adicionar outros mas não exagere
Controle de Personagem Adicione os controles de personagem no terreno Passos: 1. Importe o pacote básico de personagens Assets > Import Package > Characters 2. Arraste o controlador FPSControllerPerson para a cena (Standard Assets\Characters\FirstPersonCharacter\Prefabs) 3. Posicione o controlador em (160, 32, 64) 4. Rotacione o controlador em 260 no eixo Y 5. Altere no nome do objeto Player 6. Como o controlador possui a sua própria câmera, pode ser removida a câmera principal
Controle de Personagem Com o controlador de personagem inserido na cena, execute a mesma se mova pela cena e veja se há algum ponto que necessite de ajustes Fique atento às bordas Procure por áreas em que o jogador pode fugir do mundo
Estágio Atual
Gameficação Temos um mundo em que o jogo pode acontecer O processo de tornar alguma coisa em um jogo é chamado de gameficação (gamefication) Adicionar o controle do jogo utilização de scripts São pedaços de código que definem comportamento para os objetos do jogo (serão aprofundados na sequência) Utilizaremos scripts já prontos
Objetos de Controle Como definido inicialmente iremos precisar de objetos para realizar o controle do jogo O primeiro objeto será um ponto de spawn Passos: 1. Adicione um objeto vazio à cena, em (160, 32, 64) 2. Renomeie esse objeto para SpawnPoint
Objetos de Controle Precisamos de um detector de entrada em um obstáculo de água um plano situado logo abaixo da superfície da água com um gatilho de colisão Passos: 1. Adicione um plano à cena, posicionado em (86, 27, 51) 2. Altere a escala do plano para (10, 1, 10) 3. Renomeie o plano para WaterHazardDetector 4. Marque as opções Convex e Is Trigger no componente Mesh Collider (veja no próximo slide)
Objetos de Controle
Objetos de Controle Para finalizar, precisamos adicionar uma zona de chegada para o jogador completar o jogo Esta zona será um um objeto simples com um ponto de luz sobre o mesmo para que o jogador possa saber para onde ir Esse objeto possuirá uma capsula de colisão anexada ao mesmo saberá quando o jogador entrar nessa zona
Objetos de Controle Passos: 1. Adicione um objeto vazio, posicionado em (26, 32, 24) 2. Renomeie esse objeto para Finish 3. Adicione um componente de luz (Point) a esse objeto 4. Altere a área coberta para 35 e a intensidade para 3 5. Pode adicionar uma cor verde por exemplo 6. Adicione uma capsula de colisão à esse objeto Component > Physics > Capsule Collider 7. Marque a opção Is Trigger e altere o raio para 9 (veja no slide seguinte)
Objetos de Controle
Objetos de Controle O último objeto que precisa ser criado é o objeto para controle do jogo (poderia ser qualquer outro) É interessante criar o seu próprio objeto para evitar a sua remoção acidental Passos: 1. Adicione um objeto vazio à cena 2. Renomeie esse objeto para GameControl
Adicionando os Scripts Passos: 1. Criar a pasta Scripts dentro de Assets 2. Procure os scripts nos arquivos fornecidos 3. Clique e arraste os scripts para pasta correspondente (FinishScript, GameControlScript e RespawnScript) Uma vez os scripts estando no projeto a aplicação dos mesmos é relativamente simples 1. Clicar e arrastar para o objeto desejado 2. Botão Add Component
Adicionando os Scripts
Adicionando os Scripts Aplique os scripts aos seguintes objetos: FinishScript à ao objeto Finish GameControlScript à ao objeto GameControl RespawnScript à ao objeto WaterHazardDetector Os scripts precisam ser conectados uns aos outros
Conectando os Scripts Se você ler os scripts, perceberá que todos possuem referências (placeholders) à outros objetos Essas referências permitem que um script se comunique com outro script Cada referência irá gerar uma propriedade na visão do inspetor do respectivo objeto (slide seguinte)
Conectando os Scripts
Conectando os Scripts Passos: 1. Com o objeto WaterHazardDetector selecionando, associe o objeto SpawnPoint à propriedade Respawn Point 2. Com o objeto Finish selecionado, associe o objeto GameControl à propriedade Game Control 3. Com objeto GameControl selecionado, associe o objeto SpawnPoint à propriedade Spawn Point; aproveite para associar também o objeto Player à propriedade de mesmo nome
Playtesting O jogo está pronto, mas o trabalho ainda não acabou Agora inicia o processo de playtesting Encontrar erros Encontrar coisas que não estão tão divertidas quanto você pensou que seriam Incluir pessoal externo à equipe de desenvolvimento
Playtesting Uma pequena mudança que pode tornar o jogo mais divertido é a velocidade do jogador No objeto Player Alteração do script de controle de primeira pessoa Propriedade Movement
Exercício 1. Tente adicionar múltiplas zonas de chegada 2. Modifique o terreno para incluir mais obstáculos, de forma semelhante aos obstáculos de água 3. Tente ter múltiplos pontos de spawn, faça com que alguns obstáculos o levem para o segundo ou o terceiro ponto de spawn 4. Modifique o céu e texturas para criar um mundo alienígena