Donnerstag, 11. Oktober 2012

[Video] - Pathfinding in SL (Designing Worlds)

Donnerstag vor zwei Wochen wurde im Designing Worlds Studio auf Garden of Dreams eine Talkshow aufgezeichnet, bei der Lorca, Falcon und Maestro Linden zu Gast waren und einiges zum Thema Pathfinding erzählten. Außerdem dabei war Sandry Logan vom Virtual Kennel Club, einem Anbieter von geskripteten Tieren.

Letzten Montag wurde dann das Video inworld im Studio vorgeführt, wo auch Lorca noch einmal anwesend war und Fragen beantwortete. Und gestern ist das Video schließlich auf Treet TV hochgeladen worden und es kann jetzt online angesehen werden. Da auch ein Code zum Einbetten angeboten wird, mache ich das einfach mal. Das komplette Video dauert 99 Minuten:




Kurze Zusammenfassung:
Nach der Vorstellung der Talkshow-Gäste gibt es erstmal einen längeren Abschnitt mit Sandry Logan und Saffia Widdershins auf einem VKC Sim. Dort diskutieren die Beiden über die neuen Pathfinding Pets und zeigen auch kurz einige in Aktion. Interessant ist hier ein Test von zwei Pathfinding Tieren im Vergleich zu einem alten, sensorgesteuerten Hund (etwa bei 25:25 min.). Hier wird ziemlich deutlich, welche Verbesserung Pathfinding für die automatische Navigation bedeutet.

Bei etwa 29:30 min. geht es zurück ins Studio, wo dann alle drei Lindens die Möglichkeiten von Pathfinding erläutern. Allein für den Anblick der "drei Devs vom Lab" lohnt sich schon ein kurzes Reinschauen in die Aufzeichnung. Lorca Linden (sitzt auf der Linden Couch in der Mitte) hat einen wirklich abgedrehten Avatar. Aber auch Falcon (mit Cowboyhut) und Maestro (barfüßiger Opa) gehen mit ihren Avas über den Newbie Style der meisten anderen Lindens hinaus.

Hier in Listenform einige ihrer Aussagen (Pathfinding kürze ich im folgenden mit PF ab):
  • PF wurde eingeführt, weil gescriptete Navigation von Charakteren mit alten LSL-Methoden zu viel CPU Zeit benötigt, vor allem durch die Verwendung von Sensor Scans.
  • Viele Charaktere mit Sensor Scans können extremen Lag auf einer Region verursachen.
  • PF benötigt wesentlich weniger Ressourcen einer Region. Die komplette Navigation wird mit der Havok Physikengine auf einem Server berechnet.
  • Durch Einsatz von PF werden Skripte insgesamt kleiner und effizienter, da Navigations-Funktionen als aufrufbare Routinen zur Verfügung gestellt werden.
  • Die Funktion llGetStaticPath kann auch von Nicht-PF Charakteren und in Regionen mit deaktiviertem PF genutzt werden.
  • llGetStaticPath führt einen Charakter oder Avatar über verschiedene Wegpunkte von einem Start- zum Zielpunkt.
  • Das Navmesh ist eine Straßenkarte für PF-Charaktere.
  • Die Berechnung des Navmesh ist aufwendig, das Auslesen für die Charaktere benötigt jedoch nur minimale Ressourcen.
  • Das Navmesh steht automatisch zur Verfügung, ohne dass man manuell etwas machen müsste.
  • Quelle: Prim Perfect
  • Manuelle Optimierung des Navmesh mit den Viewer-Tools bringt eine leicht verbesserte Performance für die Region.
  • Rezzen von Prims und Ändern von Landboden bedeutet immer eine Änderung des bestehenden Navmesh. Berechnet wird es jedoch nur, wenn der Rebake-Button im Viewer gedrückt wird.
  • Es gibt aktuell noch einige Probleme mit dem Rebake-Button (ist manchmal nicht anklickbar). Die Lindens wollen das demnächst beheben.
  • Es gibt eine Möglichkeit, die PF-Charaktere waagerecht oder senkrecht zu nutzen, was bei Steigungen und Gefällen ein unterschiedliches Verhalten hervorruft. (Diesen Punkt habe ich technisch nicht ganz verstanden).
  • Ein "Static Obstacle" schneidet immer ein Loch in das Navmesh. Damit ist der Bereich, wo ein Static Objekt die begehbare Fläche des Navmesh berührt, für PF-Charaktere nicht nutzbar (was in einer Kollisionsvermeidung resultiert).
  • Es gibt ein Batch System für komplette Regionen, das Änderungen von PF-Eigenschaften in ganzen Gruppen durchführt. (z.B. alle Objekte mit Skripten auf "Moveable Obstacle" setzen).
  • Es gibt sowohl Begrenzungen des Ressourcenverbrauch bei PF-Regionsprozessen, als auch in den einzelnen PF-Funktionen. Werden die Begrenzungen erreicht, wird die Berechnung gedrosselt, um die Region immer performant zu halten.
  • Zur Zeit arbeitet LL an der Verbesserung der Begrenzungsabläufe, um den Ressourcenbedarf bei PF weiter zu verringern.
  • Es gibt auch noch ein Problem mit PF-Charakteren, die mit anderen Charakteren zusammenstoßen. Diese "hängen" dann irgendwie zusammen und bilden einen Haufen. Je mehr Charaktere in diesen Haufen geraten, umso mehr Lag verursacht dieser durch Kollisionen. LL arbeitet bereits an einer Behebung dieses Problems.
  • LL hat auf einer durchschnittlichen Region bereits 250 PF-Charaktere gleichzeitig laufen lassen, ohne nennenswerten Lag.
  • Es gibt auch schon Nutzer-Regionen, auf denen etwa 200 PF-Charaktere laufen.
  • Das theoretische Limit in einer Region liegt bei 1000 PF-Charakteren (weil mehr Prims nicht auf eine Region passen / 1 PF-Charakter = 15 Prims).
  • Eine empfohlene Anzahl von PF-Charakteren liegt bei etwa 50 pro Region.
  • In etwa einem Monat werden die Advanced Creator Experience Tools für PF-Charaktere veröffentlicht.
  • Quelle: Prim Perfect
  • Die PF-Skripte von den Wilderness Experience Regionen für Premium Nutzer werden demnächst in die LL-Wiki eingestellt.
  • LL beobachtet jetzt einige Zeit die Anwendung von PF bei den Nutzern und entscheidet dann, welche Erweiterungen mittelfristig für PF dazukommen werden.
  • Eine mögliche Erweiterung ist "Volumetric PF", was den Charakteren dann erlauben würde, zu schwimmen und zu fliegen.
  • LL würde jetzt erstmal gerne mehr Tiere, NPCs für Rollenspiele und automatische Vehikel sehen, die von den Bewohnern erstellt werden.

Nach dem Screening des Videos am Montag, veröffentlichte Lorca Linden noch einige Statistiken zu Regionen vor und nach Einführung von Pathfinding. Hier sind sie (alle Sim FPS-Angaben sind Durchschnittswerte):

Private Regionen
  • Vor Einführung von PF: 44,43 FPS
  • Nach Einführung von PF:
    • PF ist nicht aktiviert: 44,41 FPS
    • PF ist aktiviert / keine PF-Objekte: 44,29 FPS
    • PF ist aktiviert / 1 PF-Objekt: 44,25 FPS
    • PF ist aktiviert / 10 PF-Objekte: 44,70 FPS

Mainland Regionen
  • Vor Einführung von PF: 44,66 FPS
  • Nach Einführung von PF:
    • PF ist nicht aktiviert: 44,46 FPS
    • PF ist aktiviert / keine PF-Objekte: 44,44 FPS
    • PF ist aktiviert / 1 PF-Objekt: 44,25 FPS
    • PF ist aktiviert / 10 PF-Objekte: 44,79 FPS

Das bedeutet, egal ob mit oder ohne PF und unabhängig von der Anzahl von Charakteren, liegen die Abweichungen durch PF insgesamt bei unter 1%. Soviel zu einigen theoretischen Zahlenspielen zwecks Nachweis von Lag, die ich hier und da gelesen habe. ;-)

Hier ist die Seite mit dem Video auf Treet TV:
>> Pathfinding in Second Life

Und hier der Sim des Virtual Kennel Club, wo die ersten 30 Minuten aus dem Video gedreht wurden:
>> Teleport zur Isle of Dogs

Meine Blogposts zu den wichtigsten Pathfinding-Funktionen:
>> Pathfinding ab heute im kompletten Main Grid von SL - (mit Kurzanleitung)
>> Einige Infos von den Lindens zum Pathfinding
>> Pathfinding FAQ von Lorca Linden

Keine Kommentare:

Kommentar veröffentlichen