Sistema de Marcadores: mudanças entre as edições

De MysteryRealms
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 1: Linha 1:
= 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.
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.


== Marcadores ==
== Conceito de Marcadores ==


=== Conceito ===
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.


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 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.


Um marcador:
== Utilização dos Marcadores ==
* '''Presente''': o jogador realizou a ação ou obteve o conhecimento.
* '''Ausente''': o jogador ainda não realizou ou obteve.


=== Nomeação de Marcadores ===
Marcadores são utilizados por praticamente todos os sistemas de lógica narrativa da engine:


Devem seguir o formato '''UPPER_SNAKE_CASE''', com uso preferencial de prefixos que indiquem seu tipo. Exemplos:
# '''Desbloqueio e ramificação de [[Estrutura de Diálogo|diálogos]].'''
# '''Controle de avanço em missões e linhas narrativas.'''
# '''Geração de entradas no [[Diário_do_Jogador|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.'''


* '''SABE_SOBRE_*''': Conhecimento adquirido.
== Nomeação de Marcadores ==
* '''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:
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.
* `SABE_SOBRE_ORIGEM_DOS_DRACOS`
* `PEGOU_CHAVE_CRISTALINA`
* `TESTE_INTIMIDACAO_SUCESSO_GUARDA_PORTAO`


=== Utilização ===
=== Prefixos de Marcadores ===
Marcadores são utilizados para registrar acontecimentos, descobertas, relações ou estados no progresso do jogador. Para facilitar a organização, manutenção e leitura dos eventos, todos os marcadores seguem uma estrutura com '''prefixos padronizados'''. Esses prefixos indicam o tipo e contexto do marcador.


Marcadores são usados para:
* Controlar variações em [[Estrutura de Diálogo|diálogos]].
* Alterar comportamento de NPCs.
* Definir acesso a áreas ou eventos.
* Adicionar entradas ao [[Diário_do_Jogador|Diário do Jogador]].
* Identificar sucesso ou falha em testes.


=== Registro ===
== Prefixos Utilizados ==
* '''CONHECE_'''  - Prefixo utilizado para indicar que o jogador '''conheceu ou foi apresentado a um personagem, criatura ou entidade específica'''. 
:* Exemplo: <code>CONHECE_ELVARINDOSILENCIO</code> — o jogador conheceu Elvarin do Silêncio.


Marcadores são atribuídos automaticamente por comandos de diálogo, scripts ou interações. Exemplo:
* '''SABESOBRE_''' - Prefixo utilizado quando o jogador '''descobre, toma ciência ou aprende sobre uma organização, evento, local ou informação relevante'''.
:* Exemplo: <code>SABESOBRE_ORDEMDOSCAMINHANTESSILENCIOSOS</code> — o jogador agora sabe da existência e natureza da Ordem dos Caminhantes Silenciosos.


<pre>[Inserir Marcador; SABE_SOBRE_PORTAL]</pre>
== Registro de Marcadores ==


=== Boas Práticas ===
Marcadores podem ser registrados de diversas formas:
* Por comandos em diálogos:
<pre>[Inserir Marcador; NOME_DO_MARCADOR]</pre>
* Por scripts de evento, interação com objetos, ou conclusão de tarefas.
* Automaticamente, ao cumprir certos gatilhos narrativos.


* Seja específico e descritivo.
Marcadores são, por padrão, '''permanentes''' — só devem ser removidos por decisão narrativa específica ou efeito mágico singular.
* Evite sobreposição de significado.
* Mantenha consistência na nomenclatura.


== Marcos ==
== Consulta de Marcadores ==


=== Conceito ===
Durante verificações lógicas, são utilizadas funções de leitura booleana:


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.
<pre>hasModifier("NOME_DO_MARCADOR")</pre>


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.
Versões múltiplas:
 
<pre>hasAnyModifier("A", "B")</pre>
=== Usos ===
<pre>hasAllModifiers("A", "B", "C")</pre>
 
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:
 
<pre>[Inserir Marco; TRILHA_INVESTIGADA]</pre>
 
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 ===
 
{| class="wikitable"
! 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:
== Boas Práticas ==


* Para marcadores:
* Use nomes claros e específicos.
<pre>hasModifier("NOME_DO_MARCADOR")</pre>
* Prefira granularidade a genéricos.
* Nunca reutilize marcadores para finalidades diferentes.
* Documente a função narrativa dos marcadores importantes.


* Para marcos:
== Relação com outros sistemas ==
<pre>hasMilestone("NOME_DO_MARCO")</pre>


Versões múltiplas:
* O [[Diário_do_Jogador]] pode ser alimentado automaticamente por marcadores com certos prefixos.
* <code>hasAllModifiers(...)</code> / <code>hasAnyModifiers(...)</code>
* [[Estrutura de Diálogo]] depende diretamente de marcadores para condicionar falas e caminhos.
* <code>hasAllMilestones(...)</code> / <code>hasAnyMilestones(...)</code>
* Troféus, conquistas e desbloqueios visuais também utilizam marcadores como chave de ativação.


= Ver também =
{{nota|Embora o termo "marco" ou "milestone" possa ser utilizado informalmente no design, toda lógica da engine trata esses elementos como '''Marcadores'''. O uso consistente desse termo facilita a padronização e integração entre os sistemas narrativos.}}
* [[Estrutura de Diálogo]]
* [[Diário_do_Jogador]]

Edição atual tal como às 17h41min de 6 de abril de 2025

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:

  1. Desbloqueio e ramificação de diálogos.
  2. Controle de avanço em missões e linhas narrativas.
  3. Geração de entradas no Diário do Jogador.
  4. Mudança de comportamento ou falas de NPCs.
  5. Controle de acesso a zonas, ambientes ou interações.
  6. Registro de descobertas, eventos e segredos.
  7. Verificações de continuidade ao trocar de região, salvar ou carregar.
  8. Concessão de badges, conquistas ou efeitos especiais.
  9. 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 de Marcadores

Marcadores são utilizados para registrar acontecimentos, descobertas, relações ou estados no progresso do jogador. Para facilitar a organização, manutenção e leitura dos eventos, todos os marcadores seguem uma estrutura com prefixos padronizados. Esses prefixos indicam o tipo e contexto do marcador.


Prefixos Utilizados

  • CONHECE_ - Prefixo utilizado para indicar que o jogador conheceu ou foi apresentado a um personagem, criatura ou entidade específica.
  • Exemplo: CONHECE_ELVARINDOSILENCIO — o jogador conheceu Elvarin do Silêncio.
  • SABESOBRE_ - Prefixo utilizado quando o jogador descobre, toma ciência ou aprende sobre uma organização, evento, local ou informação relevante.
  • Exemplo: SABESOBRE_ORDEMDOSCAMINHANTESSILENCIOSOS — o jogador agora sabe da existência e natureza da Ordem dos Caminhantes Silenciosos.

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.
Embora o termo "marco" ou "milestone" possa ser utilizado informalmente no design, toda lógica da engine trata esses elementos como Marcadores. O uso consistente desse termo facilita a padronização e integração entre os sistemas narrativos.