"Matt" Sniper 3D GDD

Baixe o GDD (Game Design Document) do jogo "Matt" Sniper 3D aqui!

"Matt 2D" - BETA Demo

Saiu a versão BETA (Demo) do jogo "Matt 2D".
Baixe o jogo AQUI, ou clique na figura.

Para maiores informações sobre o processo de produção do jogo, clique aqui: post-mortem oficial.

3D Simulado

Apesar de a engine utilizada pela equipe para o "Matt" Sniper ser a Chien2D, desenvolvida por professores da PUC-PR, decidimos fazer um jogo em primeira pessoa, simulando um ambiente 3D como parte da estratégia de buscar com que o jogo capture o usuário dentro de um clima tenso e sóbrio.

Para que isso fosse possível, a primeira decisão foi que cada fase do jogo teria uma única vista, que não poderia ser rotacionada. Afinal de contas, não podemos esquecer que estamos trabalhando numa plataforma 2D, sem contar o volume de modelagem, programação e arte necessários para fazer um 3D completo, algo completamente fora do escopo do projeto e do período de tempo disponível.

A partir de aqui, utilizaremos a segunda fase do jogo - constituída numa missão em cenário urbano - para ilustrar nossa implementação. Eis como procedemos:

1) Modelo 3D do cenário Um modelo construído dentro do programa 3D Studio Max foi gerado e renderizado, constituindo-se na visão do jogador. Matt se encontra 54 metros acima do solo e a uma distância dos elementos do cenário tipicamente em torno de 100-250 metros.

Figura 1: Cenário 1 - versão final



2) Tamanho dos objetos móveis do cenário Escolhemos pontos de referência dentro do modelo, tomando suas coordenadas tridimensionais e suas coordenadas de tela para construir uma relação de variação do tamanho dos objetos de acordo com sua posição na tela. Dessa forma, um personagem que caminha ao longo da rua da esquerda na imagem abaixo, por exemplo, torna-se cada vez maior à medida que "desce a tela", aproximando-se do atirador. E o efeito contrário à medida que se afasta do atirador.

Figura 2: O personagem torna-se maior ao aproximar-se do sniper


3) Passando por trás e pela frente de objetos Um ponto muito importante para manter a impressão de um cenário tridimensional foi a possibilidade de objetos móveis - como pessoas - poderem contornar estruturas do cenário, como prédios. Assim, de acordo com a posição das pessoas na tela, elas poderiam estar ou não ocultadas por prédios, muros ou outros elementos.

Como foi feito: a) Foram armazenadas imagens separadas para cada elemento do cenário atrás do qual existisse a possibilidade de passagem de algum objeto. b) Armazenou-se uma lista com as coordenadas de tela desses elementos que definiam a partir de onde um objeto estaria atrás ou na sua frente. c) De posse dessa lista, um algoritmo controlou a sequência de renderização de cada elemento móvel e do cenário na sequência correta (se uma pessoa deveria estar atrás de um prédio, ela foi renderizada antes do prédio, e vice-versa).


Figura 3: Cortes (picotes) do cenário. As figuras mostradas aqui em destaque são renderizadas antes ou depois de um personagem, dependendo da posição deste último




4) Pessoas atravessando paredes é crime contra as leis físicas (e ninguém venha nos falar de tunelamento quântico!) Por fim, julgamos importante que o programa detectasse uma colisão dos elementos móveis do cenário com muros e prédios. Esta etapa poderia ser pulada se simplesmente limitassemos os movimentos das pessoas no cenário de forma que jamais tocassem muros ou prédios. Decidimos por não adotar essa limitação pelo fato de que levaria a i) movimentos muito simples por parte das pessoas, o que cortaria todo o clima com o qual nos comprometemos desde o início; ou ii) uma carga de trabalho para fazer movimentos que parecessem plausíveis tão grande... que nos arrependeríamos de não haver montando uma estratégia para detectar a colisão das pessoas com prédios e muros. De fato, a solução que criamos não foi complicada.

Como foi feito: a) criamos uma imagem semelhante à do cenário, mas com todas as partes acessíveis às pessoas pintadas em magenta (a cor padrão de transparência da Chien2D). b) Criamos um sprite com essa imagem. c) a Chien2D já tem implementada a colisão pixel-a-pixel (perfect pixel collision) entre sprites, portanto, quando detectada uma colisão, impedimos o personagem de seguir adiante.

Apesar da aproximação do prazo de entrega final, o desenvolvimento continua a mil por hora. Aqui vão alguns screenshots da abertura e do menu do jogo, ambos funcionando corretamente.

Figuras 1 & 2: Abertura & Menu principal

Personagens & Sprites

Aqui vão alguns exemplos de como os personagens serão utilizados no jogo "Matt" 2D. Cada linha representa uma animação específica do personagem. Foi preciso criar uma linha extra (a última) para a animação do personagem caíndo. Os templates foram adquiridos no site: www.opengameart.com

Figuras 1 & 2: Templates dos personagens do jogo (incompleto)

"Cenário 0" & Alvos

O Desenvolvimento continua, e agora já possuímos as "silhuetas" que servirão de alvo para a prática no "Cenário 0" ( tutorial para o jogo). A escolha da cor vermelha para os alvos, e a escolha do estilo do cenário foram baseadas no jogo "America´s Army".
O "Cenário 0" (zero) deve ser amplo, para que possamos espalhar os alvos em distâncias semelhantes às utilizadas nos campos de treinamentos militares.

Figura 1: A silhueta do mal
Figura 2: Cenário com os alvos em posições aletórias

Testes Com HUD

Geralmente, um jogo de tiro FPS possui um HUD, ou "Heads Up Display". O HUD serve como compasso e guia para o jogador, passando informações pertinentes sobre seus objetivos e o atual status da missão. Um HUD pode apresentar a direção do inimigo, munição atual da arma utilizada, quanto tempo falta para missão, ou mesmo um mapa do cenário.
Para o jogo "MATT" Sniper 2D, não será preciso passar muitas informações para o jogador durante as missões, sendo assim escolhemos um design minimalista, remetendo ao militar, mas sem camuflagens ou coisas do gênero.

Figuras 1 & 2: Testes com HUDs minimalistas, opaco e semi-transparente

"Matt 2D" - Andamento

Muitos conceitos do jogo "Matt 2D" já estavam escritos e produzidos, mesmo durante a produção do jogo "Franco: Atirando honestamente:

Figura 1: Argumentos do jogo Matt2D por Janderson

















Através destes pequenos esboços, foi possível chegar a uma idéia próxima de como gostaríamos que jogo funcionasse, permitindo o desenvolvimento de um pequeno "tech-demo".

Figuras 2 & 3: Exemplos do "tech-demo" "Sniper:Mata-Mallandro". Game produzido em Allegro.













O protótipo do jogo funcionou como deveria, permitindo que o jogador possa procurar seu alvo, mirar com o botão direito do mouse e disparar, podendo acertar o alvo.

Com o protótipo em mãos, agora temos o desafio de completar o jogo, mas para isso teremos que transitar o código da plataforma Allegro para a plataforma Chien 2D. Além disso será necessário reformular toda a arte produzida em 2D e, se possível, aproveitar o máximo no desenvolvimento da arte para 3D.

"Matt 3D": Pré-Projeto

Descrição do projeto:
"Matt" é um jogo do tipo FPS (First Person Shooter, ou tiro em primeira pessoa) simulando o trabalho de um atirador de elite ("Sniper"), onde o objetivo principal é cumprir diversas missões táticas, que irão evoluindo em dificuldade e complexidade.

Tema:
O jogo “Matt” será ambientado em um cenário contemporâneo moderno, tipicamente urbano, contemplando um centro de uma cidade, e seus arredores e alguns locais distintos, como um campo de tiro para treinamento.

PontosChave:
Para atingir seu alvo, o jogador deverá enfrentar os desafios impostos pelo cenário, tais como barreiras, edifícios, árvores, civis, entre outros. Além disso deverá saber lidar com os efeitos do vento, gravidade e/ou chuva, quando for efetuar os disparos.
O jogo será composto de três ou mais fases, com missões distintas. O jogo terminará após todas as missões estarem completas. A primeira fase será optativa e servirá de tutorial para o jogador aprender a utilizar os comandos do jogo.

Funcionalidades:
Será exigida uma simulação de gravidade em ambiente 3D, além da reprodução do comportamento de um rifle de precisão, onde os efeitos da gravidade e da atmosfera sobre a trajetória da bala serão incluídos. Será necessária a criação de modelos em 3D para cenários, armas, personagens e itens extras (como maletas, caixotes, munição, etc..). Efeitos sonoros serão buscados em fontes de uso livre, ou criados, na falta das mesmas. O jogo terá trilha sonora original.
Haverá a necessidade do desenvolvimento de uma IA (Inteligência Artificial) que faça com que os personagens (civis e inimigos) transitem pelos cenários de acordo com as suas “vontades”, e possam reagir caso “percebam” que existe algo acontecendo acontecendo ao seu redor (ex: tiroteio), procurando buscar algum lugar para se abrigar.

Jogabilidade:
O Jogador terá duas interfaces primárias com o jogo: o teclado e o mouse. Com o mouse, o jogador poderá acessar os itens dos menus e movimentar a mira para procurar seus alvos durante as missões. Com o botão esquerdo do mouse ele poderá: selecionar (no modo Menu) ou atirar (no modo Missão) e com o botão direito ele poderá efetuar o zoom do rifle (no modo Missão).
Já com o teclado, o jogador poderá acessar informações e relatórios sobre a missão em que ele se
encontra no momento (no modo Missão), além de detalhes sobre seu personagem (como munição, tempo restante, quantidade de alvos, direção do vento, etc..).
Após a introdução, o jogador irá entrar no menu inicial, onde poderá iniciar o jogo, carregar um jogo salvo, ver os créditos ou sair. Caso escolha “iniciar o jogo”, ele poderá escolher entre três níveis de dificuldade. Após escolher o nível de dificuldade desejado, o jogador iniciará o jogo.
O primeiro cenário do jogo é um estande de tiro, e servirá de tutorial para o jogador aprender os
comandos básicos do jogo. Um “briefing” (relatório) aparecerá na tela explicando ao jogador quais
são as metas daquela fase. Após atingir o número necessário de alvos, o jogador passará para o
próximo cenário, que funcionará de maneira semelhante.

Engine:
Existem atualmente três possíveis engines ou frameworks para o desenvolvimento do jogo “Matt”. Estas engines são: UDK (Unreal Development Kit), a UNITY e a plataforma XNA. A decisão final sobre qual engine será utilizada ainda não foi feita.

Categoria:
Jogo de simulação FPS (First Person Shooter) em 3D.

"Matt" ASCII: FRANCO: Atirando Honestamente














Jogo de tiro (simulando primeira pessoa) no estilo Tactical Assassin.
Objetivo é eliminar os alvos que aparecem na tela aleatoriamente.
As fases são completadas assim que todos os alvos nelas definidos são atingidos.

O jogo possui uma tela de abertura, com seleção de opção de dificuldade, e duas fases.
O jogo termina após serem completadas as duas fases.

O objetivo é atirar nos alvos. Para isso o jogador possuirá um rifle e munição. O jogador utiliza as setas do teclado para movimentar a mira, e efetua disparos utilizando a barra de espaços.
Caso seja necessário, o jogador poderá aumentar ou diminuir a velocidade do jogo para se adequar ao seu computador pessoal.

BAIXE O JOGO AQUI:
FRANCO: Atirando Honestamente

Pré-Requisitos:
Processador x86
MS-DOS
16K de memória RAM
Disco Rígido (Winchester) com 10 mega de memória
Teclado
Monitor
PC-Speaker

Recomendado:
Processador Core i7 Extreme 980X ou Superior
Windows 7 ou Superior
16GB de memória DRR3
Placa de vídeo GeForce 395 "FERMI" ou superior
Disco Rígido (HD) de 50 Terabytes ou superior
Teclado
Monitor LCD 22 polegadas
Placa de Som M-Audio Delta 1010 ou PC-Speaker

Para mais informações sobre o jogo, baixe o post-mortem
Post-mortem

 
Baseado no template Hotrod theme
Baixe o template aqui