AdventurePlugin

O TWiki, sendo um Wiki, facilita bastante o desenvolvimento de sítios web para Ficção Interativa (como "livros-jogo" bastante conhecido por jogadores de RPG). Isso porque o Wiki facilita muito a hipertextualidade e consequentemente o conteúdo em rede, dando ao usuário um grande número de caminhos diferentes para percorrer esse conjunto de páginas.

Educadores tem estudado bastante o poder educacional desse tipo de jogo o que já dá um valor maior que o prazer do ludico para o desenvolvimento desse plugin.


Requisitos

Um plugin para facilitar o desenvolvimento desse tipo de jogo deve ser capaz de:

  • Conhecer quais os posiveis caminhos a partir do tópico onde o usuário está;
  • Saber qual foi a ultima posição do usuário;
  • Validar a entrada dele no tópico requisitado, testando se a ultima posição tinha caminho para este tópico;
  • Guardar um histórico do caminho percorrido;
  • Possibilitar salvar e recuperar o caminho percorrido com o visitante (não no TWiki);
  • Mostrar o caminho percorrido como um texto contínuo (uma história única);
  • Listar itens "pegaveis" de um ambiente;
  • Conhecer a posição dos objetos;
  • Possibilitar que o usuário carregue objetos;
  • Permitir ações com casos (se tiver o objeto foo pode fazer bar);
  • Guardar o estado do jogador (saúde, força, velocidade, ...) com dados personalizaveis;
  • ...mais alguma coisa?

Iniciando

Tudo será guardado na seção do visitante.

Todo tópico de jogo deve ter a variável %AdventureLocation{"nome do lugar"}%

Para conhecer quais os posiveis caminhos a partir do tópico onde o usuário está

%START_AdventureCanGo{"formatação da lista de links"}%
   TopicName : Frase amigável para o link
   (Teste para casos) TopicName : Frase amigável para o link
%STOP_AdventureCanGo%

%START_AdventureCanGo{"   * [[$topic][$linktext]]\n"}%
   CasaDaMaeJoana : Ir para a casa da Mãe Joana
   (If have força more_than 10) QuebrarPorta3 : Quebrar a Porta 3
   (If have panela) JogarPanelaNaJanela : Jogar a panela na janela
%STOP_AdventureCanGo%

Para definir os objetos "pegaveis" de um ambiente

Em um tópico chamado ObjectsList deve existir a seguinte tabela:

|  *Objeto*  |  *Localização*  |  *Peso(kg)*  |  *Movel*  |
|  Coisa  |  sala1  |  10  |  N  |
|  Cavalo  |  curral  |  350  |  Y  |
|  Chave  |  quarto2  |  0,1  |  N  |
Resultado:
Objeto Localização Peso(kg) Movel
Coisa sala1 10 N
Cavalo curral 350 Y
Chave quarto2 0,1 N
Essa tabela irá para a seção do visitante no início e será modificada durante o jogo. Objeto é o nome de referência do mesmo. Objetos não moveis devem ser carregados pelo jogador que terá um limite de peso isso é testado ao pegar o objeto.

Para listar os objetos

  • Do local: %AdventureListLocationObjects{"formatação da lista"}%
    Formatação padrão: <3 espaços>* [[$getObject][Get the $objectName]]\n
  • Do jogador: %AdventureListPlayerObjects{"formatação da lista"}%
    Formatação padrão: <3 espaços>* [[$leftObject][Left the $objectName]]\n

Modificando o estado do jogo na entrada de um tópico

%AdventureExec{"ação"}%

Exemplos:

Comando Efeito
%AdventureExec{"player get coisa"}% Jogador pega coisa para sí.
%AdventureExec{"player left coisa"}% Jogador deixa a coisa no local.
%AdventureExec{"player força = 10"}% A força do jogador fica igual a 10 pontos.
%AdventureExec{"player força + 10"}% A força do jogador cresce mais 10 pontos.
%AdventureExec{"object 'coisa' delete"}% A coisa deixa de existir.
%AdventureExec{"object 'coisa' create(sala1, 10, N)"}% A coisa foi criada na sala1 com peso 10 e é imovel.


LinkOptionsPlugin Global Settings

  • One line description, shown in the TextFormattingRules? topic:
    • Set SHORTDESCRIPTION = Facilita a criação de jogos de Ficção Interativa controlando caminhos possiveis, itens coletados e o que mais for necessário.

  • Set DEBUG to 1 to get debug messages in data/debug.txt. Default: 0
    • Set DEBUG = 1

-- AurelioAHeckert - 07 Aug 2004

Topic revision: r2 - 08 Aug 2004 - 00:41:00 - AurelioAHeckert
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki-SL? Send feedback