Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Aula 7 - Projeto Amazing Racer

Projeto para Aula de Unity
by

Fabio Murakami

on 28 March 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Aula 7 - Projeto Amazing Racer

Aula 7
Game 01
Amazing Racer
O que você aprenderá nesta aula:
• Como criar um jogo básico
• Como aplicar o seu conhecimento de terreno para construir um mundo específico do jogo
• Como adicionar objetos a um jogo para proporcionar interatividade
• Como playtest ajusta um jogo acabado
Nesta aula você vai utilizar o que você aprendeu até agora e construir um jogo básico no Unity. Você vai começar estudando os elementos básicos de design do jogo. A partir daí, você vai construir o mundo do game. Uma vez feito isso, você irá adicionar alguns objetos de interatividade para tornar o jogo jogável. Por fim você vai jogar e fazer todos os ajustes necessários para melhorar a experiência do jogador.
Uma parcela do desenvolvimento de design de jogos está no planejamento com antecedência de todas as principais características e componentes. Você pode pensar como se estabelece o blueprint de modo que o processo de construção real se torne muito mais agrádavel. Normalmente, ao fazer um jogo se gasta muito tempo trabalhando com o design. Considerando que o jogo que você estará fazendo nesta aula é bastante básico, o design de projeto vai ser o mais rápido. Você precisa se concentrar em três áreas de planejamento para fazer este jogo: o conceito, as regras e os requisitos.
Design
A idéia por trás deste jogo é muito simples. Você irá começar em uma das extremidades da área e correrá rapidamente para o outro lado. Haverá colinas, árvores e obstáculos em seu caminho. Seu objetivo será o de ver o quão rápido você pode fazê-lo para a zona de chegada. Este conceito do jogo foi escolhido como o seu primeiro jogo porque ele destaca todas as aulas que você trabalhou até agora. Considerando o nivel de aprendizagem de scripts em Unity, você ainda não é capaz de adicionar interações muito elaboradas. Os próximos jogos serão mais complexos.
O Conceito
Todo jogo deve ter um conjunto de regras. As regras têm duas finalidades. Em primeiro lugar, elas determinam a forma como o jogador vai realmente jogar o jogo. Em segundo lugar, uma vez que o software é um processo de permissão, as regras ditam as ações disponíveis para que os jogadores superem desafios. As regras para Amazing Racer são as seguintes:

• Não há vitória ou perda de condição, apenas uma condição concluída. O jogo é completado quando o jogador entra na "zona de chegada".
As regras
• O jogador sempre "nasce" no mesmo local. A zona de chegada será sempre no mesmo local.

• Haverá obstáculos de água presente. Sempre que o jogador cai na água, ele será movido de volta para o ponto de respawn.

• O objetivo do jogo é tentar obter o melhor tempo possível. Esta é uma regra implícita e não é construída especificamente para o jogo. A idéia é que o jogador deseje ir o mais rápido a cada tentativa baseado nos sinais que lhe são dados.
Algo para se lembrar sempre que fizer um jogo é que o software é um "processo de permissão". O que isto significa é que se você permitir especificamente alguma coisa, ela deverá estar disponível ao jogador. Por exemplo, se o jogador quer subir em uma árvore, mas você não criou nenhuma maneira para que o jogador subir em uma árvore, a ação não será possível. Se você não dá ao jogador a capacidade de saltar, então ele não pode saltar. Tudo o que você quer que o jogador seja capaz de fazer deve ser explicitamente incorporado.
Nota: Processo de Permissão
• Respawn - É o processo pelo qual um jogador ou entidade entra novamente em um jogo.

• Spawing Point - É o lugar onde um jogador ou entidade é gerada. Pode haver um ou vários destes.

• Condição - A condição é uma forma de gatilho. A condição de vitória é o evento que fará com que o jogador ganhe o jogo (como acumular pontos suficientes). A condição de perda é o evento que fará com que o jogador perca o jogo (como a perda de todos os seus pontos de vida).

• Game Controller - O controlador de jogo dita as regras e o fluxo de um jogo. Ele é responsável por saber quando o jogo está ganho ou perdido (ou pouco mais). Qualquer objeto pode ser designado como um controlador de jogo enquanto está sempre na cena. Muitas vezes, um objeto vazio ou a câmera principal será designado como o controlador de jogo.
Nota: Terminologia
Outro passo importante no processo é determinar quais os assets que serão necessários para o jogo. De um modo geral, a equipe de desenvolvimento do jogo é composta de vários indivíduos. Alguns irão projetar, enquanto outros programar ou fazer arte. Cada membro da equipe precisa de algo para fazer e ser produtivo durante todas as etapas do processo de desenvolvimento. Se todos esperam até que se precise de algo para começar a trabalhar, haverá um monte de pausas e reinícios. Em vez disso, você determina o seus assets antes para que as coisas possam ser criadas antes que algo seja necessário. O próximo slide têm uma lista de todos os assets para Amazing Racer:
Os Requisitos
• Um pedaço de terreno retangular. O terreno precisa ser grande o suficiente para ter uma corrida desafiadora. O terreno deve ter obstáculos construídos, bem como um ponto de saída e chegada (veja a figura).

• Texturas e efeitos de ambiente para o terreno. Estes são fornecidos nos assets padrão do Unity

• Um objeto que sirva de spawn point, um objeto zona de chegada, e um objeto de perigo da água. Eles serão gerados no Unity.

• Um character controller. Este é fornecido pelos assets padrões do Unity.

• A interface gráfica do usuário (chamado de GUI). Esta será fornecida para você em um link.

• Um controlador do jogo. Este será criado no Unity.
Agora que você tem a idéia básica do jogo é hora de começar a construí-lo.
Há muitos lugares para iniciar a construção de um jogo.

Para este projeto, você vai começar com o mundo.

Uma vez que este é um jogo de corrida linear, o mundo será mais longo do que largo (ou mais largo do que longo, dependendo de como você olha para ele), de qualquer forma seguirá o padrão retangular. Muitos assets padrões do Unity serão usados para criar mais rapidamente o jogo.
Criando o Mundo do Jogo
1. Crie um novo projeto em uma pasta chamada "Amazing Racer" . Adicione um terreno para o projeto.

2. Defina a resolução do terreno e 200 de largura por 100 de comprimento e 100 de altura.

3. Localize o arquivo " terrain.raw " - http://1drv.ms/1MAVkca
Importe o arquivo " terrain.raw " como um heightmap para o terreno.

4. Crie uma pasta " Scenes" em assets e salve a cena atual como "Main".

O terreno deve agora ser esculpido para coincidir com o design da foto anterior. Sinta-se livre para fazer pequenos ajustes e mudanças ao seu gosto.
Quando você constrói um mapa customizado estará construindo um jogo baseado fora do heightmap que foi dado a você. O heightmap desta aula foi preparado para que possa agilizar mais rapidamente o processo de desenvolvimento do jogo. Esteja avisado que se você fizer algo mais customizado algumas das coordenadas e rotações previstas não vão ser as mesmas.
Se você quer construir seu próprio mundo precisa prestar atenção na disposição pretendida dos objetos e posicioná-los de acordo.
Cuidado: Construindo
seu próprio terreno
Você pode começar a texturização e adicionando os efeitos de ambiente para o seu terreno. Você precisará importar os seguintes packages: Terrain Assets, Skyboxes e Water.
Os passos seguintes são orientações. Sinta-se livre para criar e siga os passos.

• Adicione uma luz direcional para a cena. Gire a luz direcional para atender a sua preferência.

• Textura do terreno. O projeto de exemplo usa as seguintes texturas: "Grass (Hill)" para partes planas ", Cliff (Layered Rock)" para as partes íngremes, e "Grama & Rock" para as áreas entre os dois pontos.
Adicionando o Ambiente
• Adicionar um skybox a cena. O projeto de exemplo usa o "Sunny1 Skybox".

• Adicione árvores no seu terreno. Árvores de baixa densidade deve ser colocadas, principalmente em superfícies planas.

• Adicione um pouco de água para a sua cena. Coloque a água em (88, 29, 49) e escalone em (50, 1, 50).

O terreno deve estar preparado e pronto. Certifique-se de gastar uma boa quantidade de tempo na texturização para se certificar de que você tem uma boa mistura e uma visão mais realista. Há algumas coisas adicionais que não estão presentes no projeto de exemplo, mas que você pode querer adicionar:
• Fog.
• Grama ao redor da água. Isso pode escurecer um pouco e aumentar a dificuldade.
• Flares de luz para simular o sol. Você vai precisar rodar a luz direcional para coincidir com o sol do skybox.
Nesta fase de desenvolvimento que você vai querer adicionar um controlador de personagem para o seu terreno.

1. Importe os controladores de caracteres padrão.

2. Arraste um asset "First Person Controller" para sua cena .

3. Posicione o controlador (que será chamado "player" e será azul ) em ( 160, 32, 64 ) . Gire o controlador 260 no eixo y para que ele fique na direção correta.

Uma vez que o controlador de personagem está em sua cena e posicionado , rode a cena. Certifique-se de se mover e olhar para todas as áreas que precisam ser acertadas ou suavizadas . Preste atenção nas bordas. Procure por todas as áreas onde você é capaz de escapar do mundo . Esses locais terão de ser aumentados de modo que o jogador não possa cair fora do mapa . Este é o estágio em que você geralmente corrige os problemas básicos com o seu terreno.
O Character Controller
Geralmente, os níveis de jogo terão paredes ou algum outro obstáculo no local para impedir que o jogador saia da área desenvolvida . Se o jogo tiver gravidade, o jogador pode cair fora do mundo . Você sempre vai ter que criar alguma forma de impedir o jogador de ir em algum lugar que não deve. Este projeto de jogo usa um sistema de altura para manter os jogadores na área de jogo . O heightmap fornecido a você tem intencionalmente alguns lugares onde o jogador pode sair . Veja se você pode encontrar e faça as devidas correções!
Dica: Saindo
para fora da cena
Agora você já tem um mundo do jogo.

O que você tem em mãos deve ser considerado como um brinquedo. É algo que pode ser jogado com .

O que você quer é um jogo.
Que é um brinquedo que tem regras e uma meta.

O processo de transformar algo em um jogo é chamado de "Gamification". Se você seguiu os passos acima, seu projeto de jogo agora deve ser algo parecido com a próxima figura. O próximo passo será adicionar objetos de controle de jogo para a interação , aplicar os scripts de jogo a esses objetos , e conectá-los uns aos outros.
Gamification
Scripts são pedaços de código que definem comportamentos para objetos do jogo . Você ainda não aprendeu ou está aprendendo sobre scripts. A fim de fazer um jogo interativo , no entanto, os scripts são uma obrigação . Com isso em mente, os scripts necessários para fazer este jogo foram fornecidos para você. Um esforço foi feito para fazer os scripts o menores possíveis para que você possa entender a maior parte deste projeto. Sinta-se livre para abrir os scripts em um editor de texto e ler o que eles fazem.
Nota: Scripts
Definida a seção de requisitos, você vai precisar de quatro objetos específicos de controle de jogo. O primeiro objeto será o spawing point. Este será um objeto de jogo simples que existe unicamente para dizer ao jogo, onde aparecerá o jogador. Para criar o spawing point:

1. Adicione um objeto jogo vazio com a cena em "Create Empty" e posicione em (160, 32, 64).

2. Renomeie o objeto vazio para "SpawnPoint" na hierarchy view.
Adcionando os Game Control Objects
Em seguida, você vai querer criar um tipo de detector de perigo da água. Este será um plano simples que vai se localizar logo abaixo da água. O plane terá um trigger collider, que irá detectar quando um jogador cair na água. Para criar o detector:

1. Adicione um plane para a cena e posicione em (86, 27, 51). Dimensionar o plano (10, 1, 10).

2. Renomeie o plano como "WaterHazardDetector" na hierarchy view.

3. Marque a caixa de seleção "IsTrigger" no componente "Mesh Collider" no inspector view (ver figura).
Em seguida, você vai querer adicionar uma finish zone para o seu jogo . Esta zona será um objeto simples, com um ponto de luz sobre ele para que o jogador saiba para onde ir. O objeto terá um capsule collider ligado a ele para que com isso saiba quando um jogador pode ter entrado na zona de chegada . Para adicionar o finish zone object :

1. Adicione um empty game object e posicione em (26 , 32, 24).

2. Mude o nome do objeto a "Finish" na hierarchy view.

3. Adicione um light component. Altere o tipo para "Point" e defina o range para 35 e a intensidade para 3.

4. Adicionar um Capsule Collider ao objeto acabamento selecionando o objeto e clicando em " Component- > Physics- > Capsule Collider " . Altere a propriedade Radius para 9 e marque a caixa " IsTrigger " no inspector view (ver figura) .
O objeto final que você vai precisar criar é o objeto de controle de jogo. Este objeto não precisa existir tecnicamente. Você poderia apenas aplicar suas propriedades para algum outro objeto no mundo do jogo, como a câmera principal . Embora geralmente você irá criar o seu próprio objeto para impedir qualquer exclusão acidental. Durante esta fase de desenvolvimento, o objeto de controle de jogo é muito básico. Tenha em mente que ele será usado mais tarde. Para criar o objeto de controle de jogo:

1. Adicione um empty game object a cena.

2. Renomeie o objeto jogo para " GameControl " no hierarchy view.
Como mencionado os scripts especificam comportamentos dos seus objetos do jogo. Para efeito de aula, agora no ínicio não é importante você entender o que esses scripts fazem. A primeira coisa que você precisa fazer é adicionar os scripts ao seu projeto:

1. Crie uma pasta "Scripts" dentro de "Assets" no project view.

2. Localize os scripts:
FinishScript.cs - http://1drv.ms/1LfeXmC
RespawnScript.cs - http://1drv.ms/1Lff5CD
GameControlScript.cs - http://1drv.ms/1LffftD
Adicionando Scripts
3. Clique e arraste os scripts a partir da pasta "Scripts". Deverão haver três: "FinishScript", "GameControlScript", e "RespawnScript".

Uma vez que os scripts estão em seu projeto, aplicá-los é fácil. Para aplicar um script, basta arrastá-lo do project view do projeto para qualquer objeto que você deseja aplicá-lo (veja a figura). Aplique os seguintes scripts:

• Aplique o "FinishScript" para o objeto "Finish" do jogo.

• Aplique o "GameControlScript" para o objeto "GameControl".

• Aplique o "RespawnScript" para o "WaterHazardDetector".
Se você analisou os scripts, então você percebeu que todos eles têm espaços reservados para outros objetos. Estes espaços reservados permitem um script conversar com outro script. Você vai ver que, para cada espaço reservado que existe nos scripts, existe uma propriedade no componente para esse script na inspector view. Assim como com os scripts , você aplica os objetos para os espaços reservados , clicando e arrastando (ver figura).
Conectar os Scripts
Primeiramente você vai começar a conectar objetos com o "WaterHazardDetector". Selecione a opção "WaterHazardDetector" na hierarchy view e note como ela tem o componente "Respawn Script" . Este é o resultado da aplicação do script de respawn anteriormente. Você também vai notar que o componente de respawn tem uma propriedade "Respawn Point". Esta propriedade é um espaço reservado para o objeto de jogo "SpawnPoint" que você fez anteriormente . Com o objeto "WaterHazardDetector" selecionado, clique e arraste o objeto "SpawnPoint " a partir da hierarchy view para a propriedade "Respawn Point" do componente "Respawn Script" . Agora, sempre que o jogador cai na água , ele vai se teleportar de volta ao ponto no início do nível.
O próximo objeto para configurar é o objeto do jogo"Finish". Com o objeto jogo "Finish" selecionado, clique e arraste o objeto "GameControl" da hierarchy view para a propriedade "Game Control Script" do componente "Finish Script" no inspector view. Agora, sempre que o jogador entra na zona de chegada, o controle do jogo será notificado.

O último objeto que você vai precisar configurar é o "GameControl". Para definir esse controle corretamente:

• Clique e arraste o objeto "SpawnPoint" na propriedade "Spawn Point" da componente "Game Control Script" do "GameControl".
• Clique e arraste o objeto "Player" (este é o character controller) para a propriedade "Player", a propriedade "Motor Script", e a propriedade "Look Script" propriedade do " Game Control Script" do "GameControl".

• Você terá que desativar o script do mouse da câmera no “Player” character controller. Para fazer isso você vai precisar para expandir o objeto "Player" na hierarchy view (clique na seta para a esquerda de "Player" para expandir) e, em seguida, selecione a opção "Câmera principal" que está aninhada em "Player". Localize o componente "Mouse Look (Script)" no inspector view e desmarque (veja a figura).
Isso é tudo o que há para conectar os objetos do jogo .

Seu jogo está agora completamente jogável ! Algumas desses passos podem não fazer sentido agora, mas quanto mais você estudá-los e trabalhar com eles, mais intuitivos serão.
Seu jogo está feito agora, mas não é tempo de descansar ainda. Agora você tem que começar o processo de playtesting.
Playtesting é quando você joga um jogo com a intenção de encontrar erros ou coisas que simplesmente não são tão divertidas quanto você pensou que seria.
Pode ser muito benéfico ter outras pessoas de playtesters de seus jogos para que eles possam dizer o que faz sentido para eles e o que eles encontraram durante o jogo é agradável ou não.
Playtesting
Se você seguiu todos os passos então não deve haver quaisquer erros (comumente chamados bugs) para que você possa encontrar.
O processo de determinar quais partes são divertidas, no entanto, é completamente a critério da pessoa que faz o jogo. Portanto, esta parte será deixada para você. Jogue o jogo e veja o que você não gosta. Tome nota das coisas que não são agradáveis ​​para você. Não se concentre apenas no negativo. Encontrar as coisas que você gosta também é importante. Sua capacidade de mudar estas coisas podem ser limitadas no momento, por isso anote-as. Elabore uma tabela de como você poderia mudar o jogo para melhor se for dada a oportunidade. (A tabela de pros e contras tem que ser entregue junto com o projeto)
Uma coisa simples que você pode ajustar agora para fazer o jogo mais agradável é a velocidade do jogador. Se você já jogou o jogo uma par de vezes, você percebe que o personagem se move muito lentamente e que isso pode tornar o jogo muito longo e prolongado. Para fazer o personagem rápido, você vai precisar modificar o "Motor Character (Script)" componente no "Player Object". Expanda a propriedade "Movement" no inspector view e alterar o "Max Forward Speed" (veja a Figura). O projeto tem como exemplo o valor 12. Tente fazer isso e ver o quanto ficou bom. Tente velocidades mais rápidas ou mais lentas e escolha uma que você gosta.
A melhor parte sobre como fazer jogos é que você pode começar a fazê-los da maneira que quiser. Segue abaixo um guia que pode ser uma boa experiência de aprendizagem. Neste exercício, você terá a oportunidade de modificar o jogo um pouco para fazer algo mais original.

• Adicione várias zonas de chegada. Veja se você pode colocá-las de uma forma que oferece aos jogadores mais opções ou desafios crescentes.

• Modificar o terreno para ter mais riscos. Originalmente as zonas deperigos são construídas como o poças de água (incluindo o script), quais poderiam ser os outros perigos?

• Coloque vários locais de respawn. Faça alguns pontos de perigo movê-lo para um segundo ou terceiro ponto de respawn.

• Modificar o céu e texturas para criar um mundo alienígena. Faça a experiência de mundo exclusivo.
Requisitos indispensáveis para a entrega
Full transcript