Wie die Jenseits der Dunkelheit-Demo, war eine unserer frühesten Entscheidungen, so viel des Spiels und der Geschichte didaktisch innerhalb der Welt selbst zu erzählen.Dies kann ein schwieriger Prozess sein, wenn du beide Kommunikationsfortschritte zum Spieler durch die Benutzeroberfläche ausgleichen möchtest, während du ihn auch so fühlen lässt, als wäre er wirklich in der Welt, die du gebaut hast.Um diese Ziele für unsere Erlebniszu erreichen, brachen wir die Art und Weise, wie wir Informationen an Spieler weitergeben, in vier Techniken auf:
- Visuelle Hinweise - Objekte, Bilder oder Anordnung von Assets, die passiv die Geschichte stärken oder dem Spieler Hinweise geben, wenn es für die Welt Sinn macht.
- Lore - Wenn ein Spieler auf bestimmte Gegenstände im Haus klickt/tippt, werden wichtige Geschichtsinformationen auf dem gesamten Bildschirm angezeigt .Diese narrative ist nur für den Spieler sichtbar, der auf das Objekt geklickt/getippt hat.Der Ton ist immer informativ in Ton und Phrasierung.
- Gedankenblasen - Wenn ein Spieler auf bestimmte Gegenstände im Haus klickt/tappt, wird eine Textdialog-"Reaktion" in der Nähe des Objekts angezeigt.Diese narrative ist nur für den Spieler sichtbar, der auf das Objekt geklickt/getippt hat.Der Ton ist immer erste Person und beobachtend.
- Ankündigungen - Wenn ein Spieler auf ein beschädigtes Element im Haus klickt/tippt, wird ein Dialog der dritten Person auf dem Bildschirm eines jeden Spieler:ingleichzeitig angezeigt .Diese Erzählung wechselt manchmal alle Spieler in den korrupten Zustand des Raums, in dem sie sich befinden.
In diesem Abschnitt werden wir zeigen, wie wir diese Techniken und spezifische Funktionen verwendet haben, um Spieler in unsere Geschichte einzutauchen, während wir gleichzeitig die Erkundung fördern, den Fortschritt kommunizieren und das Spiel gleichzeitig intime für den einzelnen Spieler und fair in einer Erlebnishalten.



Visuelle Hinweise
Ein visueller Hinweis ist ein wichtiges Werkzeug, um sowohl die narrative zu verstärken als auch den Spielern mitzuteilen, was sie über ihr Ziel wissen müssen ohne Wörter zu verwenden .Durch die Verwendung einer Reihe von Assets wie Zeichenbretter, Statuen und Tapeten konnten wir passiv eine Tiefe von Informationen über die Hauptfiguren von Duvall Drive liefern, sowie Anleitungen, wie Rätsel abgeschlossen werden können, ohne invasive UI-Elemente einzuschließen.Wir begannen diesen Prozess, indem wir zuerst herausfanden, was wir dem Spieler:inmitteilen wollten, und dann, wie es sinnvoll wäre, dies innerhalb der Welt unserer Erlebniszu kommunizieren.Zum Beispiel wollten wir, dass Spieler verstehen, wie sehr der Großvater in seiner Mission war, dem Tod zu trotzen, also ließen wir seinen Raum in Unordnung mit viel seiner Forschung und mehreren Wänden mit seinen verschwärzten Gedanken.


Unsere erste Regel war, dass, wenn wir eine visuelle Hinweis verwenden wollten, um den Spielern etwas beizubringen, er einen Grund zum Bestehen haben muss, auch wenn die Spieler nicht anwesend sind.Wenn wir ein riesiges Schild mit klaren Anweisungen, was zu tun ist, für ein Rätsel setzen, würde dies innerhalb des Hauses fehl am Platz erscheinen.Wenn wir jedoch einen Großvater etabliert haben, der mit dem Zeichnen von allem, einschließlich den Wänden seines Schlafzimmers, beschäftigt ist, ist es viel glaubwürdiger, eine Kreidetafel mit seinem Plan zu haben, den der Spieler befolgen kann.

Unsere zweite Regel war, dass wir den Spielern nicht immer sagen müssen, was zu tun ist oder wie Rätsel gelöst werden, weil sie Einsicht in ihre Umgebung haben.Zum Beispiel ist manchmal eine heruntergekommene Stromleitung in einem Pool von Wasser genug, um visuell zu kommunizieren, dass Spieler in Gefahr sind, elektrifiziert zu werden, wenn sie in diese Richtung weiterbewegen.

Überlieferung
Neben der Verwendung visueller Hinweise, um Spieler passiv zu führen, wählten wir auch, wichtige Geschäftsinformationen über die Familie auf dem gesamten Bildschirm anzuzeigen , als Vorgeschmack, um das Rätsel des Raums zu starten, wann immer ein Spieler auf bestimmte Gegenstände im Haus klickte oder tippte.Um Spielern bei der Auswahl der Objekte zu helfen, die für die Anzeige von Lore ausgewählt werden mussten, verwendeten wir den neuen Highlight-Visuelleffekt, um bestimmte Objekte von ihrer Umgebung hervorzustechen.Dieser Effekt erlaubt es dir, Objekte mit einer bestimmten Farbe hervorzuheben und/oder zu überlappen, die zur Form des Objekts passt, und zu wählen, ob andere Objekte die Highlights verbergen können, wenn sie näher an der Kamera sind.




Wir verwendeten zunächst Highlight für jedes Objekt, mit dem ein Spieler interagieren konnte, aber der visuelle Lärm war überwältigend und Spieler würden nicht klar wissen, mit dem sie interagieren sollten, um die Geschichte zu lesen.Wir beschlossen, es nur zu verwenden, um Gegenstände hervorzuheben, die entweder beschädigt oder gefährlich waren, und dieses visuelle Feedback ermöglichte es den Spielern, die Geschichte leicht voranzutreiben.

Nachdem der Spieler auf das Objekt mit der Lore geklickt hatte, brauchten wir einen Weg, die Informationen oben auf dem Bildschirm anzuzeigen.Wir entschieden uns, ein Overlay zu erstellen, indem wir eine ScreenGui als unsere On-Screen-UI-Container verwenden, mit einem Kind Frame , um die Größe und Skalierung seiner Kinder TextLabels und ImageLabels zu steuern.Wir legen die Positionen und Größe der TextLabels und ImageLabels Eigenschaften fest, so dass sie visuell zusammenpassen und für verschiedene Geräte, mit denen Spieler auf die Erlebniszugreifen, skalieren.

TextLabels und ImageLabels beeinflussen visuelle Elemente ihres jeweiligen Textes und Bilder, einschließlich ihrer Farbe, Transparenz, Größe und Anordnung.Für TextLabels speziell können Sie ihre TextLabel.TextScaled und TextLabel.RichText Eigenschaften anpassen, um das Layout und die visuelle Gestaltung von Text zu steuern. TextLabel.TextScaled ermöglicht es Ihnen, Text zu skalieren, um den gesamten Platz des übergeordneten UI-Elements zu füllen, und TextLabel.RichText ermöglicht es Ihnen, einfache Markierungs标签 zu verwenden, um Abschnitte des Textes in gedruckter, kursiver, farbiger oder sogar verschiedener Schriftarten zu formatieren.

Wir wussten, dass Spieler von einer Vielzahl von Geräten auf diese Erfahrung zugreifen würden, einschließlich PC, Konsole und mobilen Geräten, und sie müssten in der Lage sein, auf den Bildschirm zu klicken oder zu tippen, um mit der Erlebniszu interagieren.Wir wollten keine Reihe von Schaltflächen auf dem Bildschirm, die die Erzählung ablenken, also machten wir eine unsichtbare Rückschaltfläche der Größe des gesamten Bildschirms, damit Spieler entweder auf die Lore-Überlagerung klicken oder tippen können, um den Inhalt zu schließen und zum Gameplayzurückzukehren.

Gedankenblasen
Wir brauchten einen Weg, über den der Charakter des Spieler:inIdeen mit dem Spieler:inkommunizieren konnte, wie z. B. die Bereitstellung zusätzlicher narrativer Geschmack oder die Verstärkung dessen, was sie tun mussten.Unsere Lösung bestand darin, Gedankenblasen oder Textreaktionen vom Charakter des Spieler:inanzuzeigen , in der Nähe von nicht-lore-Objekten, wann immer der Spieler sie auswählte.Diese Erzählung wird nur dem Spieler angezeigt, der das Objekt angeklickt oder getippt hat, und der Ton ist immer in erster Person und beobachtend.

Um Gedankenblasen zu erstellen, pflegten wir eine BillboardGui mit einem Kind TextLabel zu nicht-lore-Objekten.Dies ermöglichte es uns, den Dialog im 3D-Raum in der Nähe des Objekts anzuzeigen, ohne dass der Text die gesamte Bildschirmfläche einnimmt.Ähnlich wie bei unserem Prozess beim Erstellen von Lore verwendeten wir die Eigenschaft TextLabel.RichText, um den Text zu formatieren und visuelle Effekte hinzuzufügen, wie ein anderes überirdisches Wesen die Gedanken des Spieler:inunterbricht.Das Folgende ist ein Beispiel für RichText-HTML, mit dem das Bild unten erstellt wurde.
"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>

Durch die Verwendung von TextLabels anstelle von Bildern hielten wir den Text für Roblox lesbar und konnten diesen Inhalt automatisch lokalisieren und für viele mehr Spieler zugänglich machen, ohne etwas tun zu müssen! Weitere Informationen zu diesem Prozess finden Sie unter automatische Übersetzungen.
Ankündigungen
Während wir wollten, dass der Charakter des Spieler:inReaktionen auf die Welt hat, wollten wir auch, dass die Welt selbst auf ihre Anwesenheit reagiert.Um dieses Ziel zu erreichen, haben wir Ankündigungen oder einen Dialog in der dritten Person einbezogen, der auf einmal auf dem Bildschirm jedes Spieler:inangezeigt wird .Ähnlich wie Lore haben wir Ankündigungen erstellt, indem wir einen ScreenGui als unseren On-Screen-UI-Container mit einem Kind TextLabel verwendet haben.Wir verwendeten auch die Eigenschaft TextLabel.RichText, um die Farbe, Schriftart und Größe des Dialogs zu ändern, um verschiedene "Entitäten" zu helfen, die mit den Spielern im Haus sprechen.



Durch die Verwendung der Eigenschaft TextLabel.RichText und die Bereitstellung einiger HTML-Befehle darin, um Änderungen vorzunehmen, durften wir auch Änderungen mitten im Satz vornehmen! Zum Beispiel ermöglichte uns die folgende reiche Textmarkierung, die Reaktion des Spielerscharakters durch die Gedanken der korrupten Entität zu unterbrechen:
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>

Wir hatten mehrere dieser Arten von Ankündigungen, entweder ausgelöst durch unsichtbare Teilvolumen, in die Spieler hereingingen, oder durch das Abschließen bestimmter Ziele.Um Dutzende einzelner ScreenGuis zu vermeiden, verwendeten wir ein separates Skript in der Demo, das es uns ermöglichte, den Text zu liefern, den das Skript dann zu einem einzelnen Objekt hinzufügen würde, das wir StoryNote in unserem Ordner PlayerGui benannten.Dieses Objekt war ein einzelnes ScreenGui mit einem Kind TextLabel.Mit Scriptingkönnten wir jede Phrase, die wir wollten, direkt in die einzige TextLabel einspritzen, was es viel einfacher machte, Änderungen vorzunehmen, wie wir herausfanden, wie und was wir dem Spieler:inmitteilen wollten!


