Die erste Veröffentlichung der offenen Mehrspieler-Spiel-Engine Ambient.

Nach einem Jahr Entwicklung wurde die erste Ausgabe der neuen offenen Spiele-Engine Ambient vorgestellt. Die Engine bietet zur Laufzeit die Möglichkeit, Mehrspieler-Spiele und 3D-Anwendungen zu erstellen, die in das WebAssembly-Format kompiliert werden und die WebGPU-API zum Rendering nutzen. Der Code ist in der Programmiersprache Rust geschrieben und steht unter der MIT-Lizenz.

Die SchlĂŒsselaufgabe bei der Entwicklung von Ambient besteht darin, Werkzeuge bereitzustellen, die die Entwicklung von Mehrspieler-Spielen vereinfachen und deren Erstellung nicht schwieriger machen als bei Einzelspielerprojekten. Die Engine ist ursprĂŒnglich darauf ausgelegt, eine universelle Laufzeitumgebung zu schaffen, die die Entwicklung von Spielen und Anwendungen in beliebigen Programmiersprachen unterstĂŒtzt, die in Zwischen-Bytecode fĂŒr WebAssembly kompiliert werden können. Im ersten Release wird jedoch zunĂ€chst nur die Entwicklung in Rust unterstĂŒtzt.

Die wichtigsten Funktionen der neuen Engine:

  • Transparente UnterstĂŒtzung fĂŒr Netzwerkinteraktionen. Die Engine vereint die Funktionen von Client und Server, stellt alle erforderlichen Komponenten fĂŒr die Erstellung von Client- und Server-Logik bereit und synchronisiert automatisch den Zustand des Servers mit den Clients. Sowohl der Client als auch der Server verwenden ein gemeinsames Datenmodell, was den Code-Transfer zwischen Backend und Frontend erleichtert.
  • Der Start jedes Moduls in seiner isolierten Umgebung, die den Einfluss von nicht vertrauenswĂŒrdigem Code begrenzt. Ein plötzlicher Absturz eines Moduls fĂŒhrt nicht zum Absturz der gesamten Anwendung.
  • Eine datenzentrierte Architektur (Data-oriented). Bereitstellung eines Datenmodells auf Basis eines Komponentensystems, mit dem jeder WASM-Modul arbeiten kann. Verwendung des Entwurfsmusters ECS (Entity Component System). Speicherung der Daten aller Komponenten in einer zentralen Datenbank auf Server, deren Zustand automatisch an den Client repliziert wird, der auf seiner Seite die Daten unter BerĂŒcksichtigung des lokalen Zustands erweitern kann.
  • Die Möglichkeit, Ambient-Module in beliebigen Programmiersprachen zu erstellen, die in WebAssembly kompiliert werden (momentan wird nur Rust unterstĂŒtzt).
  • Die Ausgabe allgemeiner ausfĂŒhrbarer Dateien, die unter Windows, macOS und Linux ausgefĂŒhrt werden können und sowohl als Client als auch als Server fungieren.
  • Möglichkeit zur Definition eigener Komponenten und „Konzepte“ (Kollektionen von Komponenten). In Projekten, die die gleichen Komponenten und Konzepte nutzen, wird die PortabilitĂ€t und gemeinsame Nutzung von Daten gewĂ€hrleistet, selbst wenn diese Daten nicht speziell fĂŒr die Verwendung in bestimmten Projekten ausgelegt sind.
  • UnterstĂŒtzung der Kompilierung von Ressourcen in verschiedenen Formaten, einschließlich .glb und .fbx. Möglichkeit des Streamings von Ressourcen ĂŒber das Netzwerk – der Client kann alle benötigten Ressourcen beim Verbinden mit dem Server abrufen (man kann spielen, bevor alle Ressourcen geladen sind). Es werden die Modelformate FBX und glTF sowie verschiedene Audio- und Bildformate unterstĂŒtzt.
  • Fortschrittliches Rendering-System, das die GPU zur Beschleunigung der Ausgabe nutzt und die Sichtzonen-Zuschnitt und Level-of-Detail-Wechsel auf der GPU-Seite unterstĂŒtzt. StandardmĂ€ĂŸig wird physikalisch korrektes Rendering (PBR) genutzt, mit UnterstĂŒtzung fĂŒr Animationen und kaskadierte Schattenkarten.
  • UnterstĂŒtzung der Simulation physikalischer Prozesse auf Basis der PhysX-Engine.
  • Benutzerschnittstellensystem Ă€hnlich wie React.
  • Einheitliches Eingabesystem, unabhĂ€ngig von der aktuellen Plattform.
  • System fĂŒr rĂ€umlichen Klang mit anschlussfĂ€higen Filtern.

Die Entwicklung befindet sich derzeit in der Alpha-Version. Von der noch nicht implementierten FunktionalitĂ€t kann die Möglichkeit erwĂ€hnt werden, im Web zu starten, clientseitige API, API zur Verwaltung von Multithreading, Bibliothek zur Erstellung von Benutzerschnittstellen, API zur Verwendung eigener Shader, UnterstĂŒtzung von Audio, Laden und Speichern von ECS-Komponenten (Entity Component System), dynamisches Nachladen von Ressourcen und automatisches Skalieren. Server, ein Editor zur gemeinsamen Erstellung von Spielkarten und Spielszenen.

Video abspielen


Quelle: opennet.ru
ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster