Sistema de geração de armas

Olá Giktayms, gostaria de falar sobre o meu primeiro projeto em c #. Como estou interessado em jogos de computador, queria fazer algo nessa área. Tomei uma idéia de uma série de jogos de Borderlands , a saber, um sistema de geração de armas. Eu tenho, é claro, muito simplificado.

Eu acho que é melhor começar do começo. Eu já tentei trabalhar em C ++, no entanto, algo não funcionou. Ele começou a se interessar pela linguagem c # no verão, inicialmente as videoconferências da Microsoft realmente ajudaram. Após o curso, eu queria fazer algo interessante. Então eu comecei a trabalhar.

O que eu queria desde o começo:

  • Trabalhar com arquivos .txt e .bmp
  • Salve arquivos e exclua-os do diretório especificado
  • Para que tudo funcione + para um processo de desenvolvimento agradável

O próprio sistema de geração de armas é um pouco complicado. No jogo Borderlands, uma arma de fogo é criada e as partes são apropriadas (Bundas, Protetores de Mão, Barril, etc.). Eles são montados em uma única peça e o equipamento acabado recebe as características correspondentes às peças. Ele também tem um fabricante, nome e nível. Há também uma lista separada das armas "lendárias" já criadas, com características especiais e baixa chance de cair. Eu fiz esse sistema em c #. Só queria fazer facas. Para começar, decidi gerar espadas a partir de duas partes: lâmina + punho.

O que implementou:

  • Lemos arquivos txt com listas de peças e características correspondentes.
  • Selecione aleatoriamente cada parte (lâmina + alça).
  • Conectamos suas fotos, obtemos a média aritmética de suas características, aplicamos modificações do fabricante, adicionamos seus nomes (adjetivo + substantivo).
  • Alguns métodos auxiliares: "vender armas", "encontrar um baú" e "matar um inimigo" (os dois últimos diferem apenas na chance de obter armas lendárias).

Os arquivos de texto eram o item mais simples do programa, tinham linhas de características: nome, velocidade de batalha, dano, chance de dano crítico, preço, fabricante, nível e número de imagem para as características dessa linha.

Aqui está uma visualização de arquivo de texto para espadas lendárias:
UltraLord 5 100 20 1000 humano 11 31.
TitanKiller 6 90 23 1000 orc 11 32.
SoulEater 4 120 21 1000 daemon 11 33.

Com fotos, era muito mais difícil. Eu tive que editar as imagens encontradas na Internet. Ele fez imagens em pixels de 200x600. Para fazer tudo encaixar, coloquei as peças exatamente no centro. Mais tarde, surgiu outro problema: o esquema de cores e os detalhes dos elementos diferiam. Esse problema pode ser resolvido no estágio inicial da criação de imagens: desenhe em uma cor e depois pinte a arma já criada.

Todas as opções possíveis para espadas convencionais:



Três espadas lendárias:



Vantagens deste sistema:

  • O número de armas acabadas está crescendo geometricamente com a adição de outra parte. Por exemplo, eu tenho 2 partes de 5 peças - um total de 25 espadas diferentes. Se você adicionar mais detalhes com 5 instâncias diferentes, o número de opções será igual a 125.
  • Adicionar emoção aos jogos é o desejo de obter armas das melhores partes.

Contras:

  • Todas as peças devem ser adequadas uma para a outra.
  • Mais difícil de implementar.

Publiquei tudo no GitHub , fiz comentários no meu programa. O processo de desenvolver, desenhar, estudar foi fascinante para mim. Negócios combinados com prazer. Talvez eu adicione mais tipos de armas: arcos, machados ... Também penso em transferir esse projeto para o Windows Forms com a adição de interatividade, para que eu possa escolher de quais peças montar. Se você tiver dúvidas ou escrever comentários, tentarei responder. Ficarei especialmente feliz com novas idéias.

Source: https://habr.com/ru/post/pt406635/


All Articles