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:
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
--
AurelioAHeckert - 07 Aug 2004