Sistema de Marcadores
Sistema de Marcadores
O sistema de Marcadores e Marcos da engine PlayTale é essencial para controlar o progresso narrativo, lógica de eventos e desbloqueio dinâmico de conteúdo. Ambos funcionam como registradores binários — sua presença ou ausência define estados no jogo —, mas servem a propósitos distintos.
Marcadores
Conceito
Os Marcadores representam eventos pontuais, informações adquiridas ou estados transitórios. Funcionam como registros simples e granulares de ações específicas tomadas pelo jogador.
Um marcador:
- Presente: o jogador realizou a ação ou obteve o conhecimento.
- Ausente: o jogador ainda não realizou ou obteve.
Nomeação de Marcadores
Devem seguir o formato UPPER_SNAKE_CASE, com uso preferencial de prefixos que indiquem seu tipo. Exemplos:
- SABE_SOBRE_*: Conhecimento adquirido.
- VIU_*: Observações feitas pelo jogador.
- PEGOU_*: Itens coletados.
- TESTE_*_SUCESSO: Teste bem-sucedido.
- TESTE_*_FALHA: Teste fracassado.
- DIALOGO_*_ENCERRADO: Conversas encerradas.
Exemplos válidos:
- `SABE_SOBRE_ORIGEM_DOS_DRACOS`
- `PEGOU_CHAVE_CRISTALINA`
- `TESTE_INTIMIDACAO_SUCESSO_GUARDA_PORTAO`
Utilização
Marcadores são usados para:
- Controlar variações em diálogos.
- Alterar comportamento de NPCs.
- Definir acesso a áreas ou eventos.
- Adicionar entradas ao Diário do Jogador.
- Identificar sucesso ou falha em testes.
Registro
Marcadores são atribuídos automaticamente por comandos de diálogo, scripts ou interações. Exemplo:
[Inserir Marcador; SABE_SOBRE_PORTAL]
Boas Práticas
- Seja específico e descritivo.
- Evite sobreposição de significado.
- Mantenha consistência na nomenclatura.
Marcos
Conceito
Os Marcos (ou Milestones) representam eventos estruturais e duradouros na jornada do jogador. São utilizados para rastrear progresso global, decisões importantes e pontos de transição narrativa.
Diferente dos marcadores, os marcos não representam ações pontuais, mas sim avanços narrativos maiores, como conquistas, descobertas críticas, ou encerramentos de fases importantes de uma missão.
Usos
Os marcos podem ser usados para:
- Controle narrativo e progresso de missões
- Ativação de diálogos e eventos
- Geração de entradas no diário
- Verificações de lógica global
- Mudança de comportamento de NPCs
- Rejogabilidade e finais alternativos
- Desbloqueio de áreas ou itens
- Controle de conquistas e badges/troféus
Exemplos:
- `ENCONTROU_SOMBRA`
- `TRILHA_INVESTIGADA`
- `DERROTOU_GUARDIAO_NEVADA`
- `FINAL_SECRETO_ALCANCADO`
Registro de Marcos
Usualmente ativados por comandos como:
[Inserir Marco; TRILHA_INVESTIGADA]
Mas também podem ser definidos via eventos, scripts ou interações.
Boas Práticas
- Use nomes descritivos e específicos.
- Utilize formato UPPER_SNAKE_CASE.
- Evite reaproveitar marcos para múltiplos significados.
Diferenças entre Marcadores e Marcos
| Característica | Marcadores | Marcos |
|---|---|---|
| Persistência | Pode ser temporário ou removível | Sempre permanente |
| Finalidade | Estados pontuais ou conhecimento | Avanços narrativos ou estruturais |
| Complexidade | Granular, simples | Estratégico, global |
| Acesso ao Diário | Via prefixos (ex: SABE_SOBRE) | Quase sempre gera entrada |
| Utilização em Lógica | Sim | Sim |
Integração com a Engine
As funções de verificação utilizadas são distintas:
- Para marcadores:
hasModifier("NOME_DO_MARCADOR")
- Para marcos:
hasMilestone("NOME_DO_MARCO")
Versões múltiplas:
hasAllModifiers(...)/hasAnyModifiers(...)hasAllMilestones(...)/hasAnyMilestones(...)