sexta-feira, 21 de maio de 2010

007 - Space Invaders (2) - Visão geral e nave

Aqui falarei sobre como irá ser a mecânica básica da nave.
  • Terreno
  • Visão do jogador
  • Movendo a nave pela tela
1. TERRENO
Para melhor trabalharmos, criaremos tudo em cima de um terreno provisório. Vá no menu "Terrain --> Create terrain".

Posicione na tela "Inspector >> Transform", position, x=0, y=0, z=0.

Se quiser coloque textura no terreno, mas deixe - o plano!

2. VISÃO DO JOGADOR
Geralmente o unity possui scripts para jogos em primeira pessoa, daí não existe um script que mova apenas o personagem, deixando a câmera fixa. Neste jogo, tentaremos criar uma falsa aparência de 2d com vista de cima.

Basta posicionar a câmera acima do cenário e rotaciona - la em 90 graus. Em "Inspector >> Transform", faça Rotation x = 90.
Na tela "Scene", posicione a câmera como melhor achar conveniente. Oriente - se usando  a tela "Game".

3. MOVENDO A NAVE PELA TELA
Para criar o desenho da nave, pode - se usar um programa de modelagem, pois o Unity não é aconselhavel para tal intuito.

De forma primitiva, usaremos aquilo que o programa pode nos disponibilizar, ou seja, um cubo. Vá ao menu "GameObject >> Create Other >> Cube"
Aperte F2 e renomeie para "Nave"

Na tela "Inspector >> Transform", ajuste as dimensões do cubo: scale x = 200; y = 10; z = 100

Para mover a nave, aí é que entra a parte de programação. Na tela "Project", clique em "Create >> JavaScript."

Aparecerá na mesma tela um script com o nome "NewBehaviourScript". Aperte F2 (Windows) e renomeie para "Mover nave" (coloque outro nome a gosto, desde que não tenha acentuação gráfica.).

Clique duas vezes no script. Abrirá uma nova janela no UniSciTE (programa do Unity para programar scripts):






















Escreva o script abaixo:

var velocidade = 30;

function Update () {
    transform.Translate(Input.GetAxis("Horizontal") * velocidade, 0, 0);
}

Dessa forma a nave se moverá com a velocidade que você determinar sempre que esquerda ou direita (ou A e D) forem pressionados. Por default, ela se moverá à 30 fps, podendo ser alterado fora do script na tela "Inspector".

Aperte Ctrl+S para salvar.

Volte ao unity.

Pegue o script "Mover nave" da tela "Project" e arraste - a para dentro da "Nave" na tela "Hierarchy".

Ctrl+S para salvar. Ctrl+P para testar o jogo.

A princípio a nave se moverá para alem da visão da tela, pois ainda não limitamos por onde ela ira se movimentar. Isso será feito mais adiante.

terça-feira, 18 de maio de 2010

006 - Tocando Space Invaders (1) - Introdução.

Aqui vou falar sobre como estou tentando desenvolver o space invaders para o processo seletivo.

Em programação, basicamente tentarei:
  • Mover a nave
  • Fazer a nave atirar
  • Desenvolver a ai dos aliens e do boss
  • Sistema de levels
  • Desenho do jogo
  • Menu
  • HUD
  • Jogabilidade
Algumas dessas coisas já expliquei nas postagens anteriores, mas nas próximas postagens irei detalhar os processos.

005 - Processo Indigente 5ª semana - Hora de tocar os projetos

Venho tendo um pequeno problema com a programação.

Já resolvi o problema de atirar...

Mas não o de o tiro atingir determinado objeto (ou seja, sumir!)

Logo, dediquei quase o dia todo para tentar eliminar o tiro.

Fiz busca na internet mas nada encontrei.

Acredito que o problema esteja no script de mover o tiro, pois ele move tanto a matéria prima que precisa ser colocada no cenário como o tiro que vou clonar. E quando tenta - se eliminar o clone acabo por eliminar a matéria prima.

Qual seria o plano? Colocar alguma coisa que mate apenas os clones e não a matéria prima.

Os trabalhos foram regados com muitas brincadeiras. MACARRÃO INSTANTÂNEO.

Só estando lá para entender.

004 - Processo Indigente 4ª semana - E o game design ficou bom?

Levamos a documentação de game design para análise.

Constatou - se que o texto estava desorganizado e que o sistema de bonificação estava desigual. E recebemos dicas:

Organizar tudo em 3 tópicos: objetivos, desafios e recompensas

Os objetivos podiam ser subdivididos em primários (objetivo principal do jogo), secundário (objetivos que o jogador terá de cumprir para concretizar o objetivo principal) e terciário (objetivos relevantes mas que poderão ajudar o jogador  em seu objetivo principal)

Quanto aos desafios podemos citar os tipos de desafio que o jogador terá de encarar.

E as recompensas os tipos de powerups e o que eles irão fazer no jogador.

Elder também explicou sobre os tipos de desafios - destreza, resistência... - detectar quais desses desafios seriam colocados no jogo e definir um padrão de força para jogador e aliens.

003 - Processo seletivo 3ª semana - Grupos e projeto

Era para ter mais alguma coisa, mas o instituto de matemática foi fechado por causa do concurso para diplomata. Ninguém entra.

Dividiram - se os grupos. Agora vamos começar a desenvolver a documentação (game design e level design) para uma versão do clássico Space Invaders.

Traduzindo, vamos falar sobre as regras do jogo: o que o jogador tem que fazer, como vai ser o desenho do jogo, controles, personagens, etc.

Tenho no meu grupo, alem de mim (programação), Luísa (roteiro), Kleber (som), Sérgio, Danilo "Pitoko", Nicole, Rafael Villa, George e Jessele.