Como escrever um jogo em um mês sem se distrair do seu trabalho principal

imagem



MoonGun é um jogo de ação / estratégia sobre como defender a base lunar dos asteróides. O jogo foi criado por Ivens Serpa - autor de muitos artigos sobre design de jogos - como parte do Github Game Off Game Jam em novembro de 2020. Ele lidou com isso sozinho em seu tempo livre do trabalho. O jogo recebeu muitas críticas positivas, por isso seu criador decidiu compartilhar a experiência de seu desenvolvimento: descrever todo o processo de criação e compartilhar os métodos que utilizou, incluindo as etapas de concepção, planejamento, desenvolvimento e lançamento.



Antes de passar ao tema do artigo, vale a pena mencionar algumas notas importantes: este material é mais sobre o design do jogo do que o lado técnico de seu desenvolvimento. O projeto foi desenvolvido no Unity 3D (versão 2020.1), com o qual o autor já está bastante familiarizado e para o qual já escreveu outros jogos. Apesar de ter trabalhado sozinho no projeto, amigos o ajudaram, testando o jogo e compartilhando suas ideias sobre o assunto. A maioria dos ativos foi obtida da Internet (por exemplo, do site Kenney.nl ) ou foi feita pelo modelador Kaleo Mendes .





Jam, tema e ideias de jogos



Game jam é uma competição de desenvolvimento de jogos em que os participantes tentam desenvolver um jogo do zero em um curto período de tempo - geralmente de 24 a 72 horas. Em novembro, o GitHub sediou o Itch.IO Game Off Game Jam, que durou até novembro. Esses jams costumam ter um tema central que orienta o processo criativo dos jogos que estão sendo desenvolvidos. Em 2020, esse tópico era sobre a lua .



Os desenvolvedores podem interpretar o tópico da forma mais livre possível, a criatividade é a chave aqui. É também um dos critérios para classificar os trabalhos e escolher os vencedores.



Portanto, a fase de conceito deve começar com um brainstorming da mecânica do jogo e das ideias relevantes para o tópico.



Como resultado desse brainstorm, Serpa teve três conceitos principais:



  • , , — , ;
  • , , ;
  • , .


Embora todas as três ideias pareçam boas, havia um problema com sua escala: a maior parte da funcionalidade básica de que precisavam simplesmente não podia ser implementada em tão pouco tempo.



A segunda ideia é baseada na física e requer uma extensa base de código para tornar o jogo realista. A viabilidade técnica pode comprometer o design e tornar a prototipagem inicial muito difícil. Como resultado, você pode arriscar - e gastar tempo em um jogo realista que não é divertido de jogar.



Quanto à história interativa, a viabilidade técnica é insignificante, mas o processo criativo não. Ao empreender a implementação dessa ideia em apenas um mês, você corre o risco de receber uma história fascinante que seria, na verdade, apenas um romance visual - sem quaisquer elementos de jogabilidade notáveis.



Fora esses fatores, ainda não estava claro qual mecânica seria melhor usar aqui - qual seria a principal força motriz do jogo. Afinal, é melhor começar a desenvolver um jogo com um protótipo de uma mecânica e, então, trabalhar nisso até atingir uma jogabilidade viciante e levar o jogador à linha de chegada.



Assim, a ideia de arrecadar recursos foi tomada como base para o futuro jogo. E como apenas clicar em botões é muito chato, tomei como inspiração Space Invaders , e o conceito do jogo em si foi formulado da seguinte forma:



O jogador controla um canhão (torre) que protege a base lunar da queda de asteróides, bem como objetos básicos (mina, laboratório e hangar) que coletam minério lunar até que a lua se esgote (condição de vitória).



Abaixo você pode ver uma imagem do primeiro protótipo funcional:



imagem

MoonGun Versão 0.1 - não muito bonito, mas protótipo funcional





Protótipo e hipóteses



Para testar as hipóteses iniciais, foi feito o primeiro protótipo do jogo. E como nenhuma dessas hipóteses estava relacionada a gráficos ou desempenho, os visuais, como você pode ver na imagem acima, estavam longe de ser os mais impressionantes.



Uma versão curta dessas hipóteses soava assim:



  1. É interessante ou excitante atirar em asteróides caindo?
  2. Você pode simular uma superfície lunar com uma grande esfera 3D?
  3. Devo controlar a arma usando o teclado ou o mouse?


Havia também várias hipóteses técnicas a serem testadas, principalmente relacionadas ao lançamento do jogo como uma construção WebGL usando Unity . Devido à pandemia, fazia sentido hospedar o jogo diretamente no Itch.io para facilitar o teste e a distribuição das versões. As preocupações eram quanto tempo levaria para passar por todo o ciclo de compilação-implantação-teste na plataforma Itch.io (em horas ou minutos) e, em seguida, qual qualidade gráfica poderia ser alcançada para que uma taxa de quadros aceitável fosse mantida ao iniciar o jogo no navegador.



O primeiro protótipo teve muito sucesso. Não que todas as hipóteses tenham sido confirmadas, mas todas receberam sua avaliação, e esse é o verdadeiro propósito da prototipagem. A primeira versão do jogo foi postada no site no dia 3 de novembro. O ciclo de compilação-implantação-teste levou cerca de 15 minutos, o que acabou sendo uma surpresa agradável.



Como a ideia parecia promissora o suficiente para continuar trabalhando nela, várias artes conceituais foram feitas bem em cima das imagens para ver rapidamente algum tipo de aproximação de como seria a versão final do jogo. O último tornou mais fácil apresentar ideias a outras pessoas para feedback.



imagem

Arte conceitual para o jogo com base em capturas de tela do protótipo



Em 14 de novembro, uma versão já mais estável foi lançada com gráficos mais compactos, skybox decente e bom pós-processamento. Muito do tempo que passamos trabalhando na atualização foi gasto trabalhando em aspectos observados nas análises e melhorando os gráficos para avaliar o quão eficiente a construção do WebGL poderia ser.



Naquela época, uma ideia mais clara da finalidade da torre e das estruturas lunares já havia se desenvolvido. A torre irá gerar recursos de asteróides derrubando-os com tiros de canhão. A tarefa das minas é gerar minerais passivamente (isso requer asteróides). O hangar é necessário para melhorar a torre (usando minerais). Os laboratórios devem ajudar a levar o jogador à vitória (esgotamento da lua) usando os dois recursos: asteróides e minerais.



Uma captura de tela desta versão ( estruturas lunares V0.4 ) pode ser vista abaixo:



imagem





Benchmarks, versão estável e jogabilidade



Durante o desenvolvimento das versões 0.1 a 0.4, a maioria dos testes foi realizada independentemente ou com a ajuda de amigos próximos. Mas a partir da versão 0.4, uma promoção mais ativa do jogo para teste começou.



A versão 0.4 foi lançada no Itch.io com todas as funções principais do jogo - ou seja, era a chamada versão estável: tinha todas as funções necessárias para completar o jogo, e já podia envolver os jogadores ao máximo.



imagem



O feedback que recebemos durante o teste foi muito útil para melhorar ainda mais o jogo. Os controles foram alterados do teclado para o mouse, os efeitos visuais também foram alterados. A construção WebGL foi então definida para a configuração mais alta, já que a maioria dos jogadores tinha taxas de quadros acima de 60 FPS - com exceção de um testador tentando executá-lo em um Chromebook.



Além disso, agora ficou claro que as pessoas realmente gostaram do jogo. Houve até um testador pedindo mais atualizações e mais ação. Isso significa que alguém estava jogando ativamente o jogo até o seu final (atual)!



A versão "Estruturas Lunares" já implementou todo o ciclo do jogo principal, conforme o diagrama abaixo:



imagem



Como mencionado anteriormente, o jogo é baseado na coleta de dois recursos principais: asteróides, coletados ao destruí-los com uma torre, e minerais, que são coletados automaticamente nas minas de tempos em tempos. Torre e minas podem ser atualizadas usando recursos opostos (minerais para torres, asteróides para minas). O uso de recursos opostos evitou fortes loops de feedback positivo na economia do jogo: quando a mecânica é melhorada com o próprio recurso que geram.





Mecânicas complexas ou adicionais não são (sempre) necessárias



No diagrama acima, o termo " Main Quest " é usado para indicar o objetivo principal do jogo . Foi implementado como um botão simples que gasta os recursos solicitados. Para vencer, o jogador deve gastar cada vez mais recursos até que a lua esteja completamente exausta.



A mecânica de vitória foi projetada para atingir um número arbitrariamente grande, o que ativa a condição de “vitória” e o jogador recebe o status de vencedor. Após o esgotamento da Lua, as minas deixarão de gerar minerais e o jogo acaba.



imagem

Variante da busca principal (laser mineral) nas instalações do laboratório



Que conclusão podemos tirar disso? Você nem sempre precisa tornar seu jogo mais difícil(por exemplo, adicionar mais mecânica) para fornecer condições de vitória ou para tornar o jogo melhor. Para MoonGun, uma vez que os jogadores estavam se divertindo, não havia necessidade de perder mais tempo desenvolvendo uma nova mecânica apenas para a condição de vitória - ela poderia ser formulada usando a mecânica central.



Lembre-se também de que o jogo precisava ser concluído em um mês, portanto, menos implementações aqui significava mais tempo para polir e melhorar o jogo.





Volley! Equilíbrio e justiça do jogo



De acordo com o conselho dos testadores, elementos adicionais começaram a ser introduzidos no jogo, o que não expandiu particularmente a mecânica principal e o loop do jogo. A primeira ideia aqui foi expandir as capacidades do jogador adicionando uma arma adicional à torre - um laser.



imagem

MoonGun Versão 0.7 - Laser O



laser foi calorosamente recebido pelos testadores e adicionou um grau extra de liberdade ao jogo. No entanto, também desestabilizou o poder percebido do jogador. Devido ao maior alcance e duração do laser, o canhão convencional agora parecia fraco. Era necessário equilibrar o processo de aprimoramento dos dois tipos de armas.



Então, em algum momento conforme o jogo avança, o canhão receberá mais melhorias e ultrapassará o laser. Então o laser receberá suas próprias melhorias e recuperará sua liderança. Essa troca de armas preferidas aumentava a dinâmica do jogo.



Ao mesmo tempo, a escolha das armas ainda cabia ao jogador. O jogo não interfere no uso de nenhuma das armas nele apresentadas.



O equilíbrio é difícil. Portanto, o principal objetivo aqui era conseguir uma jogabilidade justa - o que seria divertido e emocionante, mas não necessariamente equilibrado.





Missões lunares



Na verdade, o laser foi adicionado na versão 0.5. No entanto, sua implementação mais estável só foi introduzida na versão 0.7 chamada Lunar Quests, que também incluía:



  1. ;
  2. ;
  3. ( SHIFT);
  4. / ;
  5. ;
  6. ( , );
  7. .


imagem



Observe que dois pontos estão relacionados à melhoria da aparência do jogo (1 e 2), dois - com adição / alteração de controles (3 e 4), mais dois - com elementos de jogo adicionais (5 e 6). Um foi planejado para análise e depuração. Esta divisão foi totalmente deliberada.



Dado o tempo limitado de desenvolvimento disponível, foi necessário equilibrar sua carga de trabalho em muitas áreas que precisavam de melhorias.



A versão Lunar Quests foi mais completa e permitiu aos jogadores experimentar o jogo, bem como interagir com mais controles. Isso ajudou a ver o que funcionava bem no jogo (como asteróides e variabilidade de armas) e o que estava faltando.



Ao mesmo tempo, mais e mais comentários começaram a chegar sobre a falta de explicação e contexto do jogo. Até agora, era apenas um jogo de arcade sem um propósito claro. É hora de adicionar alguns elementos narrativos a ele.





Conheça Titã e a Lua S / 2009 S1



No início do jogo, apareceu uma pequena pista que deveria ligar o cenário, a motivação do jogador e as condições de vitória. Parecia assim: A



Lua S / 2009 S1 está repleta de um rico mineral - o flebótio, e você, jogador, é responsável por proteger as instalações da estação durante sua extração. A base é coberta por um campo que pode protegê-la de asteróides fracos. No entanto, à medida que a mineração progride, o núcleo da Lua fica mais pesado, atraindo asteróides mais rápidos e perigosos que podem danificar o escudo e interromper as operações nas instalações.



Para ajudar na narrativa, o Titã foi introduzido no jogo - um robô que primeiro introduz o jogador no curso das coisas e depois atua como um guia durante o desenvolvimento da trama. Titan foi concebido, modelado e animado por Caleo Mendes, que também desenhou a interface do jogo.



A imagem abaixo mostra a primeira versão da introdução com Titan, uma nova IU e - no fundo - um escudo cobrindo toda a Lua.



imagem



A versão V0.8, Menu Lunar, foi lançada em 26 de novembro - poucos dias antes do prazo. Ele incluiu um retrabalho significativo da IU, bem como informações sobre o escudo.



imagem



Além disso, houve outras melhorias no jogo: os efeitos foram alterados e agora ficou mais fácil para o jogador alternar entre as armas clicando com o botão direito do mouse. Além disso, a interface de recarga de armas foi alterada: a torre agora exibe informações sobre as duas armas ao mesmo tempo. Isso permitiu que os jogadores os usassem de forma mais cuidadosa, mudando de um para o outro quando um deles estava em espera.



A vibração da câmera também foi aprimorada para aumentar a sensação de poder para ambas as armas, e os efeitos da quebra de asteróides foram alterados novamente. Observe que a maioria dessas mudanças foi feita para melhorar a versão estável do jogo, e muito poucas mudanças significativas foram feitas diretamente no loop de jogo principal.





A versão final e seus problemas



A versão final V1.0a MoonGun foi lançada em 29 de novembro. Implementou todos os recursos de trabalho, ainda mais customização e uma experiência mais equilibrada para a missão principal. Asteróides leves foram adicionados nos primeiros minutos do jogo e outros mais mortais nas fases posteriores. Já existiam todos os efeitos sonoros e música para criar uma atmosfera e uma experiência de jogo completa.



O jogo também implementou alguns controles de configuração, como controles deslizantes de áudio e música, bem como um controle deslizante para controlar os efeitos de brilho - como foi habilmente mencionado por um dos testadores. E acrescentou uma tela de carregamento avisando os jogadores sobre os fortes efeitos de iluminação no jogo.



imagem

MoonGun versão 1.0a





Feedback e melhorias (futuras)



Embora o jogo tenha recebido um feedback muito bom, ainda não houve tempo para melhorar alguns problemas. O mais significativo aqui é que o jogo não tem um fim claro: você não pode jogá-lo. Se muitos asteróides caírem na lua, as minas irão parar de funcionar até que você conserte o escudo gastando os asteróides coletados, mas a base nunca entrará em colapso.



O jogo deveria ser fácil e não punir os jogadores enquanto eles aprendem a jogar. E por se basear no progresso contínuo, parecia desmotivador deixar o jogador perder tudo por não ter conseguido defender a base. A julgar pelas revisões, talvez esse aspecto devesse ser revisado e pensado em outras soluções.



Além disso, não há cena final no jogo. Depois de completar a última missão principal, o Titã aparece e transmite a última mensagem, mas depois disso, os jogadores podem continuar o jogo pelo tempo que quiserem. Alguns testadores ficaram tão desapontados que até escreveram sobre isso na página do jogo.



Além disso, descobriu-se que muitos jogadores pularam a introdução e começaram a jogar o jogo sem entender seu contexto e motivação. Aqui, também, você pode pensar em algo para que isso aconteça tão raramente quanto possível.



imagem





Processo em retrospecto



MoonGun definitivamente não será o próximo hit indie, mas isso nunca foi planejado. Em vez disso, foi uma experiência de criação de jogos muito positiva e com muitas lições a serem aprendidas. Além disso, o resultado é de fato um produto acabado. Apesar de o jogo não apresentar dificuldades, foi calorosamente recebido por pessoas, principalmente fora do círculo de amigos e familiares do autor. E para tal projeto, isso já é um sucesso.



O fluxo de trabalho foi baseado no seguinte: alcançar rapidamente uma versão estável do jogo e, em seguida, melhorá-la. Olhando para trás, para o desenvolvimento nessas 4-5 semanas, as principais etapas podem ser descritas da seguinte forma:



  1. Conceito e protótipo da mecânica principal;
  2. Melhorar a experiência e criar um jogo estável;
  3. Testes completos e implementação de feedback;
  4. Desenvolvimento da mecânica, contação de histórias, economia e estética;
  5. Polimento.


Como o autor não podia (e não queria) deixar o emprego atual para se dedicar totalmente a este negócio, o desenvolvimento teve que ser trabalhado à noite e nos finais de semana. Um método que ajudou muito com isso foi armazenar o rastreador de problemas identificados em um repositório onde todo o trabalho que precisava ser feito pudesse ser inserido . Isso ajudou a voltar rapidamente ao trabalho no projeto depois de um tempo e descobrir onde você parou.



Além disso, o autor sempre se esforçou para seguir o caminho de menor esforço. Isso não significa escrever código lento ou procurar soluções ruins (o código-fonte está disponível aqui) - isso significa testar abordagens simples antes de passar para implementações ou refatorações maiores.



Além disso, não negligencie as ferramentas poderosas do Unity e das lojas de ativos para acelerar o processo de desenvolvimento. Neste caso, DOTween , LeanPool e Cinemachine foram os mais úteis .





Pós-processamento (a mágica que você merece)



Adicionar camadas de efeitos de pós-processamento ajuda a criar a atmosfera certa no jogo e criar uma aparência única. A imagem abaixo mostra uma comparação da mesma cena com e sem pós-processamento: Jogo sem pós-processamento (no PlayStation original) e com pós-processamento (no PC) Em particular, foram usados ​​os seguintes efeitos:



imagem









  1. Lift Gamma Gain : melhoria de iluminação;
  2. Distorção da lente : a imagem como se tivesse passado por uma câmera real;
  3. Aberração cromática : para criar uma atmosfera de "distorção cósmica";
  4. Granulação do filme : adiciona ruído e dinâmica à cena;
  5. Profundidade de campo : desfoca objetos fora de foco para adicionar realismo à imagem;
  6. Vinheta : escurece as bordas para que o jogador focalize o centro da imagem;
  7. Bloom : para fazer a luz parecer mágica!


Aqui você pode ver como esses efeitos se sobrepõem:



imagem





Em vez de uma conclusão



Cada designer e desenvolvedor de jogos pode atestar: fazer jogos é desafiador, mas ainda assim inspirador por si só. Cada novo testador que retorna com avaliações positivas dá a você energia e incentiva a realização do projeto.



Além do mais, a experiência com o Unity 3D o ajudará a passar do protótipo à produção mais rápido em um tempo relativamente curto. Durante o desenvolvimento do MoonGun, várias técnicas de prototipagem rápida foram usadas para Unity 3D usando ferramentas como Unity Events , Scriptable Objects e instruções LINQ . A maior parte do conteúdo foi feito usando o Unity Shader Graph e Variantes pré-fabricadas .



No entanto, este jogo dificilmente poderia ter sido feito sem um plano e estratégia claros. Portanto, vale a pena repetir mais uma vez que é importante primeiro aderir a mecânicas simples e, em seguida, desenvolver o jogo com base nelas.



All Articles