Sistema de Marcadores

De MysteryRealms
Revisão de 18h04min de 5 de abril de 2025 por Rodrigogml (discussão | contribs)
Ir para navegação Ir para pesquisar

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:

  1. Controle narrativo e progresso de missões
  2. Ativação de diálogos e eventos
  3. Geração de entradas no diário
  4. Verificações de lógica global
  5. Mudança de comportamento de NPCs
  6. Rejogabilidade e finais alternativos
  7. Desbloqueio de áreas ou itens
  8. 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(...)

Ver também