30
Mai

Runtime Procedural Terrain Generation (PTG) – Part 4

Antares Open World [AOW] a step ahead with Unity, Entitas, spatialOS, nSpec, WWISE – DEV Update 29.05.19

AOW Awakening – First spatialOS Deployment (AWGS-32)

Video Update

Nach gu­ten und rund ein­stün­di­gen Video Gesprächen mit [url=’https://improbable.io/’]improbable.io[/url] zum Thema Rahmenbedingungen von spatialOS als Cloud Plattform für un­ser MMO Antares Open World (AOW), ha­ben wir ei­ne gu­te Basis für die künf­ti­ge Zusammenarbeit ge­fun­den. Die Weichen ste­hen jetzt auf grün. Hierbei ging es u.a., um die Skalierbarkeit, der Kalkulation von Risiken, ei­ner in­di­vi­du­el­len Wahl von Templates, mög­li­che Verpflichtungen, Leistungsanforderungen, wie phy­si­ka­li­sche Sichtweiten, Anzahl von Entitäten, Instanzen und vie­les mehr.

Nun ist es an der Zeit, die ers­ten Sprints der ver­gan­ge­nen Wochen zum pro­ze­du­ra­lem Terrain Generation Modul zu prä­sen­tie­ren. Ich ha­be mich ent­schlos­sen hier­für Euch ein ers­tes Video zu zei­gen. Die Umsetzung er­folg­te kom­plett in ei­ner Headless Entity Component Architecture (hECS) mit Entitas. Hierbei folg­te ich ei­ner voll­stän­dig ent­kop­pel­ten Headless Server Architektur, wel­che du hier ein­se­hen kannst, dan­ke FNGames. So wird es mir/uns u.a. mög­lich sein, je nach Anforderungen und Kapazitäten, ei­ner Vielzahl von agi­len Änderungen im AOW DEV Kosmos kurz­fris­tig Stand zu hal­ten, aber auch gra­fi­sche Endpoint Entscheidungen schnel­ler tref­fen zu kön­nen. Die Modularität, Flexibilität und ei­ne sau­be­re Struktur/Architektur, steht bei ei­nem Projekt die­ser Größe im Fokus. Die Wahl der Unity 3D Engine stell­te sich je­doch bis zum heu­ti­gem Zeitpunkt als Segen her­aus. Im Moment ar­bei­te ich mit 3 ECS Systemen zu­sam­men. Der Unity ECS Workflow für die Grafik, Entitas ECS für un­se­re Business (Game) Logik und spatialOS (ECS) für un­ser MMO, das Persistente Universe (PU) Backend. Wie das ge­nau funk­tio­niert fin­dest du in un­se­rem Confluence Wiki.

Ich ha­be bis heu­te, ei­ne kom­plet­te und au­to­ma­ti­sier­te DEV OP Pipeline von der Jira Story bis hin zum Backend Deployment für ein mitt­le­res Entwickler Team auf­stel­len kön­nen. Im nach­fol­gen­dem Bild siehst du meine/unsere Arbeitsweisen. Es zeigt den Jira Workflow, wel­chen ich auch haupt­be­ruf­lich in leicht ab­ge­wan­del­ter Form ver­wen­de. Umgesetzt, aber nicht ver­öf­fent­licht ist auch ei­ne Confluence Status Seite mit al­len Storys (Dashboard), um so den Fortschritt für die Community trans­pa­ren­ter zu hal­ten. Was steht im nächs­tem Sprint an? Wie vie­le Storys müs­sen noch bis zur nächs­ten Veröffentlichung in die Cloud ab­ge­ar­bei­tet wer­den? Das macht na­tür­lich erst ab ei­ner be­stimm­ten Teamstärke Sinn. Auch wird dann ein Service Desk (Jira) in den Startlöchern ste­hen, da­mit ich/wir uns um Deine Rückmeldungen küm­mern kann/können.

AOW ADG Team (Jira Workflow)
Die Arbeitsweise des ADG Teams in Jira.

Zudem ha­be ich mein ers­tes AWGS/PTG Modul, re­spek­ti­ve Antares World Genration System, Procedural Terrain System heu­te un­ter Berücksichtigung der 80/20 Pareto Regelung vor­erst ab­schlie­ßen kön­nen. Es ist noch viel Feinschliff not­wen­dig. Bisher kann ich Multiple Perlin Noise Algorithmen mit Brownian Motion, Midpoint Displacement Tessellation und ei­nen Smoothing Blur Algorithmus zur Laufzeit (Runtime) durch den Spieler zur Anwendung brin­gen. Sobald der Spieler, wie im Video zu se­hen ist, in die Cloud tritt, ent­steht ei­ne auf pseu­do Zufall ba­sie­ren­de Welt, wel­che an­hand von Parametersätzen, zu je­der­zeit de­ter­mi­nis­tisch dank ECS re­kon­stru­ier­bar ist und an an­de­rer Stelle auf dem Geoid per­sis­tent ge­spei­chert wer­den kann. (Siehe AOW Manuskript). Dies pas­siert zum Beispiel dann, wenn der Spieler das Terrain als wert­voll ein­stuft und mit die­sem in ei­nem be­stimm­ten Bereich z.B. durch Terra Forming, Bergbau, etc., interagiert.

Einen ak­ti­ven Cloud Zugang für die Teilhabe an der Entwicklung, pla­ne ich in den nächs­ten Monaten. Das Deployment im Video läuft heu­te erst­mal bis 20:54 Uhr UTC aus Kostengründen. Auf Wunsch kann ich aber das Deployment je­der­zeit wie­der starten.

Anbei auch ein paar Telemetriedaten vom lau­fen­dem Deployment in den Screenshots.

AOW SpatialOS Metrics 01
AOW spatialOS Cloud Deployment – Metrics 01
AOW SpatialOS Metrics 01
AOW spatialOS Cloud Deployment – Metrics 02
AOW SpatialOS Metrics 01
AOW spatialOS Cloud Deployment – Metrics 03

So wie in mei­nem Video zu se­hen, kann je­der der die Cloud URL be­sitzt, sich den spatialOS Launcher in­stal­lie­ren, und mein ers­tes Deployment tes­ten. Ich den­ke die Version 0.0.1 wur­de ge­bo­ren. Später pla­ne ich na­tür­lich ei­nen AOW Launcher, der sich ge­gen ei­nen Authentifizierungsserver mel­den kann, um die spatialOS Umgebung ele­gant zu ver­ste­cken. Viel mög­lich ist na­tür­lich im Bereich Gameplay noch nicht, aber man kann gut er­ken­nen, wie sich die Welt bei ei­nem Neustart pro­ze­du­ral ver­än­dert und wel­che Richtung das Ganze nun an­nimmt. Mit WASD kann man et­was her­um lau­fen. Springen geht auch schon, ob­wohl noch kei­ne Animation hier­für hin­ter­legt wur­de. Mit dem Mausrad kann man stu­fen­los heraus/herein zoo­men. Die Ego Perspektive ist ge­plant mit der Taste V. Mit der Tabulator Taste kann man die Maus Ansicht ent­kop­peln und im Fenstermodus das Spiel” wie­der schlie­ßen. Im Vollbild, ein­fach ALT+TAB und aus der Startleiste entfernen.

Im nächs­tem Schritt ist ein pro­ze­du­ra­les nach­la­den der Terrain Kacheln für ein un­end­li­ches Terrain ge­plant, wel­ches der Spieler dann ent­de­cken kann. Im Backlog be­fin­det sich auch schon ei­ne Story, um Gelände zu ebe­nen. Bis da­hin wird aber noch ei­ni­ges an Zeit ver­ge­hen. Input, Kamera und Player Controller müs­sen für das spatialOS Backend pro­gram­miert wer­den. Schließlich, sol­len sich die ers­ten Spieler auch mit­ein­an­der bald se­hen können.

Wer sich für ei­nen Start mit AOW in­ter­es­siert, fin­det auf die­ser Confluence Seite ei­nen gu­ten tech­no­lo­gi­schen Einblick.

Zu gu­ter Letzt möch­te ich Euch in die­sem Beitrag mei­nen über­ar­bei­te­ten Charakter Vyur, wel­cher auch im nach­fol­gen­dem Video ent­hal­ten ist, vorstellen.

AOW Awakening Char Vyur in T Pose
Antares Open World (AOW) – The Awakening – Character Design Vyur in T-Pose
AOW Awakening Char Vyur 02
Antares Open World (AOW) – The Awakening – Character Design Vyur 02
AOW Awakening Char Vyur 03
Antares Open World (AOW) – The Awakening – Character Design Vyur 03
AOW Awakening Char Vyur 04
Antares Open World (AOW) – The Awakening – Character Design Vyur 04
AOW Awakening Char Vyur 05
Antares Open World (AOW) – The Awakening – Character Design Vyur 05

In die­sem Sinne freue ich mich ganz per­sön­lich über die­sen Meilenstein, die auf Grundlagen der Nachhaltigkeit in den letz­ten 5 Jahren ent­stan­den sind.

AOW Awakening First spatialOS Cloud Deployment
Antares Open World (AOW) – The Awakening First spatialOS Cloud Deployment

Hier geht´s di­rekt zum Video: AOW Awakening First spatialOS Deployment Video

Anbei die hoch­auf­lö­sen­den 4k Screenshots zum Betrachten der Details:

»Der Weg ist das/mein Ziel. Konfuzius.«

Viele Grüße
Azzuriel // Jan


Überblick in PDF Form: AOW Konzept
Community Forum: AOW ADG Forum
Facebook: AOW FB Seite
Mitarbeit: ADG Slack Portal