Prática 17 e 18 – Elementos do desenvolvimento de jogos
Transcrição
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 2. Recursos Necessários Computador com o programa Macromedia Flash MX ou superior. 3. Conceitos Gerais O processo do design de um game pode ser uma das mais gratificantes experiências nos computadores de hoje. É um campo em que se fundem a criatividade e a experiência técnica. O desenvolvedor de um game deve ser um contador de histórias, um artista e um técnico. Para elaborar o escopo de games online educativos, é necessário primeiro saber quais são os requisitos do produto, no caso, o próprio game. Para tanto, é necessário estabelecer os principais elementos que compõem os jogos. No processo de design de um game existem fundamentos nos quais a maioria dos games são baseados. Sempre existirão exceções, é claro, mas, segundo RHODES, no geral existem regras simples nas quais bons jogos são feitos e, segui-las assegura que a sua audiência seja satisfeita. Ele os lista como os itens a seguir: 3.1. A idéia do jogo Está é o primeiro passo para uma boa formulação do jogo. É esta a ocasião aonde podemos coletar as idéias sem a necessidade de organizá-las. A pergunta que principal deve ser: Este jogo deve ser sobre o quê? É neste estágio de podemos decidir que tipo de jogo deve ser direcionado a sua audiência. 3.2. Gênero / Tipo Este é um passo simples, mas importante. É neste momento que devemos decidir exatamente qual será o gênero do jogo. Ele será um jogo de tiro ao alvo? Jogo de palavras? Quebra-cabeças? É preciso olhar para idéia principal e decidir qual tipo de jogo se encaixa melhor. 3.3. História Neste ponto decidimos exatamente o que acontece no jogo. Qual a história? Quais objetivos? Quais as ações desejadas? Se o jogo segue um enredo é necessário escrever um roteiro para guiar-nos na construção do jogo. De alguma maneira é como um roteiro de um filme, mas em vez de conter instruções para o câmara, ele contém uma lista geral de ações. Assim, o enredo deve conter detalhes de pontos de interatividade para que o jogador possa ser responsável por realizar as etapas do jogo. 1 Este roteiro também pode conter os diálogos, assim como, desenhos para ilustrar algumas cenas. 3.4. O planejamento do jogo Este é um ponto crítico no processo geral do planejamento de um game. O documento do planejamento de um jogo é o cume de esforços criativos tanto do time responsável pela comunicação visual quanto do time responsável pela programação. Neste documento que deve constar todo o escopo do jogo por escrito. O documento de deixar bem claro todas as partes do jogo, incluindo: O tema ou o enredo da história A listagem dos ambientes e uma detalhada lista do que eles querem transmitir Esboços ou mapas - A distribuição dos personagens com o respectivo papel, comportamento e visual. A idéia é guiar tanto os programadores quanto os artistas, esclarecendo o trabalho à fazer. Stroyboards para as animações e suas seqüências - Aspectos técnicos como fórmulas, esboços de ações, etc. Eles tem o propósito de representar visualmente alguns conceitos complexos. Planejamento - O objetivo do planejamento de um jogo é dar aos programadores as baselines que possam ser usadas como base para construção do mecanismo do jogo. O documento nunca pode ser considerado muito detalhado, pois quanto mais informação melhor para evitar conflitos e retrabalho. O planejamento deve ser a união entre os produtores, programadores e artistas. Devem haver encontros regulares para o propósito da confecção deste documento. Os produtores devem estar presente para determinar os requisitos, os programadores devem estar lá para determinar os requisitos técnicos e qualquer limitação possível no design, os artistas dêem estar presentes para sugerir idéias criativas e determinar as limitações visuais. Esta parte do processo é mais técnica do que criativa. Devemos determinar o que pode e não pode ser feito. É neste momento que os programadores devem falar com os artistas, por exemplo, que cada elemento deve ter mais de 400 vetores. Devemos achar o balanço entre o melhor visual possível e a alta performance do jogo. Ao mesmo tempo, esta é a oportunidade para os artistas sugerirem idéias que os programadores podem não acatar. O plano de fundo pode deslizar? As estrelas podem mudar com o tempo? As chamas da nave podem aumentar quando o jogador acelera? Neste pondo os programadores podem dizer sim ou não. Um bom programador tentaria acomodar a maior quantidade de idéias possíveis, pois estas guiariam para a criação de um ótimo jogo. Uma vez que este processo seja completado, o resultado será um documento claro e conciso, onde todas as partes possam ser usadas como referência. Ele também proporciona uma checklist para que os desenvolvedores sigam. 3.5. O mecanismo central Em qualquer jogo, antes que a história e os efeitos especiais sejam fundidos em um código, um mecanismo básico deve ser programado. O objetivo deste mecanismo é o de criar um framework no qual o restante do jogo possa ser escrito. 2 Uma vez que você tenha um mecanismo que carregue em níveis, mostre os inimigos, mova de acordo com os elementos e tenha um sistema genérico de colisão, a construção do game é uma questão de nível e design gráfico. O programador cria um molde no qual o resto do jogo pode se apoiar. 3.6. Nível, design gráfico e interação Uma vez criado o mecanismo central, começa o processo para incrementar este mecanismo. O programador cria a funcionalidade, o artista cria o conteúdo atual. O código proporciona as ferramentas, e o artista cria o mundo, ambos são igualmente importantes. Quando o artista cria os gráficos para o game e segue o planejamento, assim como respeita as limitações técnicas que possam ser impostas pela ferramenta, é hora do programador criar o mecanismo. Um mecanismo modular e expansível pode possibilitar que o artista crie 1 ou 100 animações e o código ainda funcione. Ao mesmo tempo, é a hora do programador determinar os parâmetros e as limitações da ferramenta, de maneira que o artista não perca tempo desenhando ou criando alguma coisa tecnicamente impossível de implementar. Este processo é um vai-e-vem. Tanto o artista pode reconhecer as limitações e modificar o design quanto o programador pode expandir seu programa para permitir acréscimos. A boa comunicação é essencial neste processo. Para decisão correta é necessário observar alguns fatores como: Escopo: O design está além ou aquém do planejado? Se o escopo do trabalho começou a crescer, algumas mudanças serão necessárias tanto no tempo quanto no custo do projeto. Deadline: Será que há tempo suficiente para as mudanças solicitadas? A resposta é comumente muito direta: sim ou não – facilitando a decisão. Prioridade: qual a prioridade do jogo? Mire nela. 3.7. Funcionamento do jogo Neste ponto do processo de criação, os elementos específicos do funcionamento do jogo são programados e solidificados. No estágio de funcionamento do jogo, os programadores e artistas devem adicionar elementos e coisas que em geral vão ajudar a preencher o jogo e transformá-lo em um jogo profissional. Por exemplo, adicionar bônus especiais para bons jogadores. 3.8. Inteligência artificial dos personagens Este passo não precisa necessariamente vir depois dos passos anteriores. Neste ponto devemos dar aos personagens do jogo alguma inteligência artificial. Ou seja, inserir alguma lógica neles, programá-los a agir com certa inteligência. Devemos ponderar nas limitações técnicas e de tempo para podermos construir personagens mais ou menos inteligentes. 3.9. Elementos da história Estes elementos são aqueles do enredo da história, eles fazem parte da experiência geral do jogo ajudando a compô-lo. Talvez estes elementos sejam animações que funcionam entre cada nível, ou quando o jogador consegue vencer o inimigo virtual. Estes elementos são responsáveis por dar ao 3 game um acabamento especial, uma aparência trabalhada, polida, terminada. São também, necessários para aumentar o interesse do jogador, incentivando-o a continuar jogando. 3.10. Som e música O projeto deve aplicar novas tecnologias de produção sonora e visuais, auxiliando na composição de um cenário lúdico para os jogos educativos e na ambientação do usuário com a interface. Os efeitos sonoros e visuais podem ser fatores importantes na comunicação, reforçando o conteúdo principal e instigando a exploração do game e, conseqüentemente, favorecendo o aprendizado e a memorização. Desta forma, eles podem auxiliar na navegação, guiar os jogadores por diversas cenas, indicar o progresso das descobertas e manter o site “vivo” nos momentos em que nada parece estar acontecendo. O som e a música devem ser estudados em dois momentos diferentes no processo de produção. Quando é necessário usar vozes e ação de personagens, o áudio é usualmente gravado bem cedo no processo criativo, de maneira que os responsáveis pela animação possam usar as vozes para mover os lábios dos personagens. A música e os efeitos sonoros, entretanto, são realizados comumente no final da produção. É somente neste momento que é possível ter os efeitos visuais e sentir o que o jogo realmente quer transmitir e, assim, determinar qual a música usar para dar ao jogo esta sensação de emoção. É a música que faz com que a mente humana tenda a assimilar o contexto e determinar como você deve se sentir. A combinação entre o visual e a sonoridade pode ser boa o bastante para fazer o jogo um clássico. A produção de efeitos sonoros é também um processo com vários estágios. No início da produção, simples efeitos sonoros são usados para permitir que o mecanismo de áudio seja testado, assim como, dar aos designers e desenvolvedores o senso elementar de como o jogo final será. Uma vez que o visual e a emoção tenham sido estabelecidas, os efeitos sonoros são mais trabalhados e modificados para expandir a experiência do jogo. 3.11. Interface com o usuário Interface com o usuário (IU) é um dos elementos finais na criação de games. Usualmente, no início, os programadores criam uma interface bem rudimentar, para facilitar o teste e o desenvolvimento do jogo. No final, entretanto, os artistas fazem com que esta interface seja realmente interessante. Lembrando que a interface é a primeira coisa que o usuário vai visualizar, e você nunca tem uma segunda chance de dar uma “primeira boa impressão”. A interface com o usuário geralmente consiste em: Botão de “play”: este é provavelmente a parte mais importante da interface com o usuário, e pode vir escrito de diversas maneiras, tanto em português quanto em inglês: “start”, “começa”, “play”, “jogar”. Ela pode ter uma série de portas de entrada, como por exemplo, uma série de telas convidando o jogador a escolher um personagem ou selecionar um nível de dificuldade. Esta parte da interface com o usuário tem um propósito: deixar com que o usuário comece a jogar. Salvar/ Download: Jogos que permitem os usuários a carregar ou salvar os jogos, geralmente permitem com que eles tenham estas ações através de algum tipo de interface. Algum tipo de lista ou tabela de games para download. Saída: eventualmente muitos usuários vão necessitar sair antes do jogo terminar, portanto é importante considerar a criação de um botão de saída e / ou pausar. 4 Opções: Muitos jogos tem opções variadas, e algumas podem ser configuradas. Itens como mapas, características de qualidade, controle de som ligado/desligado são bem importantes para os usuários. A interface com o usuário é a primeira oportunidade de agarrar o jogador no universo do game. 3.12. Teste Neste ponto, o jogo está quase finalizado e o produto estará pronto para alguma versão alpha ou beta. A versão alpha tende a ocorrer mais cedo no processo de desenvolvimento dos processos e é quando o jogo é dado a algumas pessoas de confiança para testar e jogar. A versão beta, por outro lado, é quando convidamos uma audiência bem maior para participar e testar o jogo. Durante esta fase os bugs vão aparecer. As pessoas que testam usualmente encontram muitos pequenos defeitos ou coisas ainda não descobertas. Assim, você obtém o retorno do game, e com ele muitas outras opiniões e sugestões. O feedback é importante também para saber as expectativas dos usuários finais e avaliar se é possível modificá-lo para torná-lo mais emocionante. 5 4. Jogo de quebra-cabeças O objetivo deste jogo é ser um jogo de quebra-cabeças simples e usável. O jogador pode arrastar as peças que estão espalhadas ao redor da grade para dentro dela. Quando uma peça correta é colocada perto do ponto correto, ela fica presa em seu lugar. O jeito de fazer este jogo é com um curto script associado à um movie clip “ações” que ficará fora do palco. Quando o usuário clica na tela, este script determina qual peça está sob o cursor. Ele então habilita que a peça seja arrastada. Quando o botão do mouse é solto, o código determina quando a peça está próxima do lugar correto. Se a peça está, então ela fica presa no mesmo lugar. Vamos começar com todos os movie clips com alpha igual a 75% para fazê-los ligeiramente mais claros. Então, quando o jogador põe a peça em seu lugar ele muda para 100% de alpha. Isto proporciona um retorno ao usuário que a peça está agora no lugar. Isto também é importante para ter certeza que a peça não está a 100% quando o usuário clica para arrastar, de maneira que se uma peça está adequadamente no lugar, ela não pode ser arrastada de novo. Você pode saber quando uma peça está na posição correta porque todas elas foram feitas de maneira que seus centros estão no centro da figura inteira. Por exemplo, a figura que está no canto superior esquerdo tem o seu centro afastado para direita e para baixo. Agora imagine cada peça construída como isto. Ponto central continua no centro da figura não importando aonde está a peça. Se você está inseguro à respeito disso, dê um exemplo no arquivo “p17_ativ1.fla”. Examine alguns movie clips das peças e você poderá ver como o centro das peças permanecem constantes. Isto simplifica bastante o código. Cada peça precisa estar exatamente na mesma localização das linhas de divisão para encaixar propriamente. De maneira que você não tem que adivinhar em que posição cada peça deve estar, elas estão sempre na mesma posição. 6 No arquivo, existem 24 peças de quebra-cabeças. Para que desenvolver estas peças primeiro é preciso uma imagem vetorial feita somente com preenchimento. Em caso de linhas é preciso convertê-las em preenchimentos. Se quiser, uma imagem .jpg também pode ser usada, porém, ela deverá ser quebrada (break apart). As linhas divisórias são feitas em um movie clip com a ferramenta lápis. Então, usamos as linhas das divisórias das peças para dividir a imagem em peças. Neste ponto é preciso fazer cópias tanto do movie clip que contém a imagem inteira quanto do que contém os formatos das peças. Para fazer com que a imagem fiquem cortadas de acordo com as linhas divisórias, basta copiar as linhas e colar em cima da figura. Com a seta seleciona-se todo o conteúdo de uma peça, para então cortar e colar no mesmo lugar (Ctrl+ Shift+V) em um novo movie clip. Depois de fazer isto para cada uma das peças, temos 24 movie clips. a) Caso você ainda não tenha aberto o arquivo “p17_ativ1.fla”, abra agora. b) Os movie clips estão no palco de maneira a formar a imagem completa. Cada um dos 24 movie clips deve ser nomeado de acordo com sua posição na grade. Por hora usaremos a seguinte organização: Coluna 0 Coluna 1 Coluna 2 Coluna 3 Linha 0 0-0 1-0 2-0 3-0 Linha 1 0-1 1-1 2-1 3-1 Linha 2 0-2 1-2 2-2 3-2 Linha 3 0-3 1-3 2-3 3-3 Ou seja, a primeira peça, do canto superior esquerdo, terá sua instância nomeada de 0-0 e assim por diante. c) Cada uma das peças deverá ter o Alpha 75%. No Properties Inspector faça esta mudança. d) Isto feito, já podemos tirar as peças dos lugares e embaralhá-las ao redor da grade. e) Selecione agora a grade que está no centro do palco e nomeie este movie clip de “grade”. Clique na camada “Ações” e arraste o movie clip “ações”, que está na biblioteca, para acima do palco. Nele, escreva o código: onClipEvent(mouseDown) { // pega a localização do mouse mx = _root._xmouse; my = _root._ymouse; // roda pelas peças procurando pelo clique for(x=0;x<6;x++) { for(y=0;y<4;y++) { peca = _root[x+"-"+y]; // vê quando uma peça está sob o cursor // e se ela ainda não foi colocada no lugar if (peca.hitTest(mx,my) and (peca._alpha < 100)) { // esta é a peça clicada peca.startDrag(); 7 // acaba com os loops, ou seja não procura mais x = 6; y = 4; break; } } } } f) Ele começa com onClipEvent(mouseDown), que reage ao ser clicado em algum lugar no palco. Este código roda em cada uma das peças do quebra-cabeças e encontra quando uma está em baixo do cursor. Ele também se assegura que a peça não está com 100% de Alpha, o que indicaria que ela já teria sido colocada em seu lugar. Se uma peça é encontrada, o Flash solta a peça com o comanto startDrag. Os loops então são abandonados. O comando startDrag é uma ação básica que permite que o usuário solte um único movie clip. O comando stopDrag desabilita a possibilidade de soltar. g) Quando o jogador solta o mouse, a peça a colocada na tela. O código, que vamos escrever, chega a distância do centro da peça a partir do centro das linhas da grade. Se elas estiverem mais perto que 10 pixels, a peça é movida para a posição exata aonde ela pertence. O efeito aplha é então forçado a ficar 100% para que o jogador veja e para que o código reconheça que a peça não pode mais ser arrastada. Acrescente o seguinte código ao movie clip “ações”: onClipEvent(mouseUp) { // não deixa mais a peça se mover stopDrag(); // pega a distância do centro da peça // ao centro da grade dx = _root.grade._x - peca._x; dy = _root.grade._y - peca._y; dist = Math.sqrt(dx*dx+dy*dy); // se está perto o suficiente, então libera no lugar if (dist < 10 ) { peca._x = _root.grade._x; peca._y = _root.grade._y; // põe na cor normal, sem transparência peca._alpha = 100; } } h) Salve agora o seu arquivo como “p17_ativ1_seunome.fla” e publique o arquivo com .html e teste. 4.1. Atividade 2 – Fazendo seu próprio quebra-cabeças 8 Na atividade anterior demos o passo-a-passo para desenvolver um quebra-cabeças de 24 peças. Agora você deverá fazer outro quebra-cabeças. Desta vez, da seguinte maneira: Com 30 peças, Com uma imagem que você desenvolver no Flash, Se o usuário soltar uma peça a 20píxels de distância, ela terá que ir para o lugar certo. Salve seu arquivo como “p18_seunome.fla”. Publique como html. Atenção: faça uma cópia de todos os arquivos para no diretório determinado pelo professor para correção. Boa noite! 9
Documentos relacionados
p11-Efeitos sonoros
Note que o nome especificado para o som é this._name. Este código usa o nome do movie clip como o nome do som. De maneira que, se o nome do movie clip é “loop2”, ele tenta tocar o som “loop2”. Perc...
Leia mais