segunda-feira, 14 de fevereiro de 2022

projeto arlequim pt.2: retomando o projeto


Estou postando novamente no blog para dar um breve update de um projeto que eu finalmente retomei depois de quase um ano. Eu reiniciei o projeto de ficção interativa procedural, que por enquanto ainda estou chamando de arlequim visto que ainda está em fase de protótipo.

Decidi recomeçar o código do zero, visto que melhorei muito enquanto programadora de C# nesse meio tempo e também tomei umas decisões melhores de pipeline e planejamento. Ao invés de já recomeçar a interface visual, mesmo com gráficos temporários, por enquanto estou trabalhando as cenas de forma independente e auto contida em uma janela de editor que me permite simular a cena toda. Uma das grandes vantagens da estrutura do jogo ser segmentada em cenas genéricas com papéis flexíveis é que fica fácil de testar o arco e a dinâmica de uma cena de forma auto contida, sem precisar jogar ou simular grandes porções do jogo.

Meu objetivo para o resto do mês é ou desenvolver a interface visual para testar a interação com a cena, arrastando personagens para dentro ou fora dela, ou investir mais nos modelos de cena, desenvolvendo um conjunto maiorzinho e já deixando o design delas mais interessante antes de fazer um protótipo jogável do sistema. Como eu falei antes, é possível testar se a dinâmica interna de uma cena está dando certo só pela simulação na janela de editor.

No momento estou iterando o design de uma cena de discussão verbal entre dois conjuntos de personagens, com um possível lado neutro tentando mediar a situação entre os os dois, buscando acertar os pesos e os algoritmos de seleção dos atos para ter um arco interessante acontecendo.

A janela de simulação da cena de discussão com os dados gerais da cena e do ato ocorrendo no momento, já tem um princípio de geração de texto funcional para expressar os eventos.

 

Como falei na postagem anterior, meses atrás, a chance de um ato ser sorteado e expressado depende dos aspectos que formam o contexto atual da cena, um ato de conflito tem mais chance de acontecer se a cena tem um grau muito grande de conflito, esse ato então aumenta o grau de conflito da cena levando a esse loop de retroalimentação. Eu estou tentando agora achar os pesos e algoritmos que vão criar um arco bem explícito, como um cena ficando cada vez mais conflituosa, mas que ao mesmo tempo não impeça atos diferentes de acontecerem.

O ideal é balancear a identidade e legibilidade da cena com uma gama razoável de possibilidades. O que quero dizer por isso, no decorrer de uma cena, quero que o jogador consiga ver que ela está seguindo um caminho específico, como conflito ou introspecção, para que seja fácil de criar uma leitura da situação e a cena ganhe uma identidade específica dentre as suas outras possibilidades (com personagens diferentes, por exemplo), mas também não quero que um único caminho domine a cena toda.

Se todos os atos forem de conflito, fica óbvio para onde aquilo está indo e não tem tensão nenhuma, sendo muito sem graça assistir a cena acontecendo de forma previsível. O ideal seria ter dois ou três caminhos possíveis, para que o jogador fique na expectativa de saber como a cena acaba.

Para testar isso comecei a programar um processo de testagem automática que roda a cena toda de uma vez e me emite um relatório mostrando que papéis foram dados para que personagem, qual foi a sequência de atos, com quais aspectos terminou o contexto da cena, quantos atos ela durou, qual foi seu ato final e que mudanças no estado do mundo ocorreram no decorrer dela. Uma vantagem grande do jogo conseguir jogar a si mesmo.

Meu objetivo testando as cenas dessa forma é conseguir de forma consistente que a cena termine com alguns aspectos claramente dominantes, dando identidade pra aquela instância, com atos que expressam corretamente esses aspectos, especialmente o ato que encerra a cena, o mais marcante. Não adianta os aspectos acumularem de um jeito interessante se não é possível notar isso tendo um impacto legível no decorrer dos atos.

Tudo isso é muito abstrato ainda, ao longo do mês vou escrever uma nova postagem detalhando melhor como eu monto o modelo de uma cena, como o jogo cria uma instância dela e como estou planejando o design de cada uma, para tentar dar uma dinâmica interna legal para cada modelo. Queria ter escrito mais agora, só que estou muito cansada no momento.

Por enquanto, só queria anunciar que retomei o projeto e que parte dele estou trabalhando agora. Até depois.

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...