Você está na página 1de 16

Machine Translated by Google

CAPÍTULO 16

Descrições processuais
no Voyageur
Bruno Dias

Voyageur nasceu
jogo. Ele foiexatamente da torno
projetado em maneira errada
de uma para um
técnica pelavídeo
qual me apaixonei e queria
usar e em torno de uma ferramenta que desenvolvi para construí-la.

No final de 2015, Emily Short publicou um texto generativo chamado The Annals of the
Parrigues. Um guia para um país medieval fictício, é principalmente um diário de viagem
de cidades e vilarejos, sua geografia e cultura. Naquela época, comecei a pensar (e a
discutir em conversas com Emily e outros) uma ideia aproximada de um jogo que usaria
uma técnica semelhante de geração de texto, uma espécie de Parrigues interativo. E se
você pudesse viajar de cidade em cidade, lendo uma descrição da paisagem local de
cada lugar, trocando histórias e negociando com os habitantes locais?

Parrigues, juntamente com a biblioteca Tracery de Kate Compton, informaram o design


da ferramenta que eu chamaria de Improv: uma biblioteca de geração de texto
especificamente adequada para objetivos semelhantes aos de Parrigues e a espinha
dorsal deste jogo de Parrigues que eu queria fazer. Esse jogo se tornaria Voyageur.
Aqui está o resumo de como o Improv deveria funcionar:

• Queria gerar texto a partir de uma gramática. Eu sabia por Tracery que essa era
uma maneira muito boa de criar textos geradores porque é muito mais fácil de
raciocinar e estruturar. Também é mais ou menos

193
Machine Translated by Google

194 ÿ Narrativa Processual em Design de Jogos

garante que quaisquer erros sintáticos flagrantes no texto gerado sejam


produto de um corpus defeituoso e não de algum fantasma inescrutável na
máquina.

• Essas gramáticas deveriam ser legíveis por humanos e máquinas,


provavelmente formatadas como JSON. Na base de código real do
Voyageur, os corpora são todos escritos em YAML para facilitar a leitura,
mas são traduzidos para JSON (que o Improv consome) em tempo de compilação.

• O Improv precisava ser capaz de acompanhar um estado mundial e gerar


texto que estivesse em conformidade com esse estado mundial. Ou seja,
se descreve uma aldeia num deserto, não deve então falar do rio que
atravessa o centro da cidade. Isso permitiria gerar descrições completas e
coerentes de um lugar.

Este último ponto foi o que me levou a construir uma biblioteca especificamente
para esse fim; Tracery realmente não suportava esse tipo de funcionalidade. As
técnicas que Emily delineou nos apêndices de Parrigues funcionariam como
modelo, mas eu acabaria me desviando bastante de seus métodos.

PREPARANDO O PALCO
Desde o início do projeto, a ideia de viajar só de ida estava na minha mente.
Mecanicamente, este estava se transformando em um jogo de exploração e
comércio no estilo Elite, e a estratégia dominante nesses jogos é encontrar uma
rota comercial lucrativa e triturá-la. Eu não queria aquele comportamento de
jogador; Queria encorajar o comportamento vagabundo de se deslocar de um
porto para outro, sem nunca olhar para trás, recolhendo a carga no caminho; para
mim, essa sempre foi a maneira mais divertida de jogar esses jogos, e meus
exemplos favoritos do gênero tinham maneiras de encorajá-lo. Os Piratas de Sid
Meier! usou a direção do vento para guiar o jogador ao longo das rotas comerciais
do Caribe, incentivando longos loops ao redor do mapa, por exemplo.

Eu também sabia que os locais processuais não resistiriam a visitas repetidas.


Os planetas no Voyageur são fundamentalmente estáticos, o que funciona porque
você permanece neles apenas por um breve momento.
Dado que a geração processual me deu mundos “ilimitados” para colocar na
frente do jogador, eu poderia simplesmente eliminar a possibilidade de voltar atrás
Machine Translated by Google

Descrições processuais no Voyageur ÿ 195

inteiramente. Você está num imenso delta de rio, levado pela correnteza; talvez
você possa escolher qual bifurcação no caminho da água seguir e, portanto, qual
porto visitar em seguida, mas você nunca poderá voltar. Cada lugar que você visita
é um momento no tempo, congelado pela sua memória; você nunca verá isso
mudar, porque você nunca poderá retornar. Encontrar o complemento emocional e
narrativo para esta construção mecânica foi o cerne da concepção de um cenário
e de uma história para Voyageur. Esta imagem de estar em uma canoa à deriva
rio abaixo também é de onde vem o nome, referindo-se à subcultura do século 19
de canoeiros franco-canadenses que transportavam peles pela América do Norte,
um título provisório que pegou.

As viagens espaciais eram naturais. Saltar de planeta em planeta, em vez de


caminhar de aldeia em aldeia, permitiria ao jogo explorar ambientes e cenários
totalmente diferentes. Também complementou naturalmente a sua natureza
processual e a disponibilidade de portos individuais; os jogadores visitariam muitos
lugares durante uma sessão de jogo, e a ideia de explorar a galáxia parecia mais
ressonante do que um sistema fluvial improvável e sinuoso.

Em Voyageur, a pequena nave vagabunda está equipada com um dispositivo


de descida, uma misteriosa tecnologia alienígena que funciona de maneiras
inexplicáveis e com fins inexplicáveis. Você bombeia eletricidade nele e ele desloca
sua nave, mais rápido que a luz, aproximadamente em direção ao centro de massa
da galáxia. Você pode dirigir um pouco, acelerando para um lado ou para outro
enquanto “desce”, para garantir que “atingirá” um sistema estelar específico em
seu caminho “para baixo”. Mas todas as viagens são unilaterais.
Os dispositivos permitem um estilo de vida nômade para uma classe de viajantes
que podem viajar pelo espaço muito mais rápido do que outros humanos. Todos
os outros viajam em unidades de dobra que são enormes, caras e levam meses
para percorrer alguns anos-luz; o dispositivo de descida o levará a um sistema
estelar vizinho em instantes. Este é um cenário em que a humanidade viajou pelas
estrelas durante muito tempo, tendo colonizado uma grande parte da galáxia ao
longo das gerações. A expansão humana, estendendo-se em todas as direções,
ultrapassou a rapidez com que os humanos normalmente podem viajar durante
uma única vida; as sociedades humanas estão fora de contato regular com a
grande maioria da humanidade, da qual só conhecem através de informações
desatualizadas que foram transmitidas
Machine Translated by Google

196 ÿ Narrativa Processual em Design de Jogos

navios ao longo de décadas ou mesmo séculos. Esta descrição, retirada do jogo,


exemplifica o que você pode encontrar:

Esta cidade é uma rede de cúpulas atarracadas conectadas ao subsolo, cada


uma contendo um toque de verde visível através de seu exterior translúcido.
Depois de escurecer, os moradores desaparecem das ruas como se tivessem
sido convocados por algum aviso de toque de recolher não ouvido. Por toda
parte, os sinais de terraformação em curso são evidentes; cada janela de
habitat é equipada com uma visão AR de como este mundo será parecido com
a Terra daqui a cem anos. Você descobre que os habitantes locais desconfiam
de viajantes como você, e a vida é desconfortavelmente sobrecarregada por
muitas regulamentações sobre o uso de recursos e eliminação de resíduos.

(Viajante)

Viajar como um viajante é inerentemente solitário e melancólico; cada lugar que você
vê é um lugar que você nunca mais verá, já que algumas semanas de viagem de
descida são rápidas o suficiente para levá-lo além do horizonte de quão longe você
poderia viajar durante a vida por outros meios. Todos que você conhece o consideram
uma curiosidade exótica, mas também suspeito; afinal, o que poderia levar alguém a
abandonar para sempre o lar e optar por esse estilo de vida?

MELHORAR: A FERRAMENTA

Eu construí o Improv antes de começar a trabalhar no Voyageur, em parte porque


queria uma prova de conceito que fosse robusta o suficiente para que eu me
sentisse confortável em embarcar no projeto completo, mas também porque senti
que a ferramenta seria útil como um recurso de código aberto para outros, e porque,
em última análise, foi baseado na metodologia de outra pessoa.
Tracery e Improv são abordagens gramaticais para gerar texto (ou qualquer
conteúdo que possa ser expresso como uma sequência de caracteres, como imagens
SVG). Ambos usam gramáticas, conjuntos de regras que definem como o texto pode
ser construído. Cada regra consiste em um nome, ou chave, e um conjunto de
possíveis conclusões para essa regra, frases. Digamos que estamos gerando
descrições de gatos; uma regra chamada cor incluiria então várias frases para
possíveis cores de pelagem de gato: “marrom”, “laranja”, “preto”, “malhado”, “chita” e
assim por diante.
Machine Translated by Google

Descrições processuais no Voyageur ÿ 197

No Tracery (veja a Figura 16.1), as regras contêm listas simples de frases. No Improv,
as frases sob uma determinada regra são divididas em grupos; cada grupo carrega
alguns metadados que descrevem seu conteúdo e depois uma ou mais frases.

O Improv (veja a Figura 16.2) funciona essencialmente como o Tracery. O gerador


funciona em loop; recebe o nome de uma regra a ser seguida como ponto de partida. Em
seguida, escolhe aleatoriamente na gramática uma possível conclusão para aquela regra
(uma frase). Em seguida, ele executa uma expansão simples do modelo na frase; a
funcionalidade mais importante é incluir outras regras, que o gerador então cumpre
recursivamente até que toda a “árvore” de um pedaço de texto tenha sido percorrida.
Portanto, podemos começar com uma regra chamada “cat_desc” e selecionar
aleatoriamente a frase “Este é um #coat_color# cat…”. Tracery então interpreta
“#coat_color#” como uma marcação a ser substituída seguindo a regra coat_color, para
que você termine com “Este é um gato malhado….”
O Improv difere do Tracery na escolha de qual snippet usar. Tracery tem uma única
“fonte de verdade”, a gramática. O Improv tem dois: a gramática e o modelo de mundo.
Um modelo mundial é apenas uma descrição computadorizada de uma realidade
subjacente à qual o texto está vinculado. Texto destinado a humanos é confuso de uma
forma que não é passível de computação. Pegue esta frase de um artigo da Wikipedia:

O HMS Agamemnon era um navio de terceira categoria com 64 canhões da linha da


Marinha Real Britânica.
Esta frase implica uma tonelada de informações específicas do domínio que não estão
organizadas de nenhuma maneira específica ou mesmo presentes no próprio texto.
Poderíamos listá-los como fatos explícitos:

FIGURA 16.1 Como funciona o Tracery, usando aleatoriedade para escolher entre possíveis
valores hierarquizados em uma gramática.
Machine Translated by Google

198 ÿ Narrativa Processual em Design de Jogos

FIGURA 16.2 Uma visão idealizada de como o Improv funciona.

• Arvora a bandeira do Reino Unido.

• É um navio de guerra.

• É um navio de linha.

• É um navio de linha de terceira categoria.

• Pertence à classe Ardent.

• É um navio do século XVIII.

• É um veleiro movido a energia eólica.

• É um navio de cordame quadrado.

• Está armado com canhões de carregamento pela boca.

Podemos padronizar essas informações e hierarquizá-las em ontologias e criar um modelo mundial:

• Bandeira: Reino Unido

• Função: Navio de

guerra • Navio de linha

• Terceira categoria
Machine Translated by Google

Descrições processuais no Voyageur ÿ 199

• Classe: Ardente

• Era: C18

• Propulsão: Vela

• Armação quadrada

• Armamento: Canhões

Antes de escolher qual frase específica usar para cumprir uma regra, o Improv realiza uma
etapa de filtragem. Filtros, em termos de Improv, são funções que aceitam dois argumentos:
um modelo mundial e os metadados de um determinado grupo.
Eles comparam os dois, retornando um número ou um valor nulo.
Um valor nulo significa “descartar totalmente este grupo”. Um número adicionado à pontuação
desse grupo, ou “saliência”, é uma indicação de quão apropriado ou inapropriado o grupo é
para o modelo mundial actual.
Esta etapa de filtragem fornece um subconjunto da gramática que foi selecionada com os
critérios de filtragem; normalmente, isso significa conformidade com o modelo mundial. A partir
desse subconjunto, o Improv escolhe aleatoriamente quais frases específicas usar.

Porém, o próprio Improv não tem conhecimento de como realizar essa filtragem.
Um gerador Improv é definido com um conjunto de filtros específicos para uma finalidade
fornecida pelo desenvolvedor. Embora alguns filtros marquem as frases como impróprias para
uso imediato, o Improv foi projetado para confiar principalmente na filtragem “suave”: atribuir
uma pontuação às frases e, em seguida, usar apenas as frases com pontuação alta o suficiente.
“Alto o suficiente” é variável; O Improv utiliza uma fórmula definida pelo usuário para
escolher o que isso significa com base na pontuação mais alta da amostra.
Dado m, a pontuação máxima de saliência na amostra, a fórmula de seleção deve retornar c,
o limite de seleção; frases com menor saliência que c são descartadas. Isso parece um detalhe,
mas faz uma enorme diferença no comportamento de um gerador. Uma fórmula c=m cria um
gerador que está sempre escolhendo entre as frases mais importantes disponíveis e, portanto,
não é muito aleatório. Voyageur usa uma fórmula de c=m – 10. 10, aqui, é um valor obtido
experimentalmente ajustando o gerador. Ao usar os filtros e corpus do Voyageur, m tende a
oscilar em torno de 30; esta fórmula é semelhante, mas não idêntica, ao descarte de frases
que não atingiram 70% da pontuação máxima de saliência. A experimentação mostrou que
este é um bom equilíbrio entre imprevisibilidade e coerência.
Machine Translated by Google

200 ÿ Narrativa Processual em Design de Jogos

FILTRAGEM, REINCORPORAÇÃO E FONTES DE


VERDADE

O coração do gerador é a pilha de filtros. A pilha de filtros começou como uma tentativa de
gerar um texto coerente, evitando a autocontradição. Evoluiu para uma espécie de expressão
do que considero constituir uma boa descrição processual.

O gerador de planetas da Voyageur, o gerador de Improv mais importante do jogo, acabou


sendo enviado usando um “molho secreto” de sete filtros, quatro dos quais fazem parte da
biblioteca Improv e três dos quais são feitos sob medida para a Voyageur. Esses filtros são:

• Filtro de incompatibilidade: compara as tags de uma frase com as tags do modelo


mundial e retorna nulo se as tags da frase não forem idênticas ou um subconjunto das
tags do modelo. Ou seja, esse filtro elimina contradições evidentes, como a incorporação
de tags marcadas como “tundra” na descrição de um mundo desértico.

• Secura: Seque como em “não se repita”. Este é um dos filtros de improvisação mais
estranhos; ele seleciona completamente frases que já foram usadas. É aqui que tudo
começa a ficar mais complicado do que o modelo idealizado na Figura 16.3. Na
verdade, o Improv precisa de memória para fazer seu trabalho corretamente.

• Bônus total: Dá um bônus de pontuação de relevância a frases com tags que


correspondem perfeitamente a uma tag no modelo mundial. Portanto, se um planeta
estiver marcado como um mundo desértico, é mais provável que haja frases de mundo
desértico em sua descrição.

• Não mencionado: concede um bônus de pontuação de relevância a frases com tags que
não estão presentes em frases que foram usadas. Isto é, induza o gerador a trazer à
tona facetas do planeta que ainda não foram mencionadas. O objetivo aqui é criar
descrições completas que cubram o máximo possível.

• Filtro de ajuste: Feito sob medida para o Voyageur, o “filtro de ajuste” simplesmente
fornece bônus de pontuação de relevância às frases que são codificados no corpus;
algumas frases são arbitrariamente mais salientes, não importa o que aconteça. Mais
sobre esse hack posteriormente neste capítulo.
Machine Translated by Google

Descrições processuais no Voyageur ÿ 201

Mundo
Modelo

Abate
Fórmula
Modelo Mundial
Estado

Pontuação máxima de saliência


Limiar de Saliência

Metadados de frase

Gramática Saliência Aleatoriedade


Filtragem Abate
Frases
Frases Pontuadas
Frases Disponíveis

Saída
Pilha de filtros

FIGURA 16.3 Melhoria detalhada: seleção e pilhas de filtros.

• Filtro de lente: Outro truque que surgiu depois de muitas tentativas e erros.
Cada planeta na Voyageur é “visto através de lentes”, que pode ser sua
cultura, bioma ou alguma outra faceta importante. Frases que possuem
a etiqueta correspondente (ou seja, frases que mencionam/refletem este
aspecto do mundo) têm maior saliência. Isto ajuda a diferenciar as
descrições de modelos semelhantes; o gerador se preocupa com
diferentes aspectos de um planeta a cada vez.

• Filtro de polarização: O filtro de polarização inclina o gerador para discutir


aspectos importantes do planeta que está sendo descrito. Dá um bônus
de relevância a frases que mencionam características especiais de um
planeta, ideologia predominante ou bioma; o objetivo é garantir que cada
descrição aborde esses aspectos essenciais.

Comparada a essa complexa mistura de filtros, a gramática real é bastante


simples; a descrição de cada planeta é apenas uma introdução opcional (“Sua
nave pousa…”) seguida por algumas frases soltas sobre o
Machine Translated by Google

202 ÿ Narrativa Processual em Design de Jogos

planeta. Esta estrutura é propositadamente solta; Eu não queria que as descrições


fossem longas e não queria muita estrutura. Penso que é possível uma forma de
construir descrições em que as frases tenham mais relação entre si, mas requer
uma abordagem diferente deste tipo de gramática.

Para selecionar a gramática de acordo com o modelo mundial, o Improv está


realizando uma negociação complexa, equilibrando múltiplos fatores. Mas ainda não
discuti de onde vem o modelo mundial.

DE ONDE VÊM OS MODELOS MUNDIAIS


Quando comecei a planejar o Voyageur, estava realmente preocupado com a
questão de onde vêm os modelos de mundo, a “fonte da verdade”.
Havia, em minha opinião, duas abordagens aqui:

• Verdade a priori: você gera o modelo mundial separadamente, provavelmente


através de alguma abordagem que é como rolar em uma mesa aleatória.
Então você usa o modelo mundial para alimentar o gerador mundial.

• Verdade a posteriori: você diz ao gerador para gerar uma frase.


Então, as tags dessa frase são adicionadas de volta ao modelo mundial, um
processo que chamei de reincorporação. As frases subsequentes seguem
este modelo de mundo alterado.

A segunda abordagem realmente me atraiu; foi o que Emily usou em Parrigues e


permitiu que o corpus orientasse a frequência de tudo no jogo. Se eu escrevesse
muitos textos para mundos desérticos, acabaria com mais mundos desérticos, mas
tudo bem, pois teria muito conteúdo para eles. Comecei a construir o Voyageur
supondo que era assim que eu queria que funcionasse, e a reincorporação é uma
característica central do Improv (Figura 16.4). Tudo o que você precisa fazer é ligá-
lo com um interruptor ao instanciar um gerador.

Este plano desmoronou quase imediatamente. Por um lado, os planetas na


Voyageur não estão completamente sozinhos; fazem parte de uma região e a região
tem características próprias (por exemplo, governo, cultura). Essas características
formam uma espécie de substrato sobre o qual as descrições dos planetas seriam
construídas. À medida que explorava as possibilidades de codificar o Voyageur,
rapidamente cheguei a um modelo híbrido que o jogo enviado realmente usa.
Machine Translated by Google

Descrições processuais no Voyageur ÿ 203

Os planetas Voyageur são inicialmente semeados com algumas características


básicas – a classe do planeta (deserto, tundra, metálico, venusiano, etc.) e alguns
reflexos da região abrangente do planeta. Isto permite-me contornar uma das
fraquezas do Improv, a dificuldade de expressar uma lógica mais complexa sobre
como as diferentes partes do modelo mundial se relacionam entre si. Por exemplo,
um mundo urbano deve ter uma economia desenvolvida e não agrária; esse tipo de
lógica é tratado pelo código que “semeia” os planetas com metadados iniciais e não
pelo gerador Improv.
Também rapidamente ficou claro que deixar o corpus ditar a frequência de tudo
não funcionava tão bem em um jogo real. Para equilibrar a economia do jogo, eu
precisava poder ajustar os botões diretamente.
Seria problemático se, para tornar um certo tipo de bem ou evento menos disponível,
eu tivesse que excluir algumas linhas dos corpora ou adicionar mais escrita para
todos os outros tipos de planetas.
Uma grande parte do tempo de desenvolvimento foi gasto escrevendo os corpora
do gerador de planetas da Voyageur. A geração processual é, efetivamente, uma
forma de obter 200% do conteúdo com 400% do trabalho. Alguns elementos dos
corpora da Voyageur foram extraídos de dados de acesso público (principalmente
listas de nomes), mas essas listas tiveram que ser examinadas e revisadas por um
ser humano (ou seja, eu mesmo) antes que pudessem ser usadas conscientemente.
Na maior parte, o corpus consiste em muitos trechos de descrições escritas à mão,
pequenas frases individuais que eu coloquei em prática para que a máquina pudesse
recombiná-las. Escrever neste estilo é difícil; você não pode confiar no fluxo natural
de um parágrafo para guiá-lo enquanto escreve e precisa se adaptar à maneira como
o texto será usado.

Perto do final do ciclo de desenvolvimento, muito tempo foi gasto ajustando o


gerador. O gerador planetário simplesmente não estava produzindo um bom resultado;
planetas semelhantes têm leituras muito semelhantes. A construção de algumas
ferramentas de teste auxiliares ajudou a revelar que algumas frases eram seriamente
subutilizadas. Em última análise, é muito difícil raciocinar sobre um gerador de improvisação.
Improv me ensinou que você pode escrever um algoritmo manualmente, usando
métodos tradicionais não-ML, e ainda não entender completamente por que ele está
produzindo uma saída específica.
Ajustar esses sistemas é lento. Você altera a combinação específica de filtros e
valores de pontuação usados e, em seguida, gera alguns planetas para ver se as
descrições parecem boas. Então você executa o sistema
Machine Translated by Google

204 ÿ Narrativa Processual em Design de Jogos

Palavra
Reincorporação de metadados
Modelo

Abate
Fórmula
Modelo mundial
Estado
Pontuação máxima de saliência Limite de saliência

Metadados de frases

Saliência
Gramática Filtragem Aleatoriedade
Abate
Frases
Frases Pontuadas Frases Disponíveis

Saída

Pilha de filtros

FIGURA 16.4 Como funciona o Improv, com reincorporação.

milhares de vezes e colete estatísticas para tentar corroborar sua opinião. É


enlouquecedor. Levei muito tempo para realmente entender qual era o meu
problema.
Os filtros da Voyageur foram projetados para replicar algumas boas ideias
sobre como escrever uma descrição: ter um ângulo (lente); trazer à tona coisas
importantes (preconceito); não se preocupe muito com uma coisa (não
mencionada). Tudo isso estava funcionando bem, mas invariavelmente algumas
frases caíam no esquecimento, independentemente do equilíbrio específico de
fatores que eu estabelecia. Isto era particularmente verdadeiro no caso de frases
que raramente são apropriadas para um planeta, frases que eram, na verdade,
pequenas joias destinadas a aparecer com baixa frequência. Passei muito tempo
tentando ajustar o sistema para conseguir uma “boa” distribuição do uso das
frases e percebi que não conseguiria. Diferentes grupos de frases foram deixados
para trás, não importa o que eu fizesse.
Esta foi a última grande conclusão que tive ao trabalhar em Voyageur: você
precisa colocar algumas grades de proteção. Acabei adicionando hardcoded
Machine Translated by Google

Descrições processuais no Voyageur ÿ 205

“ajustes” de pontuação de relevância em várias frases do jogo. Na verdade,


isso deu a frases que apareciam muito raramente, ou que nem apareciam,
um impacto artificial. Sim, eu poderia ter feito isso programaticamente. Mas
isso exigiria outra etapa no tempo de compilação ou uma longa e lenta
“autoanálise” no lançamento do jogo e, em última análise, teria sido outro
sistema automatizado que eu precisaria ajustar. Os ajustes manuais
funcionaram muito bem. Se você acha que as descrições de procedimentos
no Voyageur são boas (Figura 16.5), agradeça a eles.
O gerador de planetas da Voyageur é muito mais complicado do que
inicialmente pensei que precisaria. Ele mantém um histórico de quais frases
usou e usa esse histórico para avaliar se uma determinada frase é repetitiva.
Ele se baseia em “proteções” implementadas para ajustar a distribuição geral
das frases.
O resultado muito aleatório rapidamente se transforma em tigelas de
mingau de aveia; há muita variabilidade, mas essa variabilidade não significa nada.
Voyageur olha para um modelo de mundo, para uma realidade subjacente
que afeta outros sistemas do jogo para fazer com que essa aleatoriedade
signifique alguma coisa.
Acabei me deparando com o problema oposto das tigelas de mingau de
aveia; o que chamo de “problema de construção brutalista”. Quando o gerador
se dedica muito servilmente ao uso de frases com boa relevância, quando
não há aleatoriedade suficiente, você rapidamente começa a obter descrições
que são boas demais para trazer à tona o modelo subjacente; a forma segue
a função muito bem. Os planetas começam a parecer meio nus, a carecer de
ambiguidade ou a florescer; depois de ver um mundo agrícola, você verá
todos eles.

CONCLUSÕES
Esse tipo de gerador de texto se equilibra no fio da navalha: aleatório demais
e sem sentido; muito significado e não há espaço para apego emocional além
do simples reconhecimento do estado do jogo.
Se o resultado do Voyageur anda com sucesso nessa corda bamba, deixarei
para você julgar. Certamente poderia ser melhorado duplicando ou triplicando
o volume de conteúdo do corpus. Não creio que tenha entrado com
expectativas ingênuas, mas não percebi quanto trabalho seria necessário
para colocar o gerador em forma.
Machine Translated by Google

206 ÿ Narrativa Processual em Design de Jogos

FIGURA 16.5 O gerador de planetas Voyageur, completo com “pré-propagação” e


ajustes.

Também estou um pouco consternado com o quanto disso é tentativa e erro


e quão pouco parece ser transferível. Na verdade, não posso fornecer uma
metodologia para ajustar um gerador semelhante ao do Voyageur; Eu sei o
que funcionou para o meu, mas o que funcionou para o meu provavelmente foi
muito específico do conteúdo e da mecânica da Voyageur.
Essa tentativa e erro ajudou a moldar a forma como penso sobre esse tipo
de geração processual. E, por sua vez, o gerador moldou o jogo.
Voyageur é muito mais uma experiência ambiental e de baixa agência do que
originalmente imaginado. O jogo originalmente deveria ter um
Machine Translated by Google

Descrições processuais no Voyageur ÿ 207

subjogo contínuo onde você coleta informações lendo as descrições dos


planetas e as usa para tomar decisões comerciais inteligentes.
Isso nunca deu certo. A única maneira de fazer as descrições
funcionarem como dicas funcionais de jogo era torná-las tão áridas e
repetitivas que os jogadores resistissem ativamente à leitura. As descrições
dos planetas são confusas e pouco informativas; é isso que lhes dá sabor.
Como enquadrar esse círculo de geração processual que proporciona
beleza, mas também informação funcional, fica como exercício para o leitor.
Machine Translated by Google

Esta página foi intencionalmente deixada em branco

Você também pode gostar