Desenvolvimento de jogos e defesa de um diploma ou "Como matei dois coelhos com uma panqueca de uma cajadada só"

Projeto de graduação


A criação de jogos e o ensino superior são geralmente mencionados como coisas incompatíveis, geralmente com bastante razão. Muitos desenvolvedores independentes de renome abandonaram a universidade. Vou falar sobre a experiência oposta. Sobre seu projeto bastante incomum e como ele conseguiu combinar negócios com prazer.

Estudei na RSUH em ciência da computação aplicada e ao mesmo tempo participei do meu hobby. E assim, quando chegou a hora de escolher o tópico do trabalho final de qualificação, pensei: “Por que adivinhar a escolha dela e escrever algum tipo de programa para canhotos quando já existe um projeto praticamente finalizado: meu primeiro jogo de quebra-cabeça”.

Cabia ao processo científico descrever o processo de desenvolvimento e transmitir aos professores e professores associados uma idéia muito abstrata do jogo. Não sem submissões: fiz apresentações, revisões de vídeo, mostrei um protótipo, relatei ao supervisor que ainda estava vivo e nos negócios. Mas devemos dar a eles o que lhes é devido e agradecer por apoiar a iniciativa não padronizada.

Como resultado, o material obtido durante o desenvolvimento foi suficiente para escrever um diploma único (plágio de 0%) completamente da minha cabeça e da minha experiência.

Inicialmente, meu tema era "Desenvolvendo um videogame lógico baseado em princípios geométricos". Posteriormente (de acordo com as normas ISO / IEC), a palavra "desenvolvimento" é substituída por "design", que é mais consistente com o texto do trabalho.

Sobre o jogo


Meu jogo é um jogo combinatório incomparável para Android.



Objetivo do jogo: transforme uma figura para que ela fique exatamente igual à segunda.

O jogo tem três modos.
No "Modo de transformação", os formulários são alterados clicando nos botões.



No "Modo de rotação", as curvas tridimensionais são imitadas.



O sofisticado "modo Esportes" combina os dois anteriores e foi projetado para tocar para um disco.



Há também uma coleção interativa de figuras, que é reabastecida à medida que você avança.

Antecedentes


O desenvolvimento do conceito de jogo foi facilitado pela minha paixão de longa data em construir figuras de muitos cubos. A partir de esboços nas margens do caderno, cheguei a formas mais complexas. Desenhos à mão livre recentes, esses fractais:



A habilidade de imagens de rostos sobrepostos e pensamento espacial treinado serviu para criar novas figuras compostas por triângulos. É assim que a arte conceitual inicial desenhada no CorelDRAW (ainda não está na vista isométrica) e em um dos modelos 3D do Blender:



Mais tarde, abandonei os gráficos 3D em favor da animação vetorial no Anime Studio Pro. Com base na hierarquia de formas e animações de transições entre eles, decidiu-se fazer um quebra-cabeça.

Lógica


A lógica do jogo está associada a várias formas geométricas interessantes. Assim, as trajetórias dos triângulos correm paralelas às arestas do cuboctaedro imaginário em forma de estrela e ao longo das linhas retas que atravessam seu centro e as interseções das arestas.



E os gráficos da lógica do primeiro modo de jogo (transformações) são hipercubos. Inicialmente, as configurações são interconectadas como vértices de um cubo 2 (quadrado). A cada passagem, um novo espaço de figuras é adicionado. No próximo início, a lógica já é um cubo 3D, depois um tesseract e, finalmente, um pentecto com uma seção tesseract.



O modo de rotação tem sua própria lógica, graças à qual apenas algumas animações de rotação para cada figura fornecem visibilidade da rotação em quatro direções e três graus de implantação.



Implementação


Então, vou lhe contar um segredo sobre como implementei o software de design de jogos. Isso pode ser formulado da seguinte maneira: um sistema complexo é uma implementação simples.

Uma implementação simples significa o uso de jogos 2D do Construct 2 para projetar um designer.No meu caso, usá-lo, tendo algumas de suas desvantagens, economizou tempo e concentrou-se mais na criatividade.

Descrevi a "hiperlógica" descrita acima como uma floresta de árvores binárias completas e a implementei linearmente no construtor usando eventos aninhados. Para evitar conflitos entre ações, ele introduziu variáveis ​​de bloqueio.

Otimização


Dada a presença de um grande número de animações no jogo (cerca de 500), a questão da otimização surgiu bastante. Não abordarei uma melhoria específica do “código” no Construto 2, mas direi sobre a otimização mais geral do componente gráfico. Para minimizar o consumo de recursos do sistema, precisávamos de:

  • composição de sprites (devido à simetria, as figuras podem ser cortadas em pedaços e montadas a partir de cópias de sprites de acordo com o tipo de mosaico);
  • cortar as bordas vazias das imagens (isso é significativo com um grande número de imagens);
  • animação reversa (em vez de criar uma animação separada com a ordem inversa de quadros, é melhor reverter a existente);
  • abaixar a taxa de quadros para 12 qps e reduzir a resolução dos quadros intermediários da animação;
  • o uso de cores de 8 bits (essa profundidade de cor é completamente invisível devido às características da paleta do jogo).

Imagens isentas de direitos: tesserato, penteto, cuboctaedro estrelado retirado da Wikipedia.

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


All Articles