Ambient, een open source game-engine voor meerdere spelers

Ambient

Ambient is een runtime voor het maken van krachtige multiplayer-games en 3D-applicaties, mogelijk gemaakt door WebAssembly, Rust en WebGPU.

Na een jaar van ontwikkeling, se onthulde de eerste release van de nieuwe open source game-engine Omringend. De motor biedt een runtime voor het maken van multiplayer-games en 3D-applicaties die zijn gecompileerd in een WebAssembly-representatie en de WebGPU-API gebruiken voor weergave.

Een belangrijk doel bij het ontwikkelen van Ambient is om tools te bieden die de ontwikkeling van games voor meerdere spelers vereenvoudigen en het maken ervan niet moeilijker maken dan projecten voor één speler.

De engine heeft in eerste instantie tot doel een universele runtime te creëren die de ontwikkeling van games en applicaties ondersteunt in elke programmeertaal waarvoor compilatie naar intermediaire WebAssembly-code mogelijk is. De eerste versie ondersteunt tot nu toe echter alleen de ontwikkeling van Rust.

Over Ambient

Van de kenmerken die zich onderscheiden van Ambient, wordt dat genoemd heeft 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 serverstatus op clients.

Dat wordt ook vermeld aan de client- en serverzijde wordt een gemeenschappelijk datamodel gebruikt, wat het gemakkelijk maakt om code over te dragen tussen de backend en de frontend. Het voert elke module uit in zijn eigen geïsoleerde omgeving om de impact van niet-vertrouwde code te beperken, en als één module crasht, crasht niet de hele applicatie.

Omgeving, cHet heeft een data-georiënteerde architectuur, waardoor een gegevensmodel wordt geboden op basis van een systeem van componenten dat elke WASM kan manipuleren. Het ECS-ontwerppatroon (Entity Component System) gebruiken.

Daarnaast ook slaat de gegevens van alle componenten op in een gecentraliseerde database op de serverr, waarvan de status automatisch wordt gerepliceerd naar de client, die op zijn beurt de gegevens kan uitbreiden, rekening houdend met de lokale status.

De mogelijkheid om Ambient-modules te maken in elke programmeertaal die compileert naar WebAssembly (tot nu toe wordt alleen Rust ondersteund), terwijl universele uitvoerbare uitvoerbestanden worden gegenereerd, kan worden uitgevoerd op Windows, macOS en Linux en kan werken als een client en als server.

Aan de andere kant wordt dat ook benadruktheeft de mogelijkheid om zijn eigen componenten en "concepten" te definiëren (verzamelingen van componenten). 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.

Van de andere kenmerken die zich onderscheiden van Ambient:

  • Ondersteuning voor het compileren van bronnen in verschillende formaten, waaronder ".glb" en ".fbx". Mogelijkheid om bronnen over het netwerk te streamen: de client kan alle benodigde bronnen krijgen wanneer hij verbinding maakt 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 weergave te versnellen en LOD en clipping aan de GPU-zijde ondersteunt.
  • Standaard gebruik van Physical Based Rendering (PBR), ondersteuning voor animatie en trapsgewijze schaduwkaarten.
  • Ondersteuning voor simulatie van fysieke processen op basis van de PhysX-engine.
  • React-achtig UI-bouwsysteem.
  • Unified entry systeem onafhankelijk van het huidige platform.
  • Ruimtelijk geluidssysteem met insteekfilters.
  • De ontwikkeling bevindt zich nog in de alfafase. Van de functionaliteit die nog niet is geïmplementeerd, kunnen we de mogelijkheid opmerken om op het web te draaien, een client-API, een API voor het beheer van multi-threading, een bibliotheek voor het maken van een gebruikersinterface, een API voor het gebruik van uw eigen shaders, geluidsondersteuning, belasting en opslaan
  • ECS-componenten (Entity Component System), on-the-fly herladen van bronnen, automatische schaalvergroting van de server, een editor om gamemaps en gamescènes samen te maken.

Tot slot, voor degenen die er meer over willen leren, moeten ze weten dat de code in Rust is geschreven en is gedistribueerd onder de MIT-licentie.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.