Como a demonstração Além das Trevas, uma das nossas primeiras decisões foi ter o máximo de jogabilidade e história contadas de forma dialética dentro do próprio mundo.Esse pode ser um processo difícil quando você quer equilibrar o progresso de comunicação com o jogador através da interface do usuário, ao mesmo tempo em que os faz sentir como se realmente estivessem dentro do mundo que você construiu.Para atingir esses objetivos para nossa experiência, quebramos a maneira como comunicamos informações aos jogadores em quatro técnicas:
- Sinais visuais - Objetos, imagens ou arranjo de recursos que reforçam passivamente a história ou dão dicas ao jogador quando faz sentido para o mundo.
- Lore - Quando um jogador clica/toca em itens específicos na casa, informações importantes de história são exibidas em toda a tela .Essa narrativa só é visível para o jogador que clicou/tocou no Objeto.O tom é sempre informativo em tom e fraseamento.
- Bolhas de pensamento - Quando um jogador clica/toca em itens específicos na casa, uma reação de diálogo de texto é exibida perto do objeto .Essa narrativa só é visível para o jogador que clicou/tocou no Objeto.O tom é sempre a primeira pessoa e observacional.
- Anúncios - Quando um jogador clica/toca em um item corrompido na casa, o diálogo em terceira pessoa é exibido na tela de todos os jogadores de uma só vez .Essa narrativa às vezes transfere todos os jogadores para o estado corrompido da sala em que estão.
Nesta seção, demonstraremos como usamos essas técnicas e características específicas para imergir os jogadores em nossa narrativa, enquanto ainda encorajamos a exploração, comunicamos o progresso e mantemos o jogo tanto íntimo para o jogador individual quanto justo em uma experiência multijogador.



Sinais visuais
Um sinal visual é uma ferramenta importante para reforçar a narrativa e dizer aos jogadores o que eles precisam saber sobre seu objetivo sem usar palavras .Usando uma configuração de recursos, como quadros-negros, estátuas e papéis de parede, conseguimos fornecer passivamente uma profundidade de informações sobre os principais personagens da Duvall Drive, bem como orientações sobre como completar quebra-cabeças sem ter que incluir elementos de UI invasivos.Começamos esse processo primeiro descobrindo o que queríamos comunicar ao jogador, então como faria sentido comunicar isso dentro do mundo de nossa experiência.Por exemplo, queríamos que os jogadores entendessem o quão obcecado o avô estava em sua missão de desafiar a morte, então deixamos sua sala em desordem com muita de sua pesquisa e várias paredes com seus pensamentos desordenados.


Nossa primeira regra era que, se quiséssemos usar um sinal visual para ensinar aos jogadores algo, ele deve ter um motivo para existir, mesmo que os jogadores não estejam presentes.Se colocarmos uma placa gigante com instruções claras de o que fazer para um quebra-cabeça, isso pareceria fora de lugar dentro da casa.No entanto, se estabelecemos um avô que é consumido com desenhar em tudo, incluindo as paredes de seu quarto, é muito mais credível ter um quadro-negro com seu plano rabiscado para o jogador seguir.

Nossa segunda regra era que nem sempre precisamos dizer aos jogadores o que fazer ou como resolver quebra-cabeças porque eles são insightful para o seu ambiente.Por exemplo, às vezes uma linha de energia caída em uma piscina de água é suficiente para comunicar que os jogadores estão em perigo de serem eletrificados se continuarem se movendo nessa direção.

Conhecimento
Além de usar sinais visuais para guiar passivamente os jogadores, também escolhemos exibir informações importantes sobre a história da família em toda a tela como um precursor para iniciar o quebra-cabeça da sala sempre que um jogador clicasse ou tocasse em itens específicos na casa.Para guiar os jogadores aos objetos que eles precisavam selecionar para que a lore fosse exibida, usamos o novo efeito visual de destaque para destacar objetos específicos de seus arredores.Este efeito permite que você esboce e/ou sobreponha objetos com uma cor específica que se encaixa na forma do próprio objeto e escolha se outros objetos podem ocultar o destaque se estiverem mais próximos da Câmera.




Inicialmente usamos Highlight para cada objeto com o qual um jogador poderia interagir, mas o ruído visual era esmagador e os jogadores não saberiam claramente com o que interagir para ler a lore.Decidimos usá-lo apenas para destacar itens que estavam corrompidos ou perigosos e esse feedback visual permitiu que os jogadores dirigissem facilmente a história para frente.

Depois que o jogador clicou no objeto com a lore, precisávamos de uma maneira de exibir as informações no topo da tela.Decidimos criar uma sobreposição usando um ScreenGui como nosso contêiner de UI na tela com um filho Frame para controlar o tamanho e o redimensionamento de seus filhos TextLabels e ImageLabels .Definimos as posições e a escala das propriedades TextLabels e ImageLabels para que combinem visualmente e escalem para diferentes dispositivos que os jogadores usam para acessar a experiência.

TextLabels e ImageLabels afetam elementos visuais de seu respectivo texto e imagens, incluindo sua cor, transparência, tamanho e arranjo.Para TextLabels especificamente, você pode ajustar suas propriedades TextLabel.TextScaled e TextLabel.RichText para controlar o layout e o estilo visual do texto. TextLabel.TextScaled permite que você redimensione o texto para preencher todo o espaço do elemento pai de UI, e TextLabel.RichText permite que você use tags de marcação simples para estilizar seções de texto em negrito, itálico, cor ou até mesmo diferentes fontes.

Sabíamos que os jogadores teriam acesso a essa experiência de uma variedade de dispositivos, incluindo PC, console e dispositivos móveis, e precisariam ser capazes de clicar ou tocar na tela para interagir com a experiência.Não queríamos um monte de botões na tela para distrair da narrativa, então fizemos um botão de retorno invisível do tamanho de toda a tela para que os jogadores pudessem clicar ou tocar em qualquer lugar sobre a sobreposição de lore para fechar o conteúdo e voltar ao jogabilidade.

Bolhas de pensamento
Precisávamos de uma maneira para o personagem do jogador comunicar ideias ao jogador, como fornecer um sabor narrativo adicional ou reforçar o que eles precisavam fazer.A nossa solução foi exibir bolhas de pensamento, ou reações de texto do personagem do jogador , perto de objetos não-lore sempre que o jogador os selecionasse.Essa narrativa só é exibida para o jogador que clicou ou tocou no Objetoe o tom é sempre de primeira pessoa e observacional.

Para criar bolhas de pensamento, paternamos um BillboardGui com uma criança TextLabel para objetos não-lore.Isso nos permitiu exibir diálogo no espaço 3D perto do objeto sem o texto ocupar toda a tela.Semelhante ao nosso processo de criação de conhecimento, usamos a propriedade TextLabel.RichText para estilizar o texto e adicionar efeitos visuais como outro ser de outro mundo interrompendo os próprios pensamentos do jogador.O seguinte é um exemplo de HTML de RichText usado para criar a imagem abaixo.
"What is…this…<br/><stroke color="#dcc7ff" joins="miter" thickness="2" transparency="0.5"><font size="60"><font color="rgb(10,8,11)"><i>....hunger….void….pull…</i></font></font></stroke>

Ao usar TextLabels em vez de imagens, mantivemos o texto legível pelo Roblox e pudemos automatizar a localização deste conteúdo e torná-lo acessível a muitos mais jogadores sem precisar fazer nada! Para mais informações sobre esse processo, veja traduções automáticas.
Anúncios
Enquanto queríamos que o personagem do jogador tivesse reações ao mundo, também queríamos que o próprio mundo reagisse à sua presença.Para atingir esse objetivo, incluímos anúncios ou diálogo de terceira pessoa, que exibe em cada tela do jogador de uma só vez .Semelhante à lore, criamos anúncios usando um ScreenGui como nosso contêiner de UI na tela com um filho TextLabel.Também usamos a propriedade TextLabel.RichText para alterar a cor, fonte e tamanho do diálogo para ajudar a transmitir diferentes "entidades" falando com os jogadores na casa.



Ao usar a propriedade TextLabel.RichText e fornecer alguns comandos HTML nela para impulsionar as alterações, também foi permitido fazer alterações no meio da sentença! Por exemplo, o seguinte marcado de texto rico nos permitiu interromper a reação do personagem do jogador pelos pensamentos da entidade corrupta:
What is…this…<br/><stroke color="#dcc7ff" joins="miter" thickness="2" transparency="0.5"><font size="60"><font color="rgb(10,8,11)"><i>....hunger….void….pull…</i></font></font></stroke>

Tivemos vários desses tipos de anúncios, seja por causa de volumes de partes invisíveis que os jogadores entraram, ou ao completar certos objetivos.Para evitar dezenas de indivíduos ScreenGuis, usamos um script separado na demonstração que nos permitiu fornecer o texto que o script então adicionaria a um único objeto que nomeamos StoryNote em nosso diretório PlayerGui.Este objeto era um único ScreenGui com um filho TextLabel .Usando scripting, poderíamos injetar quaisquer frases que quiséssemos diretamente no único TextLabel, o que tornou muito mais fácil fazer alterações como descobrimos como e o que queríamos comunicar ao jogador!


