Entwicklerblog – Hervorhebungen & Baumkronen-Ausschnitt

Hey, ich bin Mod Saj und spreche heute über ein paar tolle Sichtbarkeitsverbesserungen, an denen wir gearbeitet haben.

Diese Verbesserungen wurden letztes Jahr beim RuneFest gezeigt, als sie noch in den Kinderschuhen steckten. Dazu zählen drei Verbesserungen, die es euch ermöglichen, dicht besiedelte Gebiete zu navigieren, ohne den Fokus auf euren Charakter zu verlieren, und die es einfacher machen, Objekte und NSC, mit denen man interagieren kann, zu finden.

In diesem Blog spreche ich darüber, wie sie funktionieren und euer Spielerlebnis beeinflussen werden.

Hervorhebungen

'Ihr habt eine neue Fertigkeit erlernt und seid nun irgendwo, wo ihr noch nie zuvor gewesen wart. Es ist wohl an der Zeit, mit der Maus über den Bildschirm zu fahren, um herauszufinden, mit was man interagieren kann!'

Wenn euch diese Situation bekannt vorkommt, seid ihr nicht alleine – die meisten von uns kennen das.

Es ist nicht immer klar ersichtlich, mit was man interagieren kann. Schaut euch zum Beispiel mal diese Bilder an und überprüft, ob ihr alles finden würdet, mit dem man interagieren kann. Machen wir das Ganze etwas einfacher und ignorieren alles, was nur untersucht werden kann:

Fertig? Hier könnt ihr alles sehen, mit was man interagieren kann – so wie es mit den Hervorhebungen auf Mobile aussieht:

Wie ihr seht, ist es von Ort zu Ort unterschiedlich, aber es ist wirklich nicht eindeutig, selbst wenn man schon seit langem spielt.

Die Hervorhebungen helfen dabei, indem sie alles leuchtend umranden, mit dem man interagieren kann (das reicht von Spielern, NSC und Beute bis hin zu Bäumen). Dadurch können interaktive Dinge schneller identifiziert und gefunden werden. Eine Ausnahme gibt es jedoch und dazu zählen Dinge, die nur untersucht werden können. Diese haben keine Umrandungen, weil es ansonsten sehr verwirrend wäre. Wir wollten, dass Umrandungen euch signalisieren, dass ihr mit dem Objekt direkt durch Antippen oder Anklicken interagieren könnt – Objekte, die lediglich untersuchbar sind, erfordern allerdings die Verwendung des Minimenüs.

Verschiedene Objekttypen haben auch verschiedenfarbige Umrandungen, wie ihr vielleicht schon am Bild oben erkannt habt. Für NSC und Spieler geht das Ganze noch einen Schritt weiter: Es wird überprüft, ob diese freundlich oder feindlich sind, sodass ihr auf einen Blick sagen könnt, ob ihr gleich Gevatter Tod besuchen werdet oder in Ruhe weiterlaufen könnt.

Bevor wir weitermachen, sind hier ein paar Videos mit den Hervorhebungen. Wir beginnen mit der PC-Version, auf der Dinge umrandet werden, wenn ihr euren Mauszeiger bewegt:

Da es auf Mobile keinen Mauszeiger gibt, heben wir Sachen um euren Charakter automatisch hervor, während ihr euch bewegt. Dies kann schnell aus- und eingeschaltet werden, wenn ihr es braucht:

Charakter-Silhouetten

Für euren Charakter werden außerdem Silhouetten hinzugefügt, die durch Wände, Terrain und andere Objekte hindurch sichtbar sein werden. Dadurch werdet ihr euren Charakter viel leichter verfolgen können, besonders wenn das mit dem Baumkronen-Ausschnitt-Effekt kombiniert wird.

Und so sieht es aus:

Baumkronen-Ausschnitte

RuneScape hat viele Wälder und sie alle verbindet eins: Bäume. Bäume sind wundervoll, aber Bäume, die es einem nicht ermöglichen zu sehen, was man tut, eher weniger – vielleicht erinnert ihr euch noch an den verschollenen Hain.

Um dieses Problem zu beheben, fügen wir ein Feature hinzu, welches überprüft, ob euer Charakter sichtbar ist. Wenn nicht, wird ein Effekt um euren Charakter erstellt, der Baumkronen und das Blattwerk in diesem Gebiet etwas transparenter macht. Die Stärke dieses Effekts ist abhängig davon, wie sichtbar euer Charakter ist – man kann bei maximaler Stärke komplett hindurchsehen. Silhouetten werden von diesem Effekt ebenfalls unterstützt, sodass ihr direkt wisst, ob euer Charakter teilweise verdeckt wird.

Eine Anmerkung jedoch: Bei der Veröffentlichung wird dies nur für Baumkronen aktiviert sein. In der Zukunft wollen wir den Effekt auch für Äste aktivieren, sobald ein paar technische Einschränkungen bei alten Inhalten behoben wurden.

Mehr zur Technik: Wie man Hervorhebungen kreiert

Falls ihr euch fragt, wie das funktioniert – es ist ein ziemlich einfacher Effekt:

  • Wir zeichnen das Spiel zunächst ohne Hervorhebungen. Dadurch wird auch der sogenannte Tiefenbuffer mit Informationen darüber gefüllt, wie weit jedes einzelne Pixel von der Kamera entfernt ist.
  • Jedes Objekt, das wir hervorheben wollen, wird dann zweimal gezeichnet:
  • Einmal etwas größer in der Farbe der Hervorhebung
  • Einmal etwas kleiner in einer pechschwarzen Farbe
  • In beiden Fällen wird der vorher generierte Tiefenbuffer benutzt, um zu verhindern, dass Hervorhebungen durch Wände oder andere Objekte hindurch erstellt werden
  • Die Hervorhebungen werden schließlich noch verwischt, um die Ecken etwas weicher zu gestalten und mögliche visuelle Fehler zu verringern
  • Die verwischten Hervorhebungen werden dann dem Bild hinzugefügt
  • Silhouetten funktionieren ähnlich. Anstatt in unterschiedlichen Größen zu 'zeichnen' und diese beide Male mit dem Tiefenbuffer abzugleichen, benutzen wir dieselbe Größe bei beiden und überprüfen den Tiefenbuffer nur, bevor das finale Bild berechnet wird.

    Das ist alles von der technischen Seite! Wir haben uns verschiedene Methoden angeschaut und uns für diese entschieden, da sie uns die bestmögliche Kombination aus visueller Kontrolle und Leistung bietet und wir verschiedenfarbige Hervorhebungen nutzen und das System in der Zukunft noch erweitern können.

    Mehr zur Technik: Wie man aus Bäumen Fenster macht

    Für dieses Feature müssen wir zunächst herausfinden, ob euer Charakter sichtbar ist oder nicht. Wir nutzen dafür die sogenannten Hardware-Anfragen.

    Dies erlaubt es, den Grafikprozessor zu fragen, wie lange er gebraucht hat, um etwas zu zeichnen, ob etwas sichtbar ist oder nicht oder wie viele Pixel belegt wurden. Ein Nachteil ist, dass wir die Ergebnisse der Anfrage aus Leistungsgründen nicht in demselben Einzelbild (auch "Frame") bekommen können, in dem wir diese losschicken, denn ansonsten müsste der Hauptprozessor erst warten, bis der Grafikprozessor das komplette Einzelbild gezeichnet hat. Um das zu umgehen, schnappen wir uns die Ergebnisse erst, wenn sie fertig sind, sodass das System automatisch mit einer Verzögerung von einem oder zwei Einzelbildern rechnet.

    Wir zeichnen den Spieler-Charakter mit der oben zuletzt erwähnten Anfragemethode und vergleichen deren Pixelwert mit der Menge an Pixeln, die belegt wären, wenn nichts im Weg wäre. Dies ergibt einen Sichtbarkeitsprozentsatz. Um aus diesem Prozentsatz den Transparenz-Wert zu erhalten, wird aus dem Prozentsatz und den Werten des vorherigen Frames und der Animationen ein Durchschnitt errechnet (so verhindern wir, dass die Transparenz schnell flackert, wenn sich die Kamera nur leicht bewegt). Sobald die Berechnung des Durchschnitts erfolgt ist, nutzen wir diesen, um die Transparenz der Baumkronen und des Blattwerks beim Darstellen festzulegen – je kleiner der Wert, desto transparenter das Ganze!

    Legende (Bild 1 – Szenentiefe | Bild 2 – Ergebnis der Anfrage; rote Pixel repräsentieren verdeckte Pixel | Bild 3 – Baumkronen-Ausschnitt wird basierend auf dem Ergebnis der Anfrage gezeichnet | Bild 4 – Silhouette | Bild 5 – Finales Bild)

    Ein letztes wichtiges Detail: Da wir Werte mithilfe zuvor gezeichneter Einzelbilder berechnen, um die aktuelle Darstellung zu beeinflussen, stellen wir sicher, dass bei der Vorbereitung einer Anfrage die Baumkronen und das Blattwerk so betrachtet werden, als ob ihre Transparenz durch dieses Feature unverändert wäre. Wenn wir das nicht täten, bekämen wir nie stabile Ergebnisse und die finalen Transparenz-Werte würden sich ständig ändern.

    Abschließende Worte

    Abschließend möchten wir noch sagen, dass wir hoffen, dass euch diese Änderungen gefallen! Wir glauben, dass es sich dabei für die meisten Spieler um großartige Verbesserungen handelt. Wir wissen jedoch, dass es auch manche geben wird, die lieber ohne diese Features spielen wollen oder glauben, dass RuneScape dadurch weniger immersiv sein wird. Obwohl diese Sichtbarkeitsverbesserungen standardmäßig auf Geräten aktiviert sein werden, die von diesen unterstützt werden, werden sie nicht während Zwischensequenzen oder der Benutzung der freien Kamera aktiv sein. Außerdem können sie auch in den Grafik-Einstellungen ausgeschaltet werden.

    Das wär's also. Ich hoffe, dass euch dieser Blog gefallen hat und dass ihr euch schon auf diese Sichtbarkeitsverbesserungen freut – wir wollen sie zusammen mit dem Oster-Event veröffentlichen!


    Mod Saj

    Zurück nach oben