Du bist nicht angemeldet.

Werbeanzeige

Azzuriel

Treue Seele

  • »Azzuriel« ist der Autor dieses Themas

Beiträge: 114

Wohnort: Hamburg

Beruf: Senior Data Engineer

  • Private Nachricht senden

261

16.05.2021, 15:03

#DEV Update 16.05.2021

Implementierung der Benutzerverwaltung, Lobby und Matchmaking mit Amazon Web Services (AWS), respektive der Dienste Amazon GameLift, CloudWatch, Cognito, DynamoDB, IAM, Lambda (Ruby) und S3.

Implementierung Benutzerverwaltung, Lobby und Servermap



Heute möchte ich Euch die nächsten Fortschritte meines Projektes vorstellen. Der aufmerksame Leser, wird sicher noch meine Ankündigung zum Thema improbable.io vor Augen haben. Leider konnte ich diesen Weg nicht weiter gehen. Die Gründe sind Vielschichtig. Unser Projekt ist so speziell, das ich die Kontrolle über die Mechanismen der Implementierung benötige, um in Funktionalitäten eingreifen, oder diese erweitern können muss, welches bei einer Out of the Box Lösung, extreme Probleme entstehen lässt. Wem dies im Detail interessiert, schreibe mich per PM an.

Mit jeder geschlossenen Tür öffnen sich aber auch neue Türen, so gehe ich nun schon seit geraumer Zeit einen neuen Weg über die Amazon Web Services (AWS). Inspiriert wurde ich von diesem Artikel: https://forums.awsgametech.com/t/can-i-u…e-based-mmo/877 Der Weg ist steinig, aber ich konnte viele Fortschritte verzeichnen, welche ich Euch natürlich nicht vorenthalten möchte.

In diesem Video seht Ihr meine Umsetzung der vollständigen Benutzerverwaltung (Erstellung eines neuen Spielers, inklusive MFA, Password Reset, Benutzer Komfort Funktionen), Freunde Verwaltung, Party/Lobby System mit Einladung auf einem dedizierenden Gamelift Server (c5.large). Zudem habe mich vorerst dazu entschlossen, auf einen Launcher zu verzichten und die Benutzerverwaltung direkt in das Hauptmenü des Spiels zu implementieren.

Die serverseitigen Abfragen erfolgen über den Lambda Service von AWS. Die Funktionen sind in Ruby geschrieben und greifen auf die notwendigen AWS Dienste, wie dynamoDB, IAM, CloudWatch zu.

Alle prozeduralen Foliage Spawner habe ich im Video deaktiviert, um hier besser die zu replizierenden Mechanismen in Bezug auf die Performance beobachten zu können. Um Euch aber einen Einblick in die Möglichkeiten des Prozeduralem Foliage Spawners zu geben, am Ende noch ein Screenshot eines möglichen Szenarios in einem herbstlichen Wald.

Ebenfalls könnt ihr am Ende des Videos, meine ersten Versuche eines Aktivitäten Menüs erkennen (Danke @TheMaddestHatter), für welche ich gerade Icons mit Adobe Illustrator zeichne.


Amazon Gamelift Fleets/Builds Übersicht


(Link)


Hier im zweitem Bild könnt ihr die hochgeladenen Builds, die erzeugten Flotten und die referenzierenden Aliasse zu den Fleets sehen. Die Aliase ermöglichen es mir, ohne Änderungen des Client Quellcodes eine Fleet auszutauschen, zum Beispiel um Änderungen an den Server Maps vorzunehmen.


Amazon Gamelift Active Fleet/Sessions


(Link)


Um Kosten zu sparen, laufen alle Fleets auf einem Amazon Linux OS. Als Typ habe ich den Spot Modus gewählt, welcher im Rechenzentrum Frankfurt (eu-central-01) seine Arbeit verrichtet. Es können im Moment 20 Game Sessions gleichzeitig gestartet werden. Die Match Making Config entscheidet, in welcher Session dieser landet. Für Details gerne per PM anschreiben. Ich experimentiere gerade mit der Persistenz, welche für die künftige Open Hybride World via Server Travelling/Zoning, so zu implementieren ist, dass ich die Funktionen aus SpartialOS in einem ähnlichem Ansatz nutzen kann. Das ganze ist aber echt harter Stoff, und über Hilfe im AWS Backend freue ich mich natürlich um so mehr.


Multi Layer Material Übergang


(Link)


Auch haben wir/ich es geschafft, die Transitionen auf Basis einer virtuell berechneten Höhenkarte in Voxel Plugin für die Biome zu implementieren. Harte Übergange sind also nun auch Geschichte. Dank Oceanology haben wir/ich nun auch einen guten Weg gefunden die Wasseroberfläche für unsere Zwecke replikationsfähig zu machen. Leider ist das originäre Unreal Wasser/Fluid System (UE 4.26) zu stark an das Unreal Landscape gebunden, was es im aktuellem Stand unmöglich macht, es auf unser Procedural Runtime Mesh oder auf Voxel anzuwenden. Denn egal wie sehr du nach Plugins für Lösungen auf dem Marktplatz suchst wirst du merken, dass alles nur in einem kleinem Ökosystem im Single Player läuft, nicht für Multiplayer geschaffen ist,.. schon gar nicht für ein MMO, oder sich eben einfach vieles gegenseitig in Wechselwirkungen behindert/ausschließt.


Icons, Piktogramme, Transkriptionen,...


(Link)


Ja und um meine kreative Ader bei der Programmierung nicht ganz versiegen zu lassen, habe ich mich noch mit dem Zeichnen von Icons beschäftigt. Eine Wissenschaft für sich. Am Ende des Videos sind bereits zwei Icons zu erkennen, die im späterem Verlauf für die Aktivitäten des Försters im Beispiel an Fokus gewinnen werden.

Hier im Beispiel: Ein Loch für einen Baum Setzling im Beruf des Försters graben:


(Link)


--

Noch etwas in eigener Sache. Wenn du Lust hast am Projekt mitzuwirken melde Dich! Zudem bin ich mittlerweile an dem Punkt auch kleinere Auftragsarbeiten vergeben zu wollen. Wer also Lust hat kann sich gerne melden. Es wird sicher nicht viel sein können, aber es sollte zumindest einer Aufwandsentschädigung als dank für die Mitarbeit am AOW Projekt behilflich sein.

Noch einen schönen Sonntag.
Azzuriel aka Jan
»Azzuriel« hat folgende Bilder angehängt:
  • aow-ex-01.jpg
  • aow-ex-04.jpg
Video:Trailer Web:https://antarien.com Blog:http://blog.antarien.com Forum:forum.antares.community FB:fb.antarien.com Mitarbeit:team.antarien.com Support:https://www.patreon.com/antarien

LinkedIn Netzwerk:https://de.linkedin.com/in/jan-ohlmann-91564087

»Eine wirklich Gute Idee erkennt man daran, das ihre Verwirklichung von vorn herein ausgeschlossen erscheint.« -Einstein

Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »Azzuriel« (17.05.2021, 17:18)


Azzuriel

Treue Seele

  • »Azzuriel« ist der Autor dieses Themas

Beiträge: 114

Wohnort: Hamburg

Beruf: Senior Data Engineer

  • Private Nachricht senden

262

25.07.2021, 11:18

#DEV Update 25.07.2021

Heute möchte ich Euch meine ersten Fortschritte und Erfahrungen bezüglich der systematischen Projektumstellung auf die Unreal Engine 5 aufzeigen.

Impressionen des Terrain Moduls


(Link)


Vor kurzem ist die Unreal Engine 5 Preview 1 und 2 erschienen. Dies habe ich zum Anlass genommen, nun auch mein AOW AWAKE Projekt auf die erste Phase der Migration zu heben. Für dieses Upgrade musste ich einen neuen Unreal AOW Fork auf Github anlegen, da einige unserer Plugins nur auf Source Code Engine Ebene funktionieren.

Zudem habe ich die Awake Projekt Architektur von Grund auf neu organisieren müssen, um unsere Workflows gegenüber Drittanbieter Tools, wie Houdini, iClone, WWISE und die Amazon Game Tools nicht zu gefährden.


Ein Blick zum Horizont


(Link)


Ebenfalls musste unser AOW Prozedural Runtime Terrain Modul nun auf das Unreal Procedural Mesh (PMC) umgeschrieben werden, da einige Funktionalitäten des Runtime Meshes (RMC) der Community Edition für mich unzufriedene Ergebnisse in der Unreal 5 lieferten.

Anmerkung: Der erste Screenshots ist direkt aus dem Unreal Editor, und der weite Screenshot direkt aus dem Spiel aufgenommen worden.


Ein Blick auf´s Ganze


(Link)


So habe ich von Hand und Schritt für Schritt die einzelnen Unreal Assets in das neue Unreal 5 Projekt überführt. Einige Plugins zu Modulen vorerst für die weitere Entwicklung umgeschrieben, und wieder direkt in den AOW Projekt Source Code verlagert.

Im Moment bin ich zum Beispiel, auch dabei einen generischen prozeduralen Foliage Spawner mit diversen Funktionalitäten zu schreiben, der es mir ermöglichen wird, statische Assets, als auch dynamische Akteure an Böschungen und definierten Höhen in Bezug zu einer variablen Transformation und Rotation zu spawnen.

Im Screenshot seht ihr einen Blick auf die einzelnen Terrain Kacheln/Areale, welche prozedural im Umkreis eines Unreal Akteurs, ein dynamisch erzeugtes Gelände anhand von Seeds, immer wieder auf die gleiche Weise erzeugen kann. Ich berichtete in einen der früheren DEV Tagebucheinträgen davon.


Hybride Open World


(Link)


Meine Ideen das Ganze ausschließlich auf Basis von Voxels zu implementieren, musste ich leider wieder verwerfen, da es ein Performance Albtraum in der AWS Cloud war.

Nun wird es wohl doch -vielleicht nur vorerst-, auf ein hybrides Höhenkarten System hinauslaufen, welches an POI´s dann mittels dem Transvoxel Algorithmus, hier die Voxel Ebene bei Interaktion durch den Spieler unter der eigentlichen Terrain Höhenkarte, dieses spawnen wird.

So sind Suprastrukturen, die über die Game Mechanik ein Gebäude, zum Beispiel einen Eingang zu einem Bergwerk (horizontal, als auch vertikal) vom Spieler gebaut, denkbar, welche dann durch eine Lade Animation beim Eintritt in das Gebäude, oder dem hinunter Fahren in den Schachtes, den Spieler in die Voxelwelt instanziiert, mögliche Ideen.

Das gute daran wäre, das ich je nach Spielerauslastung, diese dann auf den Voxel basierten Ebenen (Levels), auch instanziieren kann, ohne die eigentliche weitläufige Open World dabei in ihrer Performance zu gefährden.

Die größte Herausforderung ist es dann natürlich, dem Spieler dennoch einen "seamless" Übergang und mögliche Immersion versuchen zu geben.


Zusammenspiel zwischen Land und See


(Link)


In den letzten beiden Screenshots könnt ihr, ein Zusammenspiel mit dem Ozeanologie Plugin und dem prozeduralem Terrain Generator sehen.


--

Noch etwas in eigener Sache. Wenn du Lust hast am Projekt mitzuwirken melde Dich! Zudem bin ich mittlerweile an dem Punkt auch kleinere Auftragsarbeiten vergeben zu wollen. Wer also Lust hat kann sich gerne melden. Es wird sicher nicht viel sein können, aber es sollte zumindest einer Aufwandsentschädigung als dank für die Mitarbeit am AOW Projekt behilflich sein.

Noch einen schönen Sonntag.
Azzuriel aka Jan
Video:Trailer Web:https://antarien.com Blog:http://blog.antarien.com Forum:forum.antares.community FB:fb.antarien.com Mitarbeit:team.antarien.com Support:https://www.patreon.com/antarien

LinkedIn Netzwerk:https://de.linkedin.com/in/jan-ohlmann-91564087

»Eine wirklich Gute Idee erkennt man daran, das ihre Verwirklichung von vorn herein ausgeschlossen erscheint.« -Einstein