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 guten und rund einstündigen Video Gesprächen mit [url=’https://improbable.io/’]improbable.io[/url] zum Thema Rahmenbedingungen von spatialOS als Cloud Plattform für unser MMO Antares Open World (AOW), haben wir eine gute Basis für die künftige Zusammenarbeit gefunden. Die Weichen stehen jetzt auf grün. Hierbei ging es u.a., um die Skalierbarkeit, der Kalkulation von Risiken, einer individuellen Wahl von Templates, mögliche Verpflichtungen, Leistungsanforderungen, wie physikalische Sichtweiten, Anzahl von Entitäten, Instanzen und vieles mehr.
Nun ist es an der Zeit, die ersten Sprints der vergangenen Wochen zum prozeduralem Terrain Generation Modul zu präsentieren. Ich habe mich entschlossen hierfür Euch ein erstes Video zu zeigen. Die Umsetzung erfolgte komplett in einer Headless Entity Component Architecture (hECS) mit Entitas. Hierbei folgte ich einer vollständig entkoppelten Headless Server Architektur, welche du hier einsehen kannst, danke FNGames. So wird es mir/uns u.a. möglich sein, je nach Anforderungen und Kapazitäten, einer Vielzahl von agilen Änderungen im AOW DEV Kosmos kurzfristig Stand zu halten, aber auch grafische Endpoint Entscheidungen schneller treffen zu können. Die Modularität, Flexibilität und eine saubere Struktur/Architektur, steht bei einem Projekt dieser Größe im Fokus. Die Wahl der Unity 3D Engine stellte sich jedoch bis zum heutigem Zeitpunkt als Segen heraus. Im Moment arbeite ich mit 3 ECS Systemen zusammen. Der Unity ECS Workflow für die Grafik, Entitas ECS für unsere Business (Game) Logik und spatialOS (ECS) für unser MMO, das Persistente Universe (PU) Backend. Wie das genau funktioniert findest du in unserem Confluence Wiki.
Ich habe bis heute, eine komplette und automatisierte DEV OP Pipeline von der Jira Story bis hin zum Backend Deployment für ein mittleres Entwickler Team aufstellen können. Im nachfolgendem Bild siehst du meine/unsere Arbeitsweisen. Es zeigt den Jira Workflow, welchen ich auch hauptberuflich in leicht abgewandelter Form verwende. Umgesetzt, aber nicht veröffentlicht ist auch eine Confluence Status Seite mit allen Storys (Dashboard), um so den Fortschritt für die Community transparenter zu halten. Was steht im nächstem Sprint an? Wie viele Storys müssen noch bis zur nächsten Veröffentlichung in die Cloud abgearbeitet werden? Das macht natürlich erst ab einer bestimmten Teamstärke Sinn. Auch wird dann ein Service Desk (Jira) in den Startlöchern stehen, damit ich/wir uns um Deine Rückmeldungen kümmern kann/können.

Zudem habe ich mein erstes AWGS/PTG Modul, respektive Antares World Genration System, Procedural Terrain System heute unter Berücksichtigung der 80/20 Pareto Regelung vorerst abschließen können. Es ist noch viel Feinschliff notwendig. Bisher kann ich Multiple Perlin Noise Algorithmen mit Brownian Motion, Midpoint Displacement Tessellation und einen Smoothing Blur Algorithmus zur Laufzeit (Runtime) durch den Spieler zur Anwendung bringen. Sobald der Spieler, wie im Video zu sehen ist, in die Cloud tritt, entsteht eine auf pseudo Zufall basierende Welt, welche anhand von Parametersätzen, zu jederzeit deterministisch dank ECS rekonstruierbar ist und an anderer Stelle auf dem Geoid persistent gespeichert werden kann. (Siehe AOW Manuskript). Dies passiert zum Beispiel dann, wenn der Spieler das Terrain als wertvoll einstuft und mit diesem in einem bestimmten Bereich z.B. durch Terra Forming, Bergbau, etc., interagiert.
Einen aktiven Cloud Zugang für die Teilhabe an der Entwicklung, plane ich in den nächsten Monaten. Das Deployment im Video läuft heute erstmal bis 20:54 Uhr UTC aus Kostengründen. Auf Wunsch kann ich aber das Deployment jederzeit wieder starten.
Anbei auch ein paar Telemetriedaten vom laufendem Deployment in den Screenshots.



So wie in meinem Video zu sehen, kann jeder der die Cloud URL besitzt, sich den spatialOS Launcher installieren, und mein erstes Deployment testen. Ich denke die Version 0.0.1 wurde geboren. Später plane ich natürlich einen AOW Launcher, der sich gegen einen Authentifizierungsserver melden kann, um die spatialOS Umgebung elegant zu verstecken. Viel möglich ist natürlich im Bereich Gameplay noch nicht, aber man kann gut erkennen, wie sich die Welt bei einem Neustart prozedural verändert und welche Richtung das Ganze nun annimmt. Mit WASD kann man etwas herum laufen. Springen geht auch schon, obwohl noch keine Animation hierfür hinterlegt wurde. Mit dem Mausrad kann man stufenlos heraus/herein zoomen. Die Ego Perspektive ist geplant mit der Taste V. Mit der Tabulator Taste kann man die Maus Ansicht entkoppeln und im Fenstermodus das “Spiel” wieder schließen. Im Vollbild, einfach ALT+TAB und aus der Startleiste entfernen.
Im nächstem Schritt ist ein prozedurales nachladen der Terrain Kacheln für ein unendliches Terrain geplant, welches der Spieler dann entdecken kann. Im Backlog befindet sich auch schon eine Story, um Gelände zu ebenen. Bis dahin wird aber noch einiges an Zeit vergehen. Input, Kamera und Player Controller müssen für das spatialOS Backend programmiert werden. Schließlich, sollen sich die ersten Spieler auch miteinander bald sehen können.
Wer sich für einen Start mit AOW interessiert, findet auf dieser Confluence Seite einen guten technologischen Einblick.
Zu guter Letzt möchte ich Euch in diesem Beitrag meinen überarbeiteten Charakter Vyur, welcher auch im nachfolgendem Video enthalten ist, vorstellen.





In diesem Sinne freue ich mich ganz persönlich über diesen Meilenstein, die auf Grundlagen der Nachhaltigkeit in den letzten 5 Jahren entstanden sind.

Hier geht´s direkt zum Video: AOW Awakening First spatialOS Deployment Video
Anbei die hochauflösenden 4k Screenshots zum Betrachten der Details:
»Der Weg ist das/mein Ziel. Konfuzius.«
Viele Grüße
Azzuriel // Jan
0 comments