Ambient, eine Open-Source-Multiplayer-Game-Engine

Raumbeduftung

Ambient ist eine Laufzeitumgebung zum Erstellen von Hochleistungs-Multiplayer-Spielen und 3D-Anwendungen, unterstützt von WebAssembly, Rust und WebGPU.

Nach einem Jahr Entwicklungszeit, sWir haben die erste Version vorgestellt der neuen Open-Source-Game-Engine Umgebungs. Der Motor bietet eine Laufzeitumgebung zum Erstellen von Multiplayer-Spielen und 3D-Anwendungen die in eine WebAssembly-Darstellung kompiliert werden und die WebGPU-API zum Rendern verwenden.

Ein Hauptziel bei der Entwicklung von Ambient ist die Bereitstellung von Tools, die die Entwicklung von Multiplayer-Spielen vereinfachen und ihre Erstellung nicht schwieriger machen als Einzelspieler-Projekte.

Die Engine zielt zunächst darauf ab, eine universelle Laufzeitumgebung zu schaffen, die die Spiele- und Anwendungsentwicklung in jeder Programmiersprache unterstützt, für die eine Kompilierung zu intermediärem WebAssembly-Code möglich ist. Allerdings unterstützt die erste Version bisher nur die Rust-Entwicklung.

Über Ambient

Von den Eigenschaften, die sich von Ambient abheben, wird das erwähnt hat transparente Unterstützung für die Vernetzung. Die Engine kombiniert die Funktionen eines Clients und eines Servers, stellt alle erforderlichen Komponenten zum Erstellen von Client- und Serverlogik bereit und synchronisiert automatisch den Serverstatus auf Clients.

Es wird auch erwähnt, dass Client- und serverseitig wird ein gemeinsames Datenmodell verwendet, was es einfach macht, Code zwischen dem Backend und dem Frontend zu übertragen. Es führt jedes Modul in seiner eigenen isolierten Umgebung aus, um die Auswirkungen von nicht vertrauenswürdigem Code zu begrenzen, und der Absturz eines Moduls stürzt nicht die gesamte Anwendung ab.

Umgebung, cEs hat eine datenorientierte Architektur, wodurch ein Datenmodell bereitgestellt wird, das auf einem System von Komponenten basiert, die jeder WASM manipulieren kann. Verwenden des ECS (Entity Component System)-Entwurfsmusters.

Darüber hinaus auch speichert die Daten aller Komponenten in einer zentralen Datenbank auf dem Serverr, dessen Status automatisch an den Client repliziert wird, der wiederum die Daten unter Berücksichtigung des lokalen Status erweitern kann.

Die Fähigkeit, Ambient-Module in jeder Programmiersprache zu erstellen, die zu WebAssembly kompiliert wird (bisher wird nur Rust unterstützt), während universelle ausführbare Ausgabedateien generiert werden, kann unter Windows, macOS und Linux ausgeführt werden und als Client und als Server arbeiten.

Andererseits wird auch darauf hingewiesenhat die Fähigkeit, eigene Komponenten und „Konzepte“ zu definieren (Sammlungen von Komponenten). Projekte, die dieselben Komponenten und Konzepte verwenden, stellen sicher, dass Daten übertragbar und gemeinsam genutzt werden können, auch wenn die Daten nicht speziell für die Verwendung in bestimmten Projekten entwickelt wurden.

Von den anderen Merkmalen, die sich von Ambient abheben:

  • Unterstützung für das Kompilieren von Ressourcen in verschiedenen Formaten, einschließlich ".glb" und ".fbx". Möglichkeit, Ressourcen über das Netzwerk zu streamen: Der Client kann alle erforderlichen Ressourcen abrufen, wenn er sich mit dem Server verbindet (Sie können mit dem Spielen beginnen, ohne darauf zu warten, dass alle Ressourcen geladen sind).
  • FBX- und glTF-Modellformate, verschiedene Ton- und Bildformate werden unterstützt.
  • Ein fortschrittliches Rendering-System, das die GPU zum Beschleunigen des Renderings verwendet und GPU-seitiges LOD und Clipping unterstützt.
  • Verwendung von physikalisch basiertem Rendering (PBR) standardmäßig, Unterstützung für Animation und kaskadierende Schattenkarten.
  • Unterstützung für die Simulation physikalischer Prozesse auf Basis der PhysX-Engine.
  • Reaktionsähnliches UI-Building-System.
  • Einheitliches Eingabesystem unabhängig von der aktuellen Plattform.
  • Räumliches Soundsystem mit Plug-in-Filtern.
  • Die Entwicklung befindet sich noch im Alpha-Stadium. Von den noch nicht implementierten Funktionen können wir die Möglichkeit zur Ausführung im Web, eine Client-API, eine API zum Verwalten von Multithreading, eine Bibliothek zum Erstellen einer Benutzeroberfläche, eine API zum Verwenden eigener Shader, Soundunterstützung und Laden feststellen und speichern
  • ECS-Komponenten (Entity Component System), schnelles Nachladen von Ressourcen, automatische Serverskalierung, ein Editor zum gemeinsamen Erstellen von Spielkarten und Spielszenen.

Schließlich sollten diejenigen, die daran interessiert sind, mehr darüber zu erfahren, wissen, dass der Code in Rust geschrieben ist und ist vertrieben unter der MIT-Lizenz.


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.