Нээлттэй эхийн олон тоглогчтой тоглоомын хөдөлгүүр Ambient-ийн анхны хувилбар

Жилийн турш хөгжүүлсний дараа Ambient хэмээх нээлттэй эхийн шинэ тоглоомын хөдөлгүүрийн анхны хувилбарыг танилцуулж байна. Энэхүү хөдөлгүүр нь WebAssembly дүрслэлд хөрвүүлдэг олон тоглогчтой тоглоомууд болон 3D программуудыг бий болгох ажлын цагийг өгдөг бөгөөд дүрслэхдээ WebGPU API ашигладаг. Код нь Rust дээр бичигдсэн бөгөөд MIT лицензийн дагуу тараагддаг.

Ambient-ийг хөгжүүлэх гол зорилго бол олон тоглогчийн тоглоомуудыг хөгжүүлэхэд хялбар болгох, бүтээх нь нэг тоглогчийн төслөөс илүү хэцүү болгох хэрэгслүүдээр хангах явдал юм. Хөдөлгүүр нь эхлээд WebAssembly завсрын кодыг эмхэтгэх боломжтой аливаа програмчлалын хэл дээр тоглоом, програмуудыг хөгжүүлэхэд зориулагдсан бүх нийтийн ажиллах цагийг бий болгоход чиглэгддэг. Гэсэн хэдий ч эхний хувилбар нь одоогоор зөвхөн Rust хөгжүүлэлтийг дэмждэг.

Шинэ хөдөлгүүрийн гол онцлогууд:

  • Ил тод сүлжээний дэмжлэг. Хөдөлгүүр нь үйлчлүүлэгч болон серверийн функцуудыг нэгтгэж, клиент болон серверийн логикийг бий болгоход шаардлагатай бүх бүрэлдэхүүн хэсгүүдийг хангаж, серверийн төлөвийг үйлчлүүлэгчид хооронд автоматаар синхрончилдог. Үйлчлүүлэгч болон серверийн тал дээр нийтлэг өгөгдлийн загварыг ашигладаг бөгөөд энэ нь арын болон урд талын хооронд код дамжуулахыг хялбаршуулдаг.
  • Модуль бүрийг тусгаарлагдсан орчинд ажиллуулж, найдваргүй кодын нөлөөг хязгаарлах боломжийг танд олгоно. Модуль эвдэрсэн нь програмыг бүхэлд нь сүйрүүлдэггүй.
  • Өгөгдөл рүү чиглэсэн архитектур. WASM модул бүрээр удирдаж болох бүрэлдэхүүн хэсгүүдийн системд суурилсан өгөгдлийн загвар гаргах. ECS (Entity Component System) дизайны загварыг ашиглах. Бүх бүрэлдэхүүн хэсгүүдийн өгөгдлийг сервер дээрх төвлөрсөн мэдээллийн санд хадгалах, төлөвийг нь үйлчлүүлэгч рүү автоматаар хуулбарлах бөгөөд энэ нь орон нутгийн төлөв байдлыг харгалзан өгөгдлийг өргөжүүлэх боломжтой.
  • WebAssembly-д хөрвүүлдэг аливаа програмчлалын хэлээр орчны модулиудыг үүсгэх чадвар (одоохондоо зөвхөн Rust дэмжигддэг).
  • Windows, macOS болон Linux дээр ажиллах боломжтой бүх нийтийн гүйцэтгэгдэх файлуудыг гаралт болгон үүсгэж, үйлчлүүлэгч болон серверийн үүрэг гүйцэтгэдэг.
  • Өөрийнхөө бүрэлдэхүүн хэсэг, "үзэл баримтлал" (бүрэлдэхүүн хэсгүүдийн цуглуулга) тодорхойлох чадвар. Ижил бүрэлдэхүүн хэсэг, үзэл баримтлалыг ашигладаг төслүүд нь өгөгдөл нь тодорхой төслүүдэд тусгайлан зориулагдаагүй байсан ч өгөгдлийг зөөвөрлөх, хуваалцах боломжийг олгодог.
  • .glb болон .fbx зэрэг янз бүрийн форматаар нөөцийг эмхэтгэх дэмжлэг. Сүлжээгээр дамжуулан нөөцийг татаж авах боломжтой - үйлчлүүлэгч серверт холбогдох үед шаардлагатай бүх нөөцийг хүлээн авах боломжтой (та бүх нөөцийг ачаалахыг хүлээхгүйгээр тоглож эхлэх боломжтой). FBX болон glTF загварын формат, төрөл бүрийн аудио болон зургийн форматыг дэмждэг.
  • Зургийг хурдасгахын тулд GPU ашигладаг дэвшилтэт дүрслэх систем бөгөөд GPU талын хайчлах, нарийвчилсан түвшний өөрчлөлтийг дэмждэг. Анхдагч байдлаар физикт суурилсан дүрслэлийг (PBR) ашигладаг, хөдөлгөөнт дүрс болон шаталсан сүүдрийн зургийг дэмждэг.
  • PhysX хөдөлгүүр дээр суурилсан физик процессын симуляцийн дэмжлэг.
  • React-тэй төстэй хэрэглэгчийн интерфейсийг бий болгох систем.
  • Одоогийн платформоос хамааралгүй нэгдсэн оролтын систем.
  • Залгаастай шүүлтүүр бүхий орон зайн дууны систем.

Хөгжил альфа хувилбарын шатандаа байна. Одоохондоо хэрэгжээгүй байгаа функцүүдийн дотроос бид вэб дээр ажиллах чадвар, клиент API, олон урсгалыг удирдах API, хэрэглэгчийн интерфэйс үүсгэх номын сан, өөрийн шэйдер ашиглах API, дууны дэмжлэг, ачаалах, хадгалах зэргийг тэмдэглэж болно. ECS (Entity Component System) бүрэлдэхүүн хэсгүүд, нөөцийг шууд ачаалах, автомат серверийн масштаб, тоглоомын газрын зураг, тоглоомын үзэгдлийг хамтран бүтээхэд зориулсан редактор.



Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх