Sistema de Marcadores
Sistema de Marcadores
O sistema de Marcadores da engine PlayTale é o mecanismo central de controle de progresso narrativo, condições lógicas e desbloqueio de conteúdo. Cada marcador representa um ponto de estado binário (presente ou ausente) na jornada do jogador, permitindo que o jogo reaja de forma dinâmica e consistente às ações e escolhas feitas.
Conceito de Marcadores
Marcadores são registros internos aplicados à ficha do jogador que indicam que algo aconteceu, foi descoberto, conquistado ou decidido. Eles não possuem valor numérico — sua presença ou ausência é o que define as condições avaliadas pela engine.
Um marcador pode representar:
- Uma informação aprendida.
- Um evento testemunhado.
- Um item importante obtido.
- Um teste superado ou falhado.
- Um trecho de missão concluído.
- Uma conquista significativa.
- A finalização de uma linha narrativa.
- O desbloqueio de uma área especial.
- A ativação de uma badge ou troféu.
Utilização dos Marcadores
Marcadores são utilizados por praticamente todos os sistemas de lógica narrativa da engine:
- Desbloqueio e ramificação de diálogos.
- Controle de avanço em missões e linhas narrativas.
- Geração de entradas no Diário do Jogador.
- Mudança de comportamento ou falas de NPCs.
- Controle de acesso a zonas, ambientes ou interações.
- Registro de descobertas, eventos e segredos.
- Verificações de continuidade ao trocar de região, salvar ou carregar.
- Concessão de badges, conquistas ou efeitos especiais.
- Condicional de scripts, magias ou eventos especiais.
Nomeação de Marcadores
A nomenclatura dos marcadores deve seguir o formato UPPER_SNAKE_CASE, com nomes descritivos e claros. A padronização facilita sua busca e interpretação durante o design e integração.
Prefixos recomendados
- SABE_SOBRE_*: Conhecimentos aprendidos.
- VIU_*: Locais ou eventos vistos.
- PEGOU_*: Itens coletados ou acionados.
- TESTE_*_SUCESSO / TESTE_*_FALHA: Resultado de testes.
- CONCLUIU_*: Marcos de missão ou narrativa.
- DIALOGO_*_ENCERRADO: Fim de interações únicas.
- CONQUISTOU_*: Desbloqueio de conquistas ou badges.
Exemplos:
- `SABE_SOBRE_ORIGEM_DOS_DRACOS`
- `VIU_ENTRADA_SECRETA_TORRE_SUL`
- `TESTE_PERSUASAO_SUCESSO_GUARDA`
- `CONCLUIU_MISSAO_LUZ_DO_PANTANO`
- `CONQUISTOU_DOMINIO_DO_MEDO`
Registro de Marcadores
Marcadores podem ser registrados de diversas formas:
- Por comandos em diálogos:
[Inserir Marcador; NOME_DO_MARCADOR]
- Por scripts de evento, interação com objetos, ou conclusão de tarefas.
- Automaticamente, ao cumprir certos gatilhos narrativos.
Marcadores são, por padrão, permanentes — só devem ser removidos por decisão narrativa específica ou efeito mágico singular.
Consulta de Marcadores
Durante verificações lógicas, são utilizadas funções de leitura booleana:
hasModifier("NOME_DO_MARCADOR")
Versões múltiplas:
hasAnyModifier("A", "B")
hasAllModifiers("A", "B", "C")
Boas Práticas
- Use nomes claros e específicos.
- Prefira granularidade a genéricos.
- Nunca reutilize marcadores para finalidades diferentes.
- Documente a função narrativa dos marcadores importantes.
Relação com outros sistemas
- O Diário_do_Jogador pode ser alimentado automaticamente por marcadores com certos prefixos.
- Estrutura de Diálogo depende diretamente de marcadores para condicionar falas e caminhos.
- Troféus, conquistas e desbloqueios visuais também utilizam marcadores como chave de ativação.