Escolar Documentos
Profissional Documentos
Cultura Documentos
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?
• 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
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.
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.
(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
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.
FIGURA 16.1 Como funciona o Tracery, usando aleatoriedade para escolher entre possíveis
valores hierarquizados em uma gramática.
Machine Translated by Google
• É um navio de guerra.
• É um navio de linha.
• Função: Navio de
• Terceira categoria
Machine Translated by Google
• 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
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.
• 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.
• 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
Mundo
Modelo
Abate
Fórmula
Modelo Mundial
Estado
Metadados de frase
Saída
Pilha 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.
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
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