sexta-feira, 25 de dezembro de 2020

projetos passados 01: agente autônomo aramis

 apresentação

 jogar team fight tactics me levou a me interessar muito pela ideia de jogos que se jogam automaticamente, permitindo que você assista sua própria partida e confira as consequências das suas decisões estratégicas sem interferir diretamente no jogo. o primeiro projeto que eu fiz para explorar esses temas foi agente autônomo aramis.

 você como o maquinista do último agente autônomo, um robô construido para proteger a sociedade de ameaças espaciais. maquinista porque a ideia é que você não controla o robô diretamente, ele tem uma inteligência artificial e batalha sozinho, sua função é garantir que isso está ocorrendo da forma mais ideal possível.

o agente autônomo é controlado através de cinco decks de cartas, sendo o jogo também um deck builder, cada um representando um aspecto da sua estrutura, suas armas, sua constituição física, sua inteligência artificial, seus ataques especiais e seu dispensário de itens. mas diferente de um deck builder convencional em que a carta é posta em campo para surtir seu efeito, nesse jogo a carta tem efeito simplesmente por fazer parte da sua mão. manipulando simultaneamente as cinco mãos de cartas você influencia o funcionamento do agente autônomo.

a estrutura macro do jogo é uma espécie de dungeon crawler, em que você passa por uma quantidade fixa de níveis até chegar no final e ter uma última batalha com um chefe. ao longo do caminho você coleta novas cartas e remove outras indesejadas dos seus decks.


screenshot da tela título
tela título do jogo


screenshot de um nível do jogo
um nível do jogo, medalhões provem benefícios, formas geométricas iniciam batalhas


batalha automática

 a batalha se dá de forma automática e não pode ser parada até acabar. o agente autônomo e seus seus inimigos alternam tomando seus turnos. a cada turno eles decidem se vão se mover ou realizar seu ataque.

as cartas do agente autônomo adicionam tags ao seu funcionamento, que são acumuladas acima da representação da área de combate. as tags afetam por exemplo, os ataques realizado pelo AA quando ele decide atacar durante seu turno, quantas células ele se move quando decide se mover, com que frequência ele se move e com que frequência ele ataca, se ele tenta se aproximar ou se afastar dos inimigos e etc.

 

screenshot da tela de combate, simulando a cabine de controle do agente autônomo
a tela de combate


 

a tag <atirar>, por exemplo, acerta um oponente aleatório em uma área em volta do AA quando ele atacar. quanto maior o número de tags, maior o alcance e o dano do ataque. a tag <velocidade> define a quantidade de células que o AA pode andar quando se mexe, quanto maior o número da tag, maior o distância percorrida.

detalhe das tags na tela de combate


o efeito das tags cresce exponencialmente conforme aumenta sua frequência. isso ocorre de modo a criar a necessidade de concentrar o número de tags de ataque. cada tag de ataque é um ataque independente que dá dano de forma independente, então teoricamente não faria muita diferença a proporção das cartas sorteadas no deck de arsenal. quatro cartas com quatro ataques diferentes somariam seu dano quase da mesma forma toda vez. como o efeito das tags sobe de forma exponencial, ter 4x uma tag dá muito mais dano que ter quatro tags 1x.

cada deck é controlado no seu respectivo painel. ao puxar a alavanca o jogador sorteia uma nova mão de cartas e ele pode fazer isso de forma livro quantas vezes quiser ao longo da batalha. entretanto, toda vez que ele puxar uma alavanca o AA acumula um pouco de calor. dessa forma o jogo não é restringido a aceitar uma configuração de cartas ruins e pode sempre buscar o melhor combo possível, mas há sempre o risco da nova mão ser pior que a anterior (adicionando um elemento push your luck) e pagando o custo em calor.

o calor (primeira barra da parte inferior da interface) determina a quantidade de pressão que é constantemente acumulada pelo AA, representada pela válvula na esquerda da tela. quanto mais calor, mais pressão por segundo. quando o AA atinge seu limite de pressão ele descarta todas as cartas presentes nos painéis naquele momento, sorteia uma mão nova em cada painél e acumula um pouquinho mais de calor. o que significa que acumulará pressão mais rápido depois disso, chegando mais rápido ao nível máximo de pressão da próxima vez.

isso pode ser explorado pelo jogador, que pode puxar as alavancas logo antes da pressão chegar ao máximo para que cartas boas não sejam descartadas. isso tem o custo de acumular ainda mais calor, levando o próximo descarte a ocorrer ainda mais rápido.

o AA também acumula energia ultra (terceira barra da parte inferior da tela) ao longo do tempo. quando a energia ultra chega no seu limite ele utiliza seu ataque ultra, bem mais forte que seu ataque normal. em seguida o limite que a energia ultra precisa acumular para acionar o ataque especial diminui, o que significa que o próximo ataque ultra chegará mais rápido da próxima vez e assim por diante continuamente.

quando o AA toma dano ele aumenta um pouco sua barra de dano (segunda barra) que também possui um "limite de quebra" assim como a pressão e o ultra. quando o dano atinge seu limite, cartas de dano são adicionadas aos decks do jogador. essas cartas são simplesmente cartas vazias, sem tags, mas que ocupam espaço no deck e nos painéis. quando o limite de quebra é atingido ele diminui, chegando nesse ponto mais rápido da próxima vez.

 

dano e degradação

conforme os decks enchem de cartas de dano o AA vai ficando menos efetivo, visto que sua mão vai ir sendo preenchida por cartas inúteis. dessa forma, ao invés do dano ser algo imperceptível até atingir um limite final e o personagem morrer, é algo que afeta continuamente o funcionamento do personagem, deixando ele pior e pior.

uma classe de inimigos também explora uma mecânica semelhante. ela injeta cartas de vírus no AA que possuem uma tag de aquecimento, aumentando o calor que ele acumula e levando a um descarte ainda mais rápido das suas cartas. um efeito negativo que vai além de números e efetivamente torna o personagem mais difícil de controlar.

isso foi inspirado pelo jogo slay the spire, em que vários inimigos te atrapalham inserindo cartas negativas no seu deck. em especial o boss slime que insere cartas simplesmente inúteis, te forçando a gastar pontos de ação para remove-las do seu deck.

achei a mecânica interessante, mas tem também o lado negativo de deixar o AA cada vez mais simples e inefetivo. apesar de fazer sentido do ponto de vida narrativo e fazer sentido enquanto punição por levar dano, cria um arco pouco satisfatório em que o efeito do personagem fica continuamente mais fraco e simplificado, o que é pouco divertido.


ritmo acelerado

o calor/pressão, o ataque ultra e o acúmulo de dano todos funcionam num ritmo acelerado em que o limite de quebra é atingido cada vez mais rápido. dessa forma, o agente autonomo descarta suas cartas, usa seu ataque ultra e ganha cartas de dano cada vez mais rápido.

suas cartas vão sendo descartadas tão rápido conforme o calor acumula que eventualmente ele já não consegue mais controlá-las e cada vez mais os painéis se enchem de cartas de dano, em compensação o ataque ultra ocorre cada vez mais rápido, limpando o campo de oponentes com ataques poderosos. o objetivo é que o jogador chegasse ao final da batalha capengando, ao contrário de outros jogos deckbuilder ou engine building em que a sensação é a de um motor cada vez mais potente.

 

deckbuilding

tentei fortalecer essa sensação de uma maquina meio capenga, ainda que potente, com a parte de deckbuilding. o agente autonômo ser composto de tantos decks e tantas cartas significa que o jogador não pode administrar elas de forma tão precisa quanto outros jogos do gênero.

ao invés das cartas serem inseridas e removidas individualmente, elas vem em kits temáticos que podem conter cartas de todos os decks, mas costumam formar um pequeno combo, para garantir sua utilidade.


tela de inserção de kits de carta no seu deck

a impossibilidade de manejar as cartas individualmente significa que não só vão ter várias cartas indesejadas ou meio avulsas, vindo junto de kits vantajosos, mas é até difícil para o jogador ter noção plena de todas as cartas que o agente autônomo possui. queria com isso passar a sensação de que ele é efetivamente maciço, um veículo inteiro que está sendo mais direcionado que plenamente pilotado, ao contrário de um personagem sucinto.


o jogo apresenta música por Ra Irigaray e pode ser jogado aqui: https://umunum.itch.io/aaaramis

Sem comentários:

Enviar um comentário

Floreio, minha gramática de geração procedural de texto

Gostaria de falar um pouco da ferramenta de geração procedural de texto por gramática de substituição que eu venho desenvolvendo na Unity pa...