Início » Armas de Fogo » Esboçando um sistema de armas de fogo – Parte 01

Esboçando um sistema de armas de fogo – Parte 01

Hora de continuar com o meu diário de projetos que estão virando artigos diversos. Ontem publiquei um pouco sobre UML e hoje vou começar (numa série de 2 artigos) a falar um pouco sobre armas de fogo. Não, este post não é para falar das armas propriamente ditas, mas para planejar e esboçar um sistema de armas de fogo para games que usem este tipo de funcionalidade. Aí incluem vários tipos de games, como os games de tiro em primeira pessoa (First Person Shooter), terceira pessoa e games de espionagem. Como o meu projeto (ainda farei um post melhor e atualizado sobre o mesmo aqui) é sobre um game de espionagem, comecei a planejar como que as armas de fogo terão influência da jogabilidade. Para isso, peguei a Gamers Book 2 (revista bem antiga) e analisei um pouco sobre o game Goldeneye, do Nintendo 64, considerado um dos melhores games para o console.

Num game qualquer, uma arma do personagem possuem vários atributos, como o poder de ataque, defesa (caso de um escudo) e, no caso de armas de fogo (longo alcance), podemos também colocar o tempo de carregamento da arma, seu raio de alcance, o barulho do tiro e a quantidade de balas no pente. Eu peguei algumas referências de Goldeneye (e de outros games que já cheguei a jogar) e cheguei a algumas conclusões:

1 – Quantidade de armas que podem ser carregadas pelo personagem: O personagem principal poderá carregar 3 armas de fogo, sendo duas pequenas e 1 grande. Duas pequenas já que, em teoria, dá pra usar as duas mãos para armas pequenas. Já uma arma grande (como um rifle) é necessário usar as duas mãos e com isso eu defini pro personagem carregar apenas uma, que ficará nas costas, como em Splinter Cell:

Aí entramos num problema inicial: no jogo será possível trocar de arma? Se for possível, teria de ter um limitador de número máximo de armas e as mesmas teriam de ser colocadas na fase para poderem ser coletadas. Se eu defini apenas 3 armas (isso varia de cada projeto) caso o jogador encontre outra arma no local o jogo terá de limitar que a capacidade máxima e avisar ao jogador de que o número máximo de armas chegou ao seu limite. Aí você pode dar duas opções ao jogador: jogar uma arma fora e pegar a nova ou simplesmente não pegar a arma, aproveitando elementos como o pente de balas.

Ah, mas em Tomb Raider a Lara Croft carrega trocentas armas naquela mochilinha que não caberia muitas! Mas isso vai variar do grau de realismo do seu game. Se você preza a diversão, então você pode não limitar a quantidade de armas.Caso queira deixar com muito realismo, aí limite. Mas antes de fazê-lo, pense: isso pode deixar o jogo divertido? Ou o realismo demais pode prejudicar? Isso é assunto para outro artigo!

2 – Combinação de armas: cheguei a cogitar isso, de poder juntar várias armas e pegar os melhores atributos de cada uma e ter uma super-arma no jogo. Dependendo do tipo de jogo, isso pode ser até necessário, mas convenhamos: isso pode tirar um pouco a graça do jogador. Aí você pode colocar desvantagens em cada troca, para que o jogador pense se vale a pena ou não combinar duas armas. Por exemplo: se eu tenho duas armas quaisquer e qao combiná-las o ruído e a quantidade de balas pode diminuir

Mas isso varia de cada caso. Tudo tem de ser analisado. Teoricamente, na vida real, é bem difícil ter alguém que consiga, em tempo hábil, tirar partes de uma pistola e colocar em outra. Só pensei nessa possibilidade já que seria uma mecânica de jogo eficiente.

No meu caso eu retirei esta mecânica já que ficaria mais difícil projetar e executar essa funcionalidade. Aí entra uma questão bem interessante do game design: o conhecimento de várias áreas do desenvolvimento de jogos. Antes de pensar numa funcionalidade, pense: se eu fosse programador, seria fácil implementar isso numa linguagem? OK, muitos não tem conhecimentos de programação, mas acredito que a maioria das pessoas conseguem pelo menos inventar um modus-operandi qualquer. Ou seja: fazer, passo a passo, como seria esta funcionalidade. Exemplo:

  1. Pegue duas armas no menu.
  2. Defina quais atributos podem ser usados numa troca com outra arma. Exemplo: transferir o tamanho do pente de balas.
  3. Analise se a outra arma pode aumentar o tamanho do pente. Se puder, então troque a quantidade pela nova arma.
  4. Exia isso ao jogador.
  5. Pergunte ao jogador se é isso que ele quer.
  6. Caso o jogador queira, grave isso e deixe pronto para uso do jogador.
  7. Caso ele não queira, volta a posição inicial das armas.

Bom, confesso que o exemplo acima é um exemplo muito ruim, mas acredito que você conseguiu entender a situação. Acima eu defini como seria a funcionalidade de uma combinação direta entre duas armas. E não irei colocar no game design do jogo, já que o nível de complexidade é imenso. E como sou programador, quero cortar algumas possíveis dificuldades que posso ter caso eu esteja na equipe de programação do jogo (caso eu chame uma equipe).

3 – Upgrade de armas: Eu vi a palavra upgrade de armas ao ler sobre o Resident Evil 5 numa revista ontem e confesso que não pensei nisso neste artigo, mas é algo a se cogitar no futuro. Dependendo do projeto você pode espalhar no jogo objetos que possam melhorar as armas, sem precisar de fazer combinações. O normal é ter um silenciador, mas você pode colocar outros apetrechos. Isso vai variar de jogo para jogo.

4 –Atributos da arma: Chegamos ao ponto onde queria chegar! Como no Goldeneye e em vários games de tiro, cada arma possui atributos diferenciados que podem fazer diferença na mecânica de jogo. Por exemplo: se o raio de ação seja muito pequeno, caso o inimigo esteja muito longe, o dano causado pela bala ao atingir o alvo pode diminuir com a distância. E isso pode ser definido ou não pelo game designer.

Então, me baseando nos conhecimentos atuais que tenho, esbocei no StarUML uma classe de armas de fogo:

Bom, para um iniciante como eu, até que ficou bastante satisfatório! E a lista é baseada nos conhecimentos atuais. Acredito que se eu tivesse jogado mais games de tiro, poderia colocar algum elemento interessante de algum jogo. Dica para futuros desenvolvedores: jogue muito. Quanto mais referências mentais você tiver, melhor na hora de projetar algum elemento de um game.

Como o artigo ficou enorme, vou continuar no próximo artigo, onde explicarei cada atributo e colocarei uma tabela com alguns exemplos que inventei para o projeto. Caso queira comentar, criticar ou dar sugestões sobre este assunto, pode comentar sem problemas!

Relacionados e Publicidade