Ambient, un moteur de jeu multijoueur open source

Ambiant

Ambient est un environnement d'exécution permettant de créer des jeux multijoueurs et des applications 3D hautes performances, optimisés par WebAssembly, Rust et WebGPU.

Après une année de développement, se a dévoilé la première version du nouveau moteur de jeu open source Ambiant. Le moteur fournit un runtime pour créer des jeux multijoueurs et des applications 3D qui sont compilés dans une représentation WebAssembly et utilisent l'API WebGPU pour le rendu.

L'un des principaux objectifs du développement d'Ambient est de fournir des outils qui simplifient le développement de jeux multijoueurs et rendent leur création pas plus difficile que les projets solo.

Le moteur vise initialement à créer un environnement d'exécution universel qui prend en charge le développement de jeux et d'applications dans n'importe quel langage de programmation pour lequel la compilation en code WebAssembly intermédiaire est possible. Cependant, la première version ne prend en charge que le développement de Rust jusqu'à présent.

À propos de l'ambiance

Parmi les caractéristiques qui se démarquent d'Ambient, on mentionne que a un support transparent pour la mise en réseau. Le moteur combine les fonctions d'un client et d'un serveur, fournit tous les composants nécessaires pour créer une logique client et serveur et synchronise automatiquement l'état du serveur sur les clients.

Il est également mentionné que un modèle de données commun est utilisé côté client et côté serveur, ce qui facilite le transfert de code entre le backend et le frontend. Il exécute chaque module dans son propre environnement isolé pour limiter l'impact du code non approuvé, et planter un module ne plante pas toute l'application.

Ambiante, cIl a une architecture orientée données, fournissant ainsi un modèle de données basé sur un système de composants que chaque WASM peut manipuler. Utilisation du modèle de conception ECS (Entity Component System).

En plus de cela, aussi stocke les données de tous les composants dans une base de données centralisée sur le serveurr, dont l'état est automatiquement répliqué sur le client, qui à son tour peut étendre les données en tenant compte de l'état local.

La possibilité de créer des modules Ambient dans n'importe quel langage de programmation qui se compile en WebAssembly (jusqu'à présent, seul Rust est pris en charge), tout en générant des fichiers de sortie exécutables universels, peut s'exécuter sur Windows, macOS et Linux, et fonctionner en tant que client et en tant que serveur.

D'autre part, il est également souligné quea la capacité de définir ses propres composants et « concepts » (ensembles de composants). Les projets qui utilisent les mêmes composants et concepts garantissent que les données sont portables et partagées, même si les données ne sont pas spécifiquement conçues pour être utilisées dans des projets spécifiques.

Parmi les autres caractéristiques qui se démarquent d'Ambient :

  • Prise en charge de la compilation de ressources dans différents formats, notamment ".glb" et ".fbx". Capacité à diffuser des ressources sur le réseau : le client peut obtenir toutes les ressources nécessaires lors de la connexion au serveur (vous pouvez commencer à jouer sans attendre que toutes les ressources soient chargées).
  • Les formats de modèle FBX et glTF, divers formats de son et d'image sont pris en charge.
  • Un système de rendu avancé qui utilise le GPU pour accélérer le rendu et prend en charge le niveau de détail et l'écrêtage côté GPU.
  • Utilisation du rendu basé sur la physique (PBR) par défaut, prise en charge de l'animation et des cartes d'ombres en cascade.
  • Prise en charge de la simulation de processus physiques basée sur le moteur PhysX.
  • Système de construction d'interface utilisateur de type React.
  • Système d'entrée unifié indépendant de la plate-forme actuelle.
  • Système de son spatialisé avec filtres enfichables.
  • Le développement est encore au stade alpha. Parmi les fonctionnalités non encore implémentées, on peut noter la possibilité de tourner sur le Web, une API cliente, une API de gestion du multi-threading, une bibliothèque de création d'interface utilisateur, une API d'utilisation de vos propres shaders, le support du son, le load Et enregistrer
  • Composants ECS (Entity Component System), rechargement des ressources à la volée, mise à l'échelle automatique du serveur, un éditeur pour co-créer des cartes de jeu et des scènes de jeu.

Enfin, pour ceux qui souhaitent en savoir plus, ils doivent savoir que le code est écrit en Rust et est distribué sous licence MIT.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.