Desenvolvimento

19 nov, 2018

Criando um jogo baseado em texto com o Twine

Publicidade

Sempre me envolvi com programação e o ensino dela (por isso fundei uma escola especializada chamada Code Prestige para jovens iniciantes na área até pessoas de maior nível de senioridade). No entanto, recentemente comecei a minha jornada sob uma outra perspectiva: ensino de programação para crianças.

Se você acha que programar é complicado, imagine o quão abstrato para as crianças conceitos como orientação a objetos, funções, variáveis, loops, debug, etc, são.

Então, para começar de forma mais tranquila a introduzir o pensamento computacional na cabeça destes pequenos, comecei a trabalhar com jogos de tabuleiro e jogos digitais. Feito isso, passamos para uma nova fase: produzir jogos digitais.

Para que uma criança consiga assimilar tantos conceitos e produza algo intangível, precisamos de abordagens criativas. Foi na busca desta abordagem que me deparei com o Twine, uma excelente ferramenta para a criação de jogos baseados em texto.

Jogos baseados em texto

Esse tipo de jogo antecedeu os jogos de apontar e clicar e foram uma grande febre quando surgiram. A ideia é extremamente simples: apresentamos ao jogador um contexto sobre o universo em que o jogo está inserido, e então damos uma narrativa que é controlada pelo jogador. A cada opção selecionada pelo jogador, a história é direcionada para um caminho específico, no final resultando em múltiplas possibilidades de finais.

Se você é fã deste tipo de gênero, já deve ter experimentado jogos atuais como Heavy Rain, Beyond: Two Souls e o mais recente, Detroit: Become Human. Apesar de serem jogos muito bem trabalhados nos seus modelos tridimensionais, trilhas sonoras, jogabilidade e afins; seu principal elemento continua sendo a narrativa baseada em escolhas, herança do tipo de jogo que estamos discutindo.

Só que mesmo sendo um jogo simples, o esforço para programá-lo em tecnologias atuais é muito maior do que as crianças são capazes de fazer hoje. Mas com o Twine tudo ficou bem mais simples e direto.

Criando jogos baseados em texto

O Twine é uma ferramenta de código aberto desenvolvida originalmente em 2009, pelo engenheiro de software Chris Klimas com objetivo de criar uma maneira fácil de contar histórias interativas e não lineares.

A aplicação possui versões que podem ser instaladas no Windows, Linux e Mac; mas há também uma versão web disponível neste link.

Cada jogo criado na plataforma é chamado de “História”. Podemos criar uma nova clicando no botão “+ História” no menu vertical do lado direito do site.

Criando uma nova história no Twine

Após inserir um novo nome para a história, somos redirecionados para um plano cartesiano. É nesta tela que vamos desenhar todo o resto do jogo. Cada passo do jogo é definido de forma bem intuitiva, através do bloco chamado de passagem. O jogo começa com uma passagem inicial:

Passagem inicial no Twiner

Ao dar um duplo clique na passagem, um modal se abrirá e é lá onde vamos inserir os comandos do jogo. O texto digitado é exibido normalmente, mas para inserir “links” (e quando digo link, entenda como as escolhas que iremos oferecer ao jogador), usamos a seguinte sintaxe:

[[<ação> -> <nome_da_passagem>]]

Para entender melhor o que isso quer dizer, partiremos para um exemplo mais prático. Considere que na passagem inicial a gente insira o seguinte roteiro:

Você está com sede. Do lado direito, há uma lanchonete e do lado esquerdo um lago. Para onde você vai?

[[vou para a lanchonete -> lanchonete]]

[[vou para o lago -> lago]]

Esse jogo será reproduzido na seguinte maneira no mapa.

Passagem com duas escolhas

Bem legal, né? Agora, já podemos testar o nosso jogo. Para isso, existem duas opções possíveis:

  • Testar: o jogo é executado em modo de debug. Aqui temos uma visualização de variáveis e fluxos em tempo de execução.
  • Jogar: o jogo é executado como se você fosse um jogador normal.

Ao clicar em qualquer uma das opções, o jogo vai abrir em um outra aba do navegador.

E de maneira simples assim, conseguimos fazer o nosso jogo!

Conclusão

O funcionamento do Twiner é bem simples. No entanto, sua API nos possibilita uma verdadeira infinidade de opções para o nosso jogo. Desde condicionais, loops, estruturas de dados, enfim – a ferramenta é extensa e bem completa. Vale a pena conferir!

Referências