Como o sistema de “storylets” do Titanium Court dá vida a grandes histórias

Após muita expectativa e a conquista do Grande Prêmio Seumas McNally no Independent Game Festival (IGF), o novo jogo “Titanium Court”, desenvolvido pelo criador independente AP Thomson com o Made with Unity, foi lançado na semana passada.
Confira nossa conversa com AP, gravada durante a semana da GDC, para conhecer este novo jogo de estratégia e as ferramentas que ele criou para dar vida à sua narrativa única e dinâmica, nas próprias palavras de AP.
AP Thomson: Do que trata o Titanium Court? Na verdade, essa é uma pergunta muito difícil de responder.
É um mundo de fadas e magia, mas a magia nesse mundo talvez seja mais comum do que você imagina, e os aspectos comuns desse mundo são mais mágicos do que você imagina.

CRIANDO UM JOGO QUE PRIORIZA A HISTÓRIA
Titanium Court é uma mistura peculiar de vários gêneros diferentes. Então, tem um toque de jogo de combinar três nisso. Tem um toque de jogo de defesa de torre, um pouco de gestão de recursos e um pouco de simulador econômico, além de um simulador de incêndios criminosos. Há muita coisa acontecendo neste jogo. Além disso, é um jogo narrativo com bastante texto, e o ritmo da narrativa é realmente interessante. É como se você tivesse partidas no estilo roguelike intercaladas com uma narrativa que segue adiante independentemente de você ganhar ou perder.
Acho que este é um jogo para quem gosta de ler; infelizmente, vários professores universitários que conheço têm me dito que isso é algo que as pessoas já não sabem mais fazer.
Vale a pena aprender a ler por isso.

CRIANDO FERRAMENTAS PARA UMA NARRAÇÃO DINÂMICA
O design narrativo de Titanium Court utiliza o que hoje é comumente conhecido como sistema de storylets. Eu nunca tinha ouvido falar do termo “storylet” quando o inventei –
Você pode pensar nisso como uma cena isolada.
O tipo de história que um sistema de storylets realmente permite criar são aquelas muito dinâmicas, nas quais certos eventos podem ocorrer ou não, dependendo do que realmente aconteceu no jogo.
Então, isso permite que você crie a narrativa, e eu me referi a isso como o “design da mensagem na garrafa”: basicamente, posso abrir um arquivo de cena, escrever tudo o que é preciso saber sobre a cena, incluindo onde ela realmente acontece no jogo, e então simplesmente colocá-lo na garrafa, jogá-la no oceano e, talvez semanas depois, eu esteja jogando o jogo e a cena aconteça.

GESTÃO DE STORYLETS NO UNITY
Então, tenho personagens que se movimentam ou pequenos retratos artísticos que aparecem em determinados momentos. E tudo isso está contido em uma única cena que se encontra em um arquivo de script JSON. Além disso, dentro desse arquivo há uma série de metadados que indicam onde essa cena aparece no jogo. Portanto, temos informações como: essa cena deve aparecer neste capítulo; essa cena só deve aparecer se você já tiver visto essas outras cenas; ou essa cena só deve aparecer se você tiver cumprido certas tarefas no jogo.
Isso permite lidar, eu acho, com redes complexas de dependências.
Ele possui um sistema de bloqueio integrado para evitar que muitas cenas sejam acionadas ao mesmo tempo. Então, eu tenho esse sistema em que, em uma dessas cenas, eu posso dizer a ele para definir o que esses personagens estão fazendo.
Começa, de certa forma, como um arquivo de script individual. Então, é como um arquivo JSON onde preencho todo o diálogo, as indicações de cena e também os metadados. Mas depois eu passo isso para um script de pré-processamento dentro do Editor do Unity que eu mesmo escrevi, que simplesmente analisa todos esses arquivos JSON, transforma todos eles em prefabs e preenche os prefabs com... Os dados corretos, como vários indicadores booleanos e outros elementos, de modo que todos esses prefabs sejam indexados em um único objeto de indexação central, capaz de lidar com a implementação técnica propriamente dita de selecionar as cenas corretas no momento certo.
Esse tipo de sistema não facilita necessariamente acompanhar uma grande quantidade de contexto, só porque você está trabalhando com muitas cenas que são, de certa forma, separadas umas das outras e não tem um único roteiro ou documento que diga: “é isso que acontece, nesta ordem”. Bem, é exatamente isso que queremos, pois buscamos um sistema que reaja dinamicamente ao que está acontecendo com o jogador; mas isso também pode tornar um pouco mais complicado ter uma ideia exata da ordem em que as coisas vão acontecer.
Então, é uma forma bastante modular de organizar as cenas narrativas dentro do jogo.
Explore mais jogos Made with Unity em nossa página de curador no Steam e confira mais histórias de desenvolvedores da Unity no Blog da Unity e no Centro de Recursos.
