p19 e 20-Caracteristicas de um bom jogo

Transcrição

p19 e 20-Caracteristicas de um bom jogo
Prática 19 e 20 – Características de um bom jogo
1. Objetivos
Estudar os elementos essenciais no desenvolvimento de jogos
Desenvolver um jogo em Flash
2. Recursos Necessários
Computador com o programa Macromedia Flash MX ou superior.
3. Conceitos Gerais
O diferencia um bom jogo de um ruim? Usualmente bons jogos são separados de jogos ruins por
critérios bem simples. Geralmente, nos jogos ruins, os defeitos podem ser facilmente identificados.
Os seguintes pontos são determinantes:
3.1. Performance técnica
Performance técnica é provavelmente o aspecto mais importante de um jogo. Isto inclui quão bom é
o funcionamento do jogo, qual a rapidez de resposta aos comandos, quão suave (fluído) ele é, quão
rápido mudam as frames da animação e outras características.
Não importa quão bonito os gráficos são, quão envolvente a música é, quão talentosos são os
vocalistas, se o jogo trava ou deixa de responder aos comandos, alguma coisa tem que ser mudada.
3.2. Interatividade e controle
A sensação de espacialidade e realidade causada pelas imagens tridimensionais configura-se como
um dos elementos no processo de imersão do jogo. Os outros elementos que também colaboram
para esse processo são: os movimentos, tanto os de cena (câmera virtuais), como os de
personagem (visualizados em primeira ou terceira pessoa); e a interatividade, levando em conta sua
relação com o corpo físico do jogador.
Imagens, sons, movimentos e sentidos modificam-se conforme escolhas, intervenções e
interpretações feitas pelo receptor-emissor. É neste momento em que os signos podem ser
modificados (construindo-os, desconstruindo-os ou destruindo-os), ganhado qualidade de “coisa”.
Além disso, o processo interativo promove um movimento bidirecional, ou seja, as representações
modificam aquele que as interpreta, e quem as interpreta modifica as representações.
Interatividade e controle são sempre descritas como ações de uso do jogo. Está ligado em como os
jogadores fazem os personagens mover, agir. Controle é a maneira de descrever a facilidade com a
qual o jogador pode fazer com que o jogo faça o que já estava determinado para que ele fizesse.
Interatividade é a maneira de descrever o processo mecânico pelo qual o jogador realiza
determinado controle.
Vários games se tornam populares pela facilidade de uso e interatividade que oferecem além de
possibilitar com que o usuário tenha uma intuição sobre as ações do personagem.
1
A ação o usuário deve produzir os resultados que eles esperam, e estes resultados devem ser
suaves, fluídos e realísticos. Se um jogo parece não seguir isto, os usuários podem não saber
necessariamente o que está errado, mas eles sabem que alguma coisa está estranha.
Controle não é só resposta ao teclado e mouse, ele pode ter uma boa ou má física. Existe
gravidade? Os personagens se movem com naturalidade?
3.3. História
É a história do jogo que vai extrair a emoção do participante. É através da história que o jogador vai
manter um grande interesse e sentir o propósito do jogo, por fim, é a história que proporciona a
motivação ao participante de progredir no jogo.
3.4. Objetivo, desafio e recompensa
Todos os jogos devem ser desafiadores para os jogadores e são eles que permitem com que os
jogadores tenham o senso de recompensa ao alcançar seus objetivos. O desafio deve ser sempre
conhecido pelo usuário e deve ser claro que existe uma maneira de superá-lo.
Os jogadores podem se sentir mal recompensados pelo esforço de alcançar um objetivo caso eles
não recebem alguma coisa que eles possam aproveitar desta experiência de jogo. Objetivos,
desafios e recompensas devem sempre ser usados para produzir mais objetivos, desafios e
recompensas. Uma vitória em um jogo pode ser a chave para começar um outro jogo.
3.5. Possibilidade de nova execução
Um bom jogo é um jogo que o jogador pode se divertir várias vezes. Uma das maneiras que o jogo
pode ser reproduzido é adicionando opções suficientes para que o usuários possa curtir o jogo
novamente, sem no entanto, repetir sua experiência. Isto pode ser obtido através do oferecimento de
graus de dificuldade ou opções de diferentes personagens, carros, etc... Não importa o jogo, a idéia
é fazer com que o participante volte a jogar várias vezes. Jogos são interativos e esta interatividade
faz com que as pessoas desejem jogar novamente.
4. Partes de um jogo na web
De acordo com ROSENZWEIG, embora cada jogo seja um pouco diferente de outro, algumas partes
de jogos para Internet parecem ter se tornado comum a todos eles. Ele considera as seguintes
partes como partes essenciais em um jogo na web:
4.1.1. Tela “carregando”
Os filmes em Flash carregam no browser do usuário. Isto significa que o usuário começa a visualizálo quando somente a primeira porção do filme tenha “baixado”, assumindo que a parte final do filme
esteja baixando na hora em que for necessária. Isto acontece automaticamente, quando do
programador deseja.
Embora streaming seja uma boa opção para animação, pode não ser para jogos. Na maioria dos
casos, ActionScript controla a aparência de itens no cenário, não a linha do tempo da animação.
Flash não é esperto suficiente para saber quais itens serão usados primeiro.
2
Por esta razão é aconselhável que a primeira cena seja a de “carregando”. A tela carregando mostra
uma mensagem para o usuário e espera até que o filme inteiro tenha sido carregado antes de
prosseguir para próxima tela.
4.1.2. Tela de entrada
A tela de entrada, é uma tela elaborada para impressionar o jogador. É uma tela interessante que
introduz o jogo ao usuário. É através dela que o usuário vai ter o primeiro contato com o jogo. É
preciso convencê-lo de que o jogo é interessante e vale a pena!
4.1.3. Instruções
Ter instruções no jogo é importante. Muitos jogos devem ser fácil para as pessoas jogarem sem
nunca ler as instruções, mas algumas pessoas gostam de instruções.
Em alguns casos, é possível combinar a tela de entrada com as instruções. Se o jogo for complexo
bastante é possível ter as instruções por várias telas em algum tipo de tutorial.
4.1.4. Imagens (planos) de fundo
Alguns jogos tem gráficos que cobrem a tela inteira, outros somente uma porção dela. O importante
é saber que eles compõem o ambiente dos jogos e fazendo-o um tanto mais atrativo.
4.1.5. Tela de finalização do jogo
Quando o jogo termina, o jogador usualmente é levado à tela de finalização do jogo. Estas telas
podem variar de acordo com a performance do participante. Se ganhar, pode ser a tela de
premiação, se perder, alguma que o encoraje a jogar novamente.
Às vezes, esta tela inclui uma lista com os nomes dos ganhadores em ordem de pontuação e talvez
permita com que o usuário insira o seu nome lá.
3
5. Atividade 1 – Aprendendo como funciona um jogo de memória
Este é provavelmente o jogo mais comum na web. Ele é simples de construir, empolgante para o
jogador, e de fácil customização para qualquer site.
O jogo de memória envolve uma grade de cartas, todas viradas de cabeça para baixo. Ele tem
sempre duas cartas iguais de cada figura. O jogador tem que virar duas cartas para cima por vez. Se
elas forem iguais, as cartas são removidas. Se não, elas são viradas para baixo de novo. O jogador
tenta lembrar aonde cada carta está localizada para então tentar combinar as cartas certas.
O objetivo deste projeto é criar um simples e versátil jogo de memória. O jogador pode pegar uma
carta e então uma segunda carta. Cada carta, quando clicada, vira para cima para revelar sua figura.
Se as cartas combinam, elas são ambas removidas. Se não, elas serão ambas viradas para baixo
quando o usuário selecionar outra carta.
a) Abra o arquivo “p19_ativ1_seunome.fla”
O arquivo tem só dois elementos na biblioteca para o filme todo. O primeiro é um movie clip que
contém uma quadro representando a carta com a face para baixo. Todos os outros quadros mostram
cada uma das figuras. Existem 18 figuras diferentes e com mais o keyframe da face virada para
baixo, formam o total de 19 keyframes. Se você quer que o clip mostre a carta para baixo, é só
enviá-la para o quadro 1.
O segundo elemento da biblioteca é um botão que está dentro do movie clip “cards”. Ele é usado
para reagir aos cliques dos usuários. Seu tamanho é idêntico ao das cartas. Ele é colocado na
terceira camada do movie clip “Cards”. Ele é colocado em baixo do fundo. O botão não será visto,
porém irá reagir aos cliques do mesmo jeito.
4
No começo do jogo tem 36 movie clips, arrumados em uma grade no palco. Tem dois clips em cada
figura, fazendo 18 pares de cartas.
Quando o jogador seleciona a primeira carta, a carta mostra sua figura. Então, quando o jogador
seleciona a segunda carta, ela também vira e é comparada com a outra carta. Se elas forem iguais,
ambas são removidas. Se não, nada acontece até que a próxima carta é clicada. Quando isto ocorre,
as duas cartas anteriores viram para baixo, e uma nova carta é mostrada.
b) Todo o código para este jogo está na linha do tempo da cena principal. O filme começa
chamando a função “initGame” . Esta função cria uma lista de 18 pares de cartas, pega
randômicamente uma carta da primeira lista e então coloca-as na segunda lista para misturar.
Em seguida, ele cria 36 cartas, todas em uma grade de 6x6. Cada movie clip
automaticamente começa com a face para baixo, mas uma propriedade do movie clip
informa o número que a imagem deveria representar.
Na camada “ações” insira o seguinte código:
initGame();
stop();
function initGame() {
// faz uma lista variada das cartas
cardsListOrdered = [];
for(i=1;i<=18;i++) {
cardsListOrdered.push(i,i);
}
// mistura a lista
cardsListSorted = [];
while (cardsListOrdered.length > 0) {
r = int(Math.random()*cardsListOrdered.length);
cardsListSorted.push(cardsListOrdered[r]);
cardsListOrdered.splice(r,1);
}
// cria clips das cartas e determina suas localizações
x = 0;
y = 0;
for(i=0;i<36;i++) {
attachMovie("Card","Card"+i,i);
_root["Card"+i].picture = cardsListSorted[i];
_root["Card"+i]._x = x*60+200;
_root["Card"+i]._y = y*60+50;
// move para o próximo ponto
x++;
if (x > 5) {
x = 0;
y++;
}
}
firstclip = 0;
}
5
c) A função “initGame” termina determinando o primeiro clip “firstclip” a 0. Esta é a
variável que vai segurar a referência à primeira carta clicada. Quando um movie clip é
clicado, o botão dentro do movie clip reage ao clique enviando uma mensagem para a linha
do tempo principal pela função “clickCard”.
A função clickCard pode tomar uma de três ações. Se “firstclip” for zero, então ele determina
o “firstclip” do movie clip que foi clicado e vira-o para cima ao dizer à lê para ir ao quadro que
tem a figura apropriada nele.
Se “firstclip” for uma referência o movie clip, então uma carta já está sendo mostrada. Neste
caso, o programa vira a segunda carta para cima, estabelece o segundo clip, “secondclip”, àquele
movie clip, e compara os dois movie clips. Se eles combinarem, ambos clips são imediatamente
removidos.
A terceira condição, a qual já foi verificada antes das duas outras opções, ocorre se o jogador clica
na mesma carta duas vezes. Neste caso, “clip” vai ser igual a “firstclip”. A carta é simplesmente
virada para baixo e “firstclip” vai para 0.
Antes que a função “clickCard” verifica uma destas três condições, ele checa se duas cartas já
estão para cima. Se sim, isto significa que o jogador já selecionou duas cartas e não conseguiu
combiná-las. Antes que a próxima carta vire para cima, estas duas cartas viram para baixo.
function clickCard(clip) {
// veja quado duas cartas estão sendo mostradas
if (secondclip != 0) {
// vira aquelas cartas de cabeça para baixo de novo
firstclip.gotoAndStop(1);
secondclip.gotoAndStop(1);
firstClip = 0;
secondClip = 0;
}
// ver quando a mesma carta foi clicada
if (firstclip == clip) {
// vira a carta de cabeça para baixo de novo
firstclip.gotoAndStop(1);
firstClip = 0;
// ver quando nenhum cartão está mostrando
} else if (firstclip == 0) {
// vira a primeira carta para cima
clip.gotoAndStop(clip.picture+1);
firstclip = clip;
// tem que ter uma carta mostrando
} else {
// vira a segunda carta para cima
clip.gotoAndStop(clip.picture+1);
secondClip = clip;
// vê se as duas cartas são iguais
if (firstclip.picture == secondClip.picture) {
6
// remove ambos cartões
firstClip.removeMovieClip();
secondClip.removeMovieClip();
firstClip = 0;
secondClip = 0;
}
}
}
d) Isto é tudo que precisa para o jogo. O botão, dentro do movie clip “cards” só tem uma linha de
código nele que envia a mensagem ao movie clip que foi clicado para a linha do tempo
principal.
on (press) {
// envia a informação do clique à linha do tempo principal.
_root.clickCard(this);
}
e) Salve seu arquivo como “p19_ativ1_seunome.fla”. Publique e teste o jogo de memória.
5.1. Atividade – Desenvolvendo um jogo de memória
Agora é sua vez de desenvolver um novo jogo de memória. Só que desta vez, você irá colocar novas
figuras e usar somente 8 pares.
Dica: Aproveite o código da atividade anterior para desenvolver este novo jogo.
Salve seu projeto como “p20_ativ1_seunome.fla”. Publique o arquivo e teste o seu jogo de memória.
Atenção: faça uma cópia de todos os arquivos para no diretório determinado pelo professor para
correção.
Obrigado!
7

Documentos relacionados

Prática 17 e 18 – Elementos do desenvolvimento de jogos

Prática 17 e 18 – Elementos do desenvolvimento de jogos Prática 17 e 18 – Elementos do desenvolvimento de jogos 1. Objetivos Estudar os elementos essenciais no desenvolvimento de jogos Desenvolver um jogo de quebra-cabeças em Flash

Leia mais