Ambient ашық бастапқы көп ойыншы ойын қозғалтқышының бірінші шығарылымы

Бір жылдық дамудан кейін Ambient жаңа ашық бастапқы ойын қозғалтқышының бірінші шығарылымы ұсынылды. Қозғалтқыш WebAssembly көрсетіліміне құрастырылатын және көрсету үшін WebGPU API пайдаланатын көп ойыншы ойындары мен 3D қолданбаларын жасау үшін орындалу уақытын қамтамасыз етеді. Код Rust тілінде жазылған және MIT лицензиясы бойынша таратылады.

Ambient әзірлеудегі басты мақсат - көп ойыншы ойындарының дамуын жеңілдететін және оларды құруды бір ойыншыға арналған жобалардан қиын етпейтін құралдармен қамтамасыз ету. Қозғалтқыш бастапқыда WebAssembly аралық кодына компиляциялау мүмкін болатын кез келген бағдарламалау тілдерінде ойындар мен қосымшаларды әзірлеуді қолдайтын әмбебап жұмыс уақытын құруға бағытталған. Дегенмен, бірінші шығарылым әзірге тек Rust әзірлеуін қолдайды.

Жаңа қозғалтқыштың негізгі ерекшеліктері:

  • Мөлдір желіні қолдау. Қозғалтқыш клиент пен сервер функцияларын біріктіреді, клиент пен сервер логикасын жасау үшін барлық қажетті құрамдастарды қамтамасыз етеді және сервер күйін клиенттер арасында автоматты түрде синхрондайды. Клиент пен сервер жағында жалпы деректер моделі пайдаланылады, ол сервер мен фронтенд арасында кодты тасымалдауды жеңілдетеді.
  • Әрбір модульді жеке оқшауланған ортада іске қосу, сенімсіз кодтың әсерін шектеуге мүмкіндік береді. Модульді бұзу бүкіл қолданбаны бұзбайды.
  • Деректерге бағытталған архитектура. Әрбір WASM модулімен басқаруға болатын компоненттер жүйесіне негізделген деректер үлгісін қамтамасыз ету. ECS (Entity Component System) дизайн үлгісін пайдалану. Сервердегі орталықтандырылған деректер қорында барлық компоненттердің деректерін сақтау, оның күйі клиентке автоматты түрде қайталанады, ол өз жағында жергілікті күйді ескере отырып деректерді кеңейте алады.
  • WebAssembly-ге құрастырылатын кез келген бағдарламалау тілінде Ambient модульдерін жасау мүмкіндігі (әзірше тек Rust қолдауы бар).
  • Windows, macOS және Linux жүйелерінде жұмыс істей алатын және клиент пен сервер ретінде жұмыс істейтін шығыс ретінде әмбебап орындалатын файлдарды жасау.
  • Өзіңіздің құрамдас бөліктерді және «концепцияларды» (компоненттер жинағы) анықтау мүмкіндігі. Бірдей құрамдас бөліктер мен тұжырымдамаларды пайдаланатын жобалар, тіпті деректер арнайы жобаларда пайдалану үшін арнайы жасалмаған болса да, деректерді тасымалдауға және ортақ пайдалануға мүмкіндік береді.
  • .glb және .fbx сияқты әртүрлі пішімдердегі ресурстарды құрастыруға қолдау көрсету. Желі арқылы ресурстарды ағынмен жүктеп алу мүмкіндігі – клиент серверге қосылу кезінде барлық қажетті ресурстарды ала алады (барлық ресурстардың жүктелуін күтпей-ақ ойнауды бастауға болады). FBX және glTF үлгі пішімдерін, әртүрлі аудио және кескін пішімдерін қолдайды.
  • Көрсетуді жылдамдату үшін GPU қолданатын және GPU жағынан қиюды және егжей-тегжей деңгейін өзгертуді қолдайтын жетілдірілген көрсету жүйесі. Әдепкі бойынша физикалық негізделген көрсетуді (PBR) пайдаланады, анимация мен каскадты көлеңке карталарын қолдайды.
  • PhysX қозғалтқышы негізінде физикалық процестерді модельдеуге қолдау көрсету.
  • React-ке ұқсас пайдаланушы интерфейстерін құруға арналған жүйе.
  • Ағымдағы платформадан тәуелсіз бірыңғай енгізу жүйесі.
  • Қосылатын сүзгілері бар кеңістіктік дыбыс жүйесі.

Әзірлеу әлі альфа нұсқасы сатысында. Әлі іске асырылмаған функциялардың ішінде біз вебте жұмыс істеу мүмкіндігін, клиенттік API, көп ағынды басқаруға арналған API, пайдаланушы интерфейсін құруға арналған кітапхана, өзіңіздің шейдерлеріңізді пайдалануға арналған API, дыбыстық қолдау, жүктеу және сақтауды атап өтуге болады. ECS (Entity Component System) компоненттері, ресурстарды жылдам қайта жүктеу, серверді автоматты масштабтау, ойын карталары мен ойын көріністерін бірлесіп жасауға арналған редактор.



Ақпарат көзі: opennet.ru

пікір қалдыру