O processo de desenvolvimento de um game
Primeiramente precisamos compreender todo o processo de criação de um game, partindo desde a pré-produção até a pós-produção. Pré-produção O Dicionário Aurélio traz como significado para a palavra “planejamento” o seguinte: “Ato de projetar um trabalho, serviço ou mais complexo empreendimento”.
Considerando que um game é um trabalho, um serviço e também um complexo empreendimento podemos concluir que o planejamento é essencial para o sucesso de um jogo. É nesta fase que todo o jogo é planejado, a equipe de desenvolvimento se reúne e discute as ideias do jogo, tais como o público alvo, como ele será desenvolvido, os objetivos do jogo, o gênero, dentre várias outras questões que são muito importantes para um game de sucesso. Um erro comum por parte dos grupos iniciantes e pequenas empresas é desvalorizar essa etapa no processo de desenvolvimento de um game e esse erro pode custar caro! Por mais que um jogo tenha os melhores gráficos, se ele não tiver uma história e uma ação competente e que envolva o jogador durante todo o jogo, ele será um fracasso. Essa etapa ainda abrange vários outras subetapas tais como o game design, que define a história do jogo, a jogabilidade, as escolhas que o jogador poderá tomar no mundo do jogo e as consequências consequ ências que q ue essas escolhas terão t erão para p ara o decorrer do jogo e etc. Durante todo o processo de game design é comum a equipe responsável desenhar diversos rascunhos de como será ambientado o game, a jogabilidade, a tela que será apresentada ao jogador, como será os personagens do jogo e etc.
O próximo passo é reunir todas as informações e ideias desenvolvidas ao longo da préprodução em um documento chamado DD (design document), esse documento é uma espécie de script de filme, contendo detalhes de como será o jogo. Esse documento é muito importante para a equipe de desenvolvimento, pois ela se baseará neste documento para colocar as ideias em práticas.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Desenvolvimento
Após um longo período no processo de pré-produção, chega a hora de começar a colocar as ideias em prática e começar a desenvolver o jogo. É neste momento que tudo começa a ficar interessante, pois, todo o ambiente do jogo começará a ser criado, os personagens terão vida e a história do jogo vai tomando forma. É importante lembrar que nessa etapa os designers e os responsáveis pela pré-produção ainda trabalham ativamente, uma vez que sempre é preciso fazer alguma alteração no projeto do jogo, seja por motivos técnicos ou por os designers terem desenvolvido uma ideia melhor. Essa etapa costuma ser a mais longa de todas, pois envolve toda a programação do jogo, dos personagens, dos gráficos e etc. Outro ponto importante é que nesta fase não são somente os programadores que trabalham, durante o desenvolvimento entram em ação também os artistas gráficos, responsáveis pelas texturas, modelos, animações e etc. Pós-produção
Essa etapa vem logo após o jogo ser lançado e ao contrário do que muitos pensam, o trabalho não para pelo fato de o jogo ter sido lançado, ele ainda continua a todo vapor. A equipe da pós-produção acompanha todo o feedback do jogo (e também busca um), fica atenta a possíveis bugs para lançarem correções(patches) e caso o feedback seja bom, uma possível expansão. Técnicas e termos usados no desenvolvimento dos games
Agora que nós já temos uma ideia de como tudo acontece desde o planejamento do jogo até a finalização dele, podemos partir para algo mais interessante, vamos entender agora algumas técnicas e termos bastante utilizados durante o desenvolvimento de qualquer jogo. Frames por Segundo(FPS)
O conceito de frame por segundo ou FPS é muito importante. Basicamente FPS significa quantas vezes por segundo a tela é atualizada, é essa taxa de atualização que nos dá a sensação de animação do jogo. Quanto maior a taxa, mais suave é o movimento das imagens. Os filmes, por exemplo, possuem um Frame Rate(Taxa de Frames) de aproximadamente 24 fps. Um exercício interessante para entender bem a diferença entre uma taxa de frame alta e uma baixa é comparar um filme qualquer com uma animação do tipo stop-motion stop-motion,, ou com uma daquelas gif’s animadas, em que temos uma baixa taxa de quadros por
segundos.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
É de suma importância o correto entendimento e o correto uso desse conceito. Se não aplicarmos corretamente, nosso jogo rodará com taxas de frames que dependerão única e exclusivamente da potência do computador que está rodando o jogo. Como a base de um jogo é um loop (uma repetição), se não especificarmos uma taxa de frame limite ou uma forma de limitar a velocidade de atualização, o loop será executado muito rápido, consequentemente teremos muitas atualizações em um segundo, causando assim um movimento muito acelerado. É importante lembrar que, apesar de parecer à primeira vista, quando limitamos ou especificamos de alguma forma um limite para a taxa de frames, não estamos fazendo o jogo se tornar mais “pesado”, “pes ado”, pois o limite se dá em e m função do tempo e não deixa dei xa o jogo de f orma orma alguma mais “pesado”.
Sprites
Os sprites são estruturas com imagens próprias que permitem a criação de animações e o livre posicionamento delas na tela. Basicamente todos os objetos que possuem animação ou algum movimento em um jogo são chamados de sprites. Um sprite pode ser só uma imagem com um quadro fixo ou pode ter vários conjuntos de imagens configurados, formando assim animações. A imagem abaixo mostra um exemplo de um sprite que contém várias imagens para caracterizar uma animação.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Para criar uma animação é preciso ter uma sequência de imagens lógicas. Tomando como base o exemplo da imagem acima, poderíamos dividir essa imagem através das coordenadas, dadas em pixels, em várias “sub-imagens” (cada sub-imagem se refere a um quadro da animação) e assim definirmos a sequência de atualização das imagens. Note que, se atualizarmos sem o controle do tempo (fps), teremos o problema do movimento acelerado, explicado no tópico anterior.
Vetores
Os vetores são estruturas muito importantes para a construção de jogos em duas dimensões (jogos 3D utilizam-se de matrizes), eles são a base para qualquer jogo. Vetores são usados para o posicionamento e para as movimentações dos objetos na tela em variadas situações. Um vetor pode representar a distância entre 2 pontos (pode ser entre 2 personagens) e a direção de um movimento. Os vetores armazenam as coordenadas na tela, se temos um vetor A(12,10), esse vetor poderia ser representado da seguinte maneira:
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Para descobrir a distância entre dois pontos precisamos relembrar o teorema de Pitágoras. Considere um outro vetor A(10,20) e um vetor B(30,35), podemos calcular a distância entre eles aplicando o teorema de Pitágoras:
Poderíamos ainda dividir as coordenadas x,y do vetor AB pela distância descoberta, com isso teremos o chamado vetor unitário que indica o sentido do vetor, muito utilizado na movimentação dos objetos na tela. Outra coisa importante é que o sistema de coordenadas difere um pouco do sistema cartesiano ao qual estamos acostumados. No sistema cartesiano o eixo Y cresce de baixo para cima, já no sistema de coordenadas da tela do computador o eixo Y cresce de cima para baixo.
The world's largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Tudo isso que vimos até aqui demonstra o quão importante é a matemática no desenvolvimento de jogos, portanto, não basta ser um bom programador, tem que ser um bom matemático também! Detectando Colisões
Fazer a detecção de colisão entre dois objetos, é basicamente verificar se esses dois objetos se sobrepõem. Uma forma de fazer isso seria verificar se os objetos possuem pixels (pontos) que ocupam a mesma posição na tela. Porém, isso não seria uma técnica muito viável se tivermos muitos objetos na tela. O que ocorre é a utilização de formas geométricas que circundam os objetos, dessa forma, podemos utilizar métodos bastante simples para determinar se as formas geométricas colidem. A forma geométrica será definida de acordo com o objeto, se for uma bola, a melhor forma geométrica será um círculo, se for um personagem provavelmente a melhor opção será um retângulo. Para verificar a colisão entre 2 círculos, por exemplo, poderíamos utilizar u tilizar o seguinte teorema: “dois “doi s círculos círcul os colidem colid em quando a distância distân cia entre seus centros é menor do que a soma dos seus raios.”
Inteligência Artificial (IA)
Para finalizarmos, temos a IA. Basicamente a IA é um recurso utilizado para criar autonomia aos personagens que não são controlados pelo jogador, com o objetivo de gerar uma interação com o mesmo. Diversos elementos do jogo exibem, de uma forma ou de outra, certo nível de inteligência. O grande objetivo é desafiar o jogador. Atualmente, existem diversas técnicas utilizadas para implementar inteligência artificial em jogos. Dentre elas, há máquinas de estados finitas, agentes, redes neurais, algoritmos genéticos, entre outros. Bem pessoal, finalmente chegamos ao fim, espero que tenham gostado e até a próxima!