Eerste release van de Ambient open multiplayer-game-engine

Na een jaar ontwikkeling wordt de eerste release van de nieuwe open source game-engine Ambient gepresenteerd. De engine biedt een runtime voor het bouwen van multiplayer-games en 3D-applicaties die compileren naar een WebAssembly-representatie en de WebGPU API gebruiken voor weergave. De code is geschreven in Rust en wordt gedistribueerd onder de MIT-licentie.

Een belangrijk doel bij de ontwikkeling van Ambient is het bieden van tools die de ontwikkeling van multiplayer-games vereenvoudigen en het maken ervan niet moeilijker maken dan projecten voor één speler. De engine is in eerste instantie gericht op het creëren van een universele runtime die de ontwikkeling ondersteunt van games en applicaties in alle programmeertalen waarvoor compilatie in tussenliggende WebAssembly-code mogelijk is. De eerste release ondersteunt tot nu toe echter alleen de ontwikkeling van Rust.

Belangrijkste kenmerken van de nieuwe motor:

  • Transparante ondersteuning voor netwerken. De engine combineert de functies van een client en een server, biedt alle benodigde componenten om client- en serverlogica te creëren en synchroniseert automatisch de status van de server op clients. Aan de client- en serverzijde wordt een gemeenschappelijk datamodel gebruikt, waardoor het eenvoudig is om code tussen de backend en frontend over te dragen.
  • Voer elke module uit in een eigen geïsoleerde omgeving om de impact van niet-vertrouwde code te beperken. Het crashen van een module zorgt er niet voor dat de hele applicatie crasht.
  • Data-georiënteerde architectuur. Het verschaffen van een datamodel gebaseerd op een systeem van componenten die elke WASM kan manipuleren. Met behulp van het ECS-ontwerppatroon (Entity Component System). Het opslaan van de gegevens van alle componenten in een gecentraliseerde database op de server, waarvan de status automatisch wordt gerepliceerd naar de client, die op zijn beurt de gegevens kan uitbreiden, rekening houdend met de lokale staat.
  • De mogelijkheid om Ambient-modules te maken in elke programmeertaal die compileert naar WebAssembly (tot nu toe wordt alleen Rust ondersteund).
  • Generatie van universele uitvoerbare uitvoerbestanden die kunnen worden uitgevoerd op Windows, macOS en Linux, en die zowel als client als als server kunnen functioneren.
  • Mogelijkheid om uw eigen componenten en "concepten" (verzamelingen van componenten) te definiëren. Projecten die dezelfde componenten en concepten gebruiken, zorgen ervoor dat gegevens overdraagbaar en gedeeld zijn, zelfs als de gegevens niet specifiek zijn ontworpen voor gebruik in specifieke projecten.
  • Ondersteuning voor het compileren van bronnen in verschillende formaten, waaronder .glb en .fbx. De mogelijkheid om bronnen via het netwerk te streamen - de client kan alle benodigde bronnen krijgen wanneer hij is verbonden met de server (je kunt beginnen met spelen zonder te wachten tot alle bronnen zijn geladen). FBX- en glTF-modelformaten, verschillende geluids- en beeldformaten worden ondersteund.
  • Een geavanceerd weergavesysteem dat de GPU gebruikt om het renderen te versnellen, en dat GPU-side clipping en LOD's ondersteunt. Standaard wordt gebruik gemaakt van fysiek gebaseerde weergave (PBR), ondersteuning voor animatie en trapsgewijze schaduwkaarten.
  • Ondersteuning voor simulatie van fysieke processen op basis van de PhysX-engine.
  • React-achtig gebruikersinterfacebouwsysteem.
  • Uniform invoersysteem onafhankelijk van het huidige platform.
  • Ruimtelijk geluidssysteem met insteekfilters.

De ontwikkeling bevindt zich nog in de alfafase. Uit de functionaliteit die nog niet is geïmplementeerd, kunnen we de mogelijkheid opmerken om op het web te draaien, de client-API, de API voor het beheren van multithreading, de bibliotheek voor het maken van de gebruikersinterface, de API voor het gebruik van uw eigen shaders, geluidsondersteuning, laden en opslaan ECS-componenten (Entity Component System), bronnen direct herladen, automatisch schalen van servers, een editor voor het co-creëren van gamekaarten en gamescènes.



Bron: opennet.ru

Voeg een reactie