Keluaran pertama enjin permainan berbilang pemain terbuka Ambient

Selepas setahun pembangunan, keluaran pertama enjin permainan sumber terbuka baharu Ambient dipersembahkan. Enjin menyediakan masa jalan untuk membina permainan berbilang pemain dan aplikasi 3D yang menyusun kepada perwakilan WebAssembly dan menggunakan API WebGPU untuk pemaparan. Kod ini ditulis dalam Rust dan diedarkan di bawah lesen MIT.

Matlamat utama dalam pembangunan Ambient adalah untuk menyediakan alatan yang memudahkan pembangunan permainan berbilang pemain dan menjadikan penciptaannya tidak lebih sukar daripada projek pemain tunggal. Enjin ini pada mulanya bertujuan untuk mencipta masa jalan universal yang menyokong pembangunan permainan dan aplikasi dalam mana-mana bahasa pengaturcaraan yang mana penyusunan ke dalam kod perantaraan WebAssembly mungkin. Walau bagaimanapun, keluaran pertama hanya menyokong pembangunan Rust setakat ini.

Ciri utama enjin baharu:

  • Sokongan telus untuk rangkaian. Enjin menggabungkan fungsi klien dan pelayan, menyediakan semua komponen yang diperlukan untuk mencipta logik klien dan pelayan, dan secara automatik menyegerakkan keadaan pelayan pada klien. Model data biasa digunakan pada bahagian klien dan pelayan, yang memudahkan untuk memindahkan kod antara bahagian belakang dan bahagian hadapan.
  • Jalankan setiap modul dalam persekitaran terpencilnya sendiri untuk mengehadkan kesan kod yang tidak dipercayai. Ranap modul tidak menyebabkan keseluruhan aplikasi ranap.
  • Seni bina berorientasikan data. Menyediakan model data berdasarkan sistem komponen yang boleh dimanipulasi oleh setiap WASM. Menggunakan corak reka bentuk ECS (Entity Component System). Menyimpan data semua komponen dalam pangkalan data berpusat pada pelayan, keadaan yang direplikasi secara automatik kepada pelanggan, yang di sisinya boleh mengembangkan data dengan mengambil kira keadaan setempat.
  • Keupayaan untuk mencipta modul Ambien dalam mana-mana bahasa pengaturcaraan yang dikompilasi ke WebAssembly (hanya Rust disokong setakat ini).
  • Penjanaan output fail boleh laku universal yang boleh dijalankan pada Windows, macOS dan Linux, dan berfungsi sebagai pelanggan dan pelayan.
  • Keupayaan untuk menentukan komponen anda sendiri dan "konsep" (koleksi komponen). Projek yang menggunakan komponen dan konsep yang sama memastikan data mudah alih dan dikongsi, walaupun data itu tidak direka bentuk khusus untuk digunakan dalam projek tertentu.
  • Sokongan untuk menyusun sumber dalam format yang berbeza, termasuk .glb dan .fbx. Keupayaan untuk menstrim sumber melalui rangkaian - pelanggan boleh mendapatkan semua sumber yang diperlukan apabila disambungkan ke pelayan (anda boleh mula bermain tanpa menunggu semua sumber dimuatkan). Format model FBX dan glTF, pelbagai format bunyi dan imej disokong.
  • Sistem pemaparan lanjutan yang menggunakan GPU untuk mempercepatkan pemaparan dan menyokong keratan sisi GPU dan LOD. Menggunakan pemaparan berasaskan fizikal (PBR) secara lalai, sokongan untuk animasi dan peta bayang berlatarkan.
  • Sokongan untuk simulasi proses fizikal berdasarkan enjin PhysX.
  • Sistem pembinaan antara muka pengguna seperti tindak balas.
  • Sistem input bersatu bebas daripada platform semasa.
  • Sistem bunyi spatial dengan penapis pemalam.

Perkembangan masih di peringkat alfa. Daripada fungsi yang belum dilaksanakan, kita boleh perhatikan keupayaan untuk dijalankan di Web, API klien, API untuk mengurus multithreading, perpustakaan untuk mencipta antara muka pengguna, API untuk menggunakan shader anda sendiri, sokongan bunyi, memuatkan dan menyimpan. Komponen ECS ​​(Entity Component System), memuatkan semula sumber dengan pantas, penskalaan automatik pelayan, editor untuk mencipta bersama peta permainan dan adegan permainan.



Sumber: opennet.ru

Tambah komen