Ochiq kodli multiplayer o'yin mexanizmi Ambientning birinchi versiyasi

Bir yillik rivojlanishdan so'ng Ambient yangi ochiq manbali o'yin mexanizmining birinchi versiyasi taqdim etildi. Dvigatel WebAssembly taqdimotiga kompilyatsiya qiluvchi va ko'rsatish uchun WebGPU API-dan foydalanadigan ko'p o'yinchi o'yinlar va 3D ilovalarni yaratish uchun ish vaqtini taqdim etadi. Kod Rustda yozilgan va MIT litsenziyasi ostida tarqatiladi.

Ambient-ni ishlab chiqishdagi asosiy maqsad ko'p o'yinchi o'yinlarini ishlab chiqishni soddalashtiradigan va ularni yaratishni bitta o'yinchili loyihalardan qiyinroq qilmaydigan vositalar bilan ta'minlashdir. Dvigatel dastlab WebAssembly oraliq kodiga kompilyatsiya qilish mumkin bo'lgan har qanday dasturlash tillarida o'yinlar va ilovalarni ishlab chiqishni qo'llab-quvvatlaydigan universal ish vaqtini yaratishga qaratilgan. Biroq, birinchi versiya hozircha faqat Rust rivojlanishini qo'llab-quvvatlaydi.

Yangi dvigatelning asosiy xususiyatlari:

  • Shaffof tarmoqni qo'llab-quvvatlash. Dvigatel mijoz va server funktsiyalarini birlashtiradi, mijoz va server mantig'ini yaratish uchun barcha kerakli komponentlarni taqdim etadi va server holatini mijozlar bo'ylab avtomatik ravishda sinxronlashtiradi. Mijoz va server tomonlarida umumiy ma'lumotlar modeli qo'llaniladi, bu esa backend va frontend o'rtasida kodni uzatishni osonlashtiradi.
  • Ishonchsiz kodning ta'sirini cheklash imkonini beruvchi har bir modulni o'ziga xos izolyatsiya qilingan muhitda ishga tushirish. Modulning ishdan chiqishi butun dasturni buzmaydi.
  • Ma'lumotlarga yo'naltirilgan arxitektura. Har bir WASM moduli tomonidan boshqarilishi mumkin bo'lgan komponentlar tizimiga asoslangan ma'lumotlar modelini taqdim etish. ECS (Entity Component System) dizayn namunasidan foydalanish. Barcha komponentlarning ma'lumotlarini serverdagi markazlashtirilgan ma'lumotlar bazasida saqlash, uning holati avtomatik ravishda mijozga takrorlanadi, u o'z tomonida mahalliy holatni hisobga olgan holda ma'lumotlarni kengaytirishi mumkin.
  • WebAssembly-ga kompilyatsiya qilinadigan har qanday dasturlash tilida Ambient modullarini yaratish imkoniyati (hozircha faqat Rust qo'llab-quvvatlanadi).
  • Windows, macOS va Linux tizimlarida ishlay oladigan va mijoz va server vazifasini bajaradigan universal bajariladigan fayllarni ishlab chiqarish.
  • O'z komponentlaringizni va "kontseptsiyalaringizni" (komponentlar to'plamini) aniqlash qobiliyati. Xuddi shu komponentlar va kontseptsiyalardan foydalanadigan loyihalar, hatto ma'lumotlar maxsus loyihalarda foydalanish uchun mo'ljallanmagan bo'lsa ham, ma'lumotlarni ko'chirish va almashish imkonini beradi.
  • .glb va .fbx kabi turli formatlardagi resurslarni kompilyatsiya qilishni qo'llab-quvvatlash. Tarmoq orqali resurslarni oqimli yuklab olish imkoniyati - mijoz serverga ulanganda barcha kerakli resurslarni olishi mumkin (barcha resurslar yuklanishini kutmasdan o'ynashni boshlashingiz mumkin). FBX va glTF model formatlarini, turli audio va tasvir formatlarini qo'llab-quvvatlaydi.
  • Renderlashni tezlashtirish uchun GPUdan foydalanadigan va GPU tomonidagi kesish va tafsilotlar darajasidagi o'zgarishlarni qo'llab-quvvatlaydigan ilg'or renderlash tizimi. Sukut bo'yicha jismoniy asoslangan renderlash (PBR) dan foydalanadi, animatsiya va kaskadli soya xaritalarini qo'llab-quvvatlaydi.
  • PhysX dvigateliga asoslangan jismoniy jarayonlarni simulyatsiya qilishni qo'llab-quvvatlash.
  • Reactga o'xshash foydalanuvchi interfeyslarini yaratish tizimi.
  • Joriy platformadan mustaqil bo'lgan yagona kiritish tizimi.
  • Plagin filtrlari bilan fazoviy ovoz tizimi.

Rivojlanish hali alfa versiyasi bosqichida. Hali amalga oshirilmagan funksiyalar orasida biz Internetda ishlash qobiliyatini, mijoz API'sini, ko'p oqimlarni boshqarish uchun APIni, foydalanuvchi interfeysini yaratish uchun kutubxonani, shaxsiy shaderlardan foydalanish uchun APIni, ovozni qo'llab-quvvatlashni, yuklash va saqlashni qayd etishimiz mumkin. ECS (Entity Component System) komponentlari, resurslarni tezda qayta yuklash, avtomatik server masshtablash, o'yin xaritalari va o'yin sahnalarini birgalikda yaratish uchun muharrir.



Manba: opennet.ru

a Izoh qo'shish