Podobnie jak w przypadku demokracji Poza ciemnością, jedną z naszych najwcześniejszych decyzji było posiadanie tak dużej ilości rozgrywki i historii opowiadanych dygitalowo w samym świecie.Może to być trudny proces, gdy chcesz zrównoważyć obie komunikujące się postępy do gracza za pośrednictwem interfejsu użytkownika, jednocześnie sprawiając, że poczują się tak, jakby naprawdę byli w świecie, który stworzyłeś.Aby spełnić te cele dla naszego doświadczenia, złamaliśmy sposób komunikowania informacji graczom w cztery techniki:
- Wskazówki wizualne - Obiekty, obrazy lub układ zasobów, które pasywnie wzmacniają historię lub dają wskazówki graczowi, gdy ma to sens dla świata.
- Lore - Kiedy gracz kliknie/dotknie konkretnych przedmiotów w domu, wyświetla się ważna informacja o historii na całym ekranie .Ta narracja jest widoczna tylko dla gracza, który kliknął/dotknął obiektu.Ton zawsze jest informacyjny w tonie i sformułowaniu.
- Bąbelki myśli - Kiedy gracz kliknie/dotknie określonych przedmiotów w domu, wyświetla się tekstowy dialog "reakcja" w pobliżu obiektu .Ta narracja jest widoczna tylko dla gracza, który kliknął/dotknął obiektu.Ton zawsze jest pierwszoosobowy i obserwacyjny.
- Ogłoszenia - Kiedy gracz kliknie/dotknie skorumpowanego przedmiotu w domu, dialog trzeciej osoby wyświetla się na ekranie każdego gracza jednocześnie .Ta narracja czasami przełącza wszystkich graczy do skorumpowanego stanu pokoju, w którym się znajdują.
W tej sekcji pokażemy, jak wykorzystaliśmy te techniki i specyficzne funkcje, aby wciągnąć graczy w naszą narrację, jednocześnie zachęcając do eksploracji, komunikowania postępu i utrzymywania rozgrywki zarówno osobistą dla poszczególnego gracza, jak i sprawiedliwą w doświadczeniu wieloosobowym.



Wizualne wskazówki
Wizualny sygnał jest ważnym narzędziem do wzmocnienia narracji i powiedzenia graczom, co muszą wiedzieć o swoim celu bez używania słów .Używając aranżacji zasobów, takich jak tablice szkolne, posągi i tapety, mogliśmy pasywnie dostarczać głębi informacji o głównych postaciach Duvall Drive, a także wskazówki, jak ukończyć puzzle bez konieczności uwzględniania elementów interfejsu użytkownika inwazyjnych.Zaczęliśmy ten proces od ustalenia, co chcieliśmy przekazać graczowi, a następnie jak będzie sens komunikować to w świecie naszego doświadczenia.Na przykład chcieliśmy, aby gracze zrozumieli, jak zafiksowany był dziadek w swojej misji, by oprzeć się śmierci, więc opuściliśmy jego pokój w bałaganie z dużą ilością jego badań i kilkoma ścianami ze swoimi nieczytanymi myślami.


Naszą pierwszą zasadą było to, że jeśli chcieliśmy użyć wizualnego sygnału, aby nauczyć graczy czegoś, musi mieć powód, aby istnieć, nawet jeśli gracze nie są obecni.Jeśli umieścilibyśmy gigantyczną tablicę z wyraźnymi instrukcjami co zrobić dla puzzle, wydawałoby się to niepasujące wewnątrz domu.Jeśli jednak ustanowimy dziadka, który jest zużywany do rysowania wszystkiego, w tym ścian jego sypialni, jest o wiele bardziej wiarygodne, aby mieć tablicę z jego planem, który ma być przestrzegany przez gracza.

Naszą drugą zasadą było to, że nie zawsze musimy mówić graczom, co robić lub jak rozwiązywać puzzle, ponieważ są one pouczające dla ich środowisko.Na przykład czasami wystarczy upuszczona linia zasilająca w basenie wody, aby przekazać wizualną wskazówkę, że gracze są zagrożeni elektryfikacją, jeśli nadal poruszają się w tym kierunku.

Wiedza
Oprócz korzystania z wizualnych wskazówek do pasywnego prowadzenia graczy wybraliśmy również wyświetlanie ważnych informacji o historii o rodzinie na całym ekranie jako prekursor rozpoczęcia zagadki w pokoju, gdy gracz kliknął lub dotknął konkretnych przedmiotów w domu.Aby poprowadzić graczy do obiektów, które musieli wybrać, aby lore został wyświetlony, użyliśmy nowego efektu wizualnego podświetlenia, aby wyróżnić konkretne obiekty od ich otoczenia.Efekt ten pozwala na wyrysowanie i/lub nałożenie obiektów o określonym kolorze, który pasuje do kształtu samego obiektu, i wybór, czy inne obiekty mogą ukryć podświetlenie, jeśli są bliżej kamery.




Początkowo użyliśmy Highlight dla każdego obiektu, z którym gracz mógł interakcjonować, ale hałas wizualny był przytłaczający, a gracze nie wiedzieliby jasno, z czym mają interakcję, aby przeczytać historię.Zdecydowaliśmy się używać go tylko do podświetlania przedmiotów, które były uszkodzone lub niebezpieczne, a ta wizualna informacja zwrotna pozwoliła graczom łatwo prowadzić historię do przodu.

Po tym, jak gracz kliknął na obiekt z historią, potrzebowaliśmy sposobu na wyświetlenie informacji na górze ekranu.Zdecydowaliśmy się stworzyć przekładkę za pomocą użycia ScreenGui jako naszego kontenera interfejsu użytkownika na ekranie z dzieckiem Frame do kontroli rozmiaru i przesuwania jego dzieci TextLabels i ImageLabels .Ustawiamy pozycję i skalę właściwości TextLabels i ImageLabels, tak aby pasowały wizualnie razem i skalowały się dla różnych urządzeń, do których gracze mają dostęp do doświadczenia.

TextLabels i ImageLabels wpływają na wizualne elementy ich odpowiednich tekstów i obrazów, w tym ich kolor, przejrzystość, rozmiar i układ.W szczególności dla TextLabels możesz dostosować ich TextLabel.TextScaled i TextLabel.RichText właściwości, aby kontrolować układ i styl wizualny tekstu.TextLabel.TextScaled pozwala skalować tekst, aby wypełnić całą przestrzeń elementu UI rodzica, a TextLabel.RichText pozwala używać prostych znaczników znaczników, aby stylować sekcje tekstu w pogrubieniu, kursywie, kolorze lub nawet różnych czcionkach.

Wiedzieliśmy, że gracze będą mieli dostęp do tego doświadczenia z różnych urządzeń, w tym komputera, konsoli i urządzeń mobilnych, i będą musieli mieć możliwość kliknięcia lub dotknięcia ekranu, aby wejść w interakcję z doświadczeniem.Nie chcieliśmy, aby na ekranie pojawiła się garstka przycisków, które rozpraszają narrację, więc stworzyliśmy niewidzialny przycisk powrotu o rozmiar całego ekranu, aby gracze mogli kliknąć lub dotknąć dowolnego miejsca na przekładce historii, aby zamknąć treść i powrócić do rozgrywka.

Bąbelki myśli
Potrzebowaliśmy sposób, aby postać gracza komunikowała pomysły graczowi, takie jak dostarczanie dodatkowego smaku narracji lub wzmacnianie tego, co musieli zrobić.Naszym rozwiązaniem było wyświetlanie bąbelków myśli lub reakcji tekstowych z postaci gracza w pobliżu obiektów niezwiązanych z historią, gdy gracz je wybrał.Ta narracja wyświetla się tylko dla gracza, który kliknął lub dotknął obiektu, a ton zawsze jest pierwszoosobowy i obserwacyjny.

Aby stworzyć bąbelki myśli, przygotowaliśmy BillboardGui z dzieckiem TextLabel do obiektów nie-lore.Umożliwiło to wyświetlanie dialogu w przestrzeni 3D w pobliżu obiektu bez tekstu zajmującego cały ekran.Podobnie do naszego procesu tworzenia historii, użyliśmy właściwości TextLabel.RichText do stylizacji tekstu i dodania efektów wizualnych, takich jak inne istnienie z innego świata, które przerywa własne myśli gracza.Poniżej jest przykład RichText HTML używany do tworzenia obrazu poniżej.
"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>

Używając TextLabels zamiast obrazów, zachowaliśmy tekst czytelny dla Roblox i mogliśmy automatycznie zlokalizować tę zawartość i uczynić ją dostępną dla wielu więcej graczy bez konieczności wykonywania czegokolwiek! Dla więcej informacji na temat tego procesu zobacz automatyczne tłumaczenia.
Ogłoszenia
Chociaż chcieliśmy, aby postać gracza miała reakcje na świat, chcieliśmy również, aby sam świat reagował na ich obecność.Aby osiągnąć ten cel, uwzględniliśmy ogłoszenia lub dialogi trzeciej osoby, które wyświetlają na ekranie każdego gracza naraz .Podobnie jak w przypadku wiedzy, stworzyliśmy ogłoszenia za pomocą użycia ScreenGui jako naszego kontenera interfejsu użytkownika na ekranie z dzieckiem TextLabel.Użyliśmy również właściwości TextLabel.RichText w celu zmiany koloru, czcionki i rozmiaru dialogu, aby pomóc przekazać różne "entyty" rozmawiające z graczami w domu.



Używając właściwości TextLabel.RichText i dostarczając w niej niektóre komendy HTML, aby prowadzić zmiany, mogliśmy również dokonać zmian po wyroku! Na przykład następujący bogaty tekstowy znacznik pozwolił nam przerwać reakcję postaci gracza przez myśli zanieczyszczonej jednostki:
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>

Mieliśmy kilka tego typu ogłoszeń, uruchomionych przez niewidzialne objętości części, do których gracze weszli, lub ukończając pewne cele.Aby uniknąć dziesiątków pojedynczych ScreenGuis, użyliśmy oddzielnego skryptu w demo, który pozwolił nam dostarczyć tekst, który skrypt następnie dodałby do pojedynczego obiektu, który nazwaliśmy StoryNote w naszym katalogu PlayerGui.Ten obiekt był pojedynczym ScreenGui z dzieckiem TextLabel.Używając skryptowania, moglibyśmy wstrzyknąć dowolne frazy, które chcieliśmy bezpośrednio do pojedynczego TextLabel, co ułatwiło znacznie dokonywanie zmian, gdy dowiedzieliśmy się, jak i co chcieliśmy przekazać graczowi!


