Första utgåvan av flerspelarmotorn Ambient med öppen källkod

Efter ett års utveckling presenteras den första versionen av den nya spelmotorn Ambient med öppen källkod. Motorn ger en körtid för att skapa spel för flera spelare och 3D-applikationer som kompileras till en WebAssembly-representation och använder WebGPU API för rendering. Koden är skriven i Rust och distribueras under MIT-licensen.

Ett centralt mål i utvecklingen av Ambient är att tillhandahålla verktyg som förenklar utvecklingen av spel för flera spelare och gör deras skapande inte svårare än enspelarprojekt. Motorn är initialt inriktad på att skapa en universell körtid som stöder utvecklingen av spel och applikationer i alla programmeringsspråk för vilka kompilering till WebAssembly-mellankod är möjlig. Den första utgåvan stöder dock bara Rust-utveckling för närvarande.

Nyckelfunktioner i den nya motorn:

  • Transparent nätverksstöd. Motorn kombinerar klient- och serverfunktioner, tillhandahåller alla nödvändiga komponenter för att skapa klient- och serverlogik och synkroniserar automatiskt servertillståndet mellan klienterna. En vanlig datamodell används på klient- och serversidan, vilket förenklar överföringen av kod mellan backend och frontend.
  • Att köra varje modul i sin egen isolerade miljö, så att du kan begränsa påverkan av opålitlig kod. Att krascha en modul kraschar inte hela programmet.
  • Dataorienterad arkitektur. Tillhandahåller en datamodell baserad på ett system av komponenter som kan manipuleras av varje WASM-modul. Använder ECS-designmönstret (Entity Component System). Lagrar data från alla komponenter i en centraliserad databas. server, vars tillstånd automatiskt replikeras till klienten, som kan utöka data på sin sida med hänsyn till det lokala tillståndet.
  • Möjlighet att skapa Ambient-moduler i valfritt programmeringsspråk som kompileras till WebAssembly (endast Rust stöds för närvarande).
  • Формирование на выходе универсальных исполняемых файлов, которые могут запускаться в Windows, macOS и Linux, и функционировать как в роли клиента, так и сервера.
  • Förmåga att definiera dina egna komponenter och "koncept" (komponentsamlingar). Projekt som använder samma komponenter och koncept möjliggör portabilitet och delning av data, även om data inte är specifikt designade för användning i specifika projekt.
  • Stöd för att kompilera resurser i olika format, inklusive .glb och .fbx. Möjlighet att streama nedladdning av resurser över nätverket - klienten kan ta emot alla nödvändiga resurser vid anslutning till servern (du kan börja spela utan att vänta på att alla resurser ska laddas). Stöder FBX- och glTF-modellformat, olika ljud- och bildformat.
  • Ett avancerat renderingssystem som använder GPU:n för att snabba upp renderingen och stöder GPU-sidans klippning och detaljnivåändringar. Använder fysiskt baserad rendering (PBR) som standard, stöder animering och överlappande skuggkartor.
  • Stöd för simulering av fysiska processer baserade på PhysX-motorn.
  • Ett system för att bygga användargränssnitt liknande React.
  • Ett enhetligt inmatningssystem som är oberoende av den aktuella plattformen.
  • Rumsligt ljudsystem med plug-in filter.

Utvecklingen är för närvarande i alfafas. Funktioner som ännu inte implementerats inkluderar webblanseringsfunktion, ett klient-API, ett multitrådnings-API, ett bibliotek för att skapa användargränssnitt, ett API för att använda anpassade shaders, ljudstöd, laddning och sparning av ECS-komponenter (Entity Component System), resursladdning i farten och automatisk skalning. servrar, en redigerare för gemensamt skapande av spelkartor och spelscener.

Spela upp video


Källa: opennet.ru
Köp pålitlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster