Memperkenalkan SLIM: Scalable Lightweight Interactive Models
Memanfaatkan Kekuatan Komposit Rendering Ringan untuk Membangun Dunia yang Lebih Besar dan Lebih Detail untuk Setiap Perangkat
Roblox adalah rumah bagi jutaan pengalaman virtual, mulai dari game mini sederhana hingga dunia terbuka yang luas dan dengan aset 3D berfidelitas tinggi. Tujuan kami adalah mendukung pengalaman virtual yang makin padat dan kompleks yang kreator bayangkan di berbagai perangkat pengguna, yang membutuhkan inovasi pada mesin, sistem pengiriman konten, dan infrastruktur kami. Scalable Lightweight Interactive Models, atau SLIM, adalah salah satu bagian dari upaya pengembangan yang terdiri dari beberapa bagian yang memungkinkan kreator mencapai visi artistik besar mereka tanpa mengorbankan performa.
Dengan SLIM, kreator dapat secara otomatis membuat representasi ringan dari objek apa pun dalam pengalaman virtual Roblox, meminimalkan jumlah draw call, segitiga, dan instance model data yang diperlukan oleh klien untuk merender dunia yang kuat dan mulus. SLIM memberi model streaming kami cara baru yang kuat untuk mengoptimalkan konten, sehingga baik pengguna dengan PC game kelas atas maupun pengguna dengan perangkat seluler kelas bawah dapat menikmati fidelitas tertinggi yang dapat didukung perangkat mereka.
| Tanpa instance streaming & SLIM | Dengan instance streaming & SLIM | |
| Instance data model klien | 159.745 | 92.536 |
| Segitiga | 20 Juta | 3,35 Juta |
| Draw Call | 2.402 | 1.454 |
Dua Pilar Streaming: Instance dan Aset
Saat Anda menonton film di layanan streaming favorit, perangkat Anda tidak men-download seluruh file terlebih dahulu sebelum Anda mulai menonton. Perangkat men-download data secukupnya agar Anda dapat segera mulai menonton, lalu terus men-download (atau melakukan buffering) beberapa detik berikutnya sehingga tidak mengganggu pengalaman menonton. Jika Anda streaming di perangkat kelas bawah atau koneksi lambat, platform otomatis beradaptasi dengan mengirimkan versi konten dengan fidelitas lebih rendah sementara men-download data yang cukup untuk streaming konten dengan fidelitas tinggi.
Roblox menggunakan konsep serupa untuk streaming konten secara real-time, tetapi data yang diperlukan untuk merepresentasikan simulasi 3D berfidelitas tinggi memiliki tantangan tersendiri. Jika video memiliki linimasa konten yang linier dan dilihat dari satu perspektif, pengalaman virtual Roblox berisi dunia 3D yang luas dan interaktif yang penuh dengan berbagai tipe aset yang dapat dilihat dari berbagai perspektif yang dikendalikan oleh pengguna. Ditambah 151,5 juta pengguna aktif harian yang bermain, menjelajahi, dan akhirnya streaming konten dari berbagai perangkat, ada potensi luar biasa untuk mengoptimalkan cara pengiriman dan penampilan konten.1
Segala sesuatu yang dilihat pengguna di Roblox—mobil, pohon, avatar, atau bangunan—direpresentasikan sebagai sejumlah instance dalam mesin. Misalnya, sebuah mobil yang dapat digunakan dipecah menjadi beberapa instance untuk bumper, pintu, roda, dan sebagainya. Setiap instance dibangun dalam pengalaman virtual menggunakan beberapa aset, seperti audio, animasi, tekstur, dan mesh 3D.
Hampir semua streaming di Roblox dibagi menjadi dua teknologi inti: instance streaming dan asset streaming.
-
Instance streaming menentukan instance mana yang perlu di-stream oleh perangkat pengguna. Tidak perlu stream bagian dari pengalaman virtual yang belum dapat dilihat atau digunakan oleh pengguna. Dalam contoh di atas, hanya instance yang merepresentasikan bangunan sekitar yang di-stream ke klien.
-
Asset streaming menentukan kualitas instance yang di-stream. Tidak perlu men-download tekstur 4K beresolusi tinggi untuk gunung yang sangat jauh hingga detailnya tidak dapat dilihat dengan jelas oleh pengguna. Pada gambar di atas, bangunan di kejauhan dan bangunan yang terlihat kecil di layar menggunakan mesh yang disederhanakan dan tekstur beresolusi lebih rendah.
Pusat kendali untuk operasi ini adalah sistem yang kami sebut Harmony, yang memantau sumber daya yang tersedia pada setiap perangkat pengguna di setiap frame. Harmony menyesuaikan instance streaming dan asset streaming untuk memberikan pengalaman virtual terbaik berdasarkan memori perangkat, beban GPU dan CPU, serta bandwidth jaringan. Untuk PC gaming kelas atas, Harmony menggenjot semuanya ke kualitas tertinggi. Untuk perangkat seluler dengan koneksi yang lemah, sistem otomatis akan menurunkan skala agar pengalaman pengguna tetap lancar.
Tim membahas teknologi di balik streaming, cloud transcoding, dan SLIM di podcast Tech Talks episode ke-30.
SLIM: Scalable Lightweight Interactive Models
Gagasan inti dari SLIM itu sederhana tetapi kuat: SLIM dapat otomatis membuat beberapa representasi ringan dan optimal dari objek atau model apa pun di dunia kreator dan menyimpannya di server untuk diambil saat runtime. Setiap klien pengguna kemudian dapat beralih secara dinamis antara merender instance dan aset asli atau salah satu representasi SLIM ringan, berdasarkan sumber daya yang tersedia di perangkat.
SLIM menggunakan dua teknik utama untuk menghasilkan representasi ringan:
1. Penggabungan
Pertama, SLIM menggabungkan beberapa bagian menjadi lebih sedikit. Alih-alih mobil di bawah ini membutuhkan 112 mesh terpisah dan 24 tekstur terpisah, representasinya yang ringan mungkin hanya membutuhkan satu mesh dan empat tekstur. Proses penggabungan disesuaikan secara tepat agar cocok dengan cara mesin merender konten, menghilangkan geometri yang tidak terlihat dalam objek, dan mengurangi jumlah draw call yang diperlukan untuk merendernya.
2. Level Detail (LoD)
Setelah menggabungkan model, SLIM menghasilkan beberapa versi pada berbagai level detail. Artinya, SLIM membuat versi mesh 3D dengan segitiga yang jauh lebih sedikit dan menghasilkan tekstur pada resolusi yang jauh lebih rendah, seperti yang kami lakukan dengan setiap aset mesh atau tekstur individual menggunakan teknik LoD tradisional. Teknik ini dapat lebih dioptimalkan ketika diterapkan pada model SLIM karena kami memiliki bingkai koordinat individual dari setiap instance yang mendasarinya. Hal ini memberikan konteks lengkap tentang bagaimana kreator ingin setiap aset ini dirender bersama-sama. Dengan pengetahuan ini, SLIM memungkinkan kami membuat keputusan yang lebih tepat tentang bagian mana yang detailnya bisa dihapus dan bagian mana yang detailnya harus disimpan karena akan terlihat oleh pengguna.
Representasi yang Tepat pada Waktu yang Tepat
Setelah kami membuat beberapa representasi dari sebuah objek, SLIM harus memutuskan mana yang akan digunakan untuk perangkat pengguna tertentu, atau apakah akan menggunakan teknik rendering tradisional. Sistem ini membagi dunia menjadi tiga wilayah yang berbeda. Sederhananya, bayangkan wilayah-wilayah ini sebagai lingkaran konsentris detail yang memancar dari pemain.
Batas streaming sebenarnya tidak berbentuk lingkaran. Bentuknya tergantung pada berbagai faktor.
Wilayah HH (Instance Berat, Rendering Berat)
Di wilayah HH, instance lengkap dan berat di-stream dari server ke model data klien, dan klien menentukan representasi aset tertentu yang akan di-download dan dirender untuk setiap instance. Pengubahan skala masih dapat dilakukan dengan LoD mesh dan mip tekstur di wilayah ini, tetapi tidak ada penggabungan. Sebelum SLIM, beginilah cara merender setiap instance yang di-stream ke dalam pengalaman virtual.
Wilayah HL (Instance Berat, Rendering Ringan)
Wilayah HL berada di antara wilayah HH dan LL. Di wilayah ini, klien memiliki instance berat dalam model data, tetapi dapat memilih untuk merender menggunakan pipeline render penuh atau pipeline SLIM. Wilayah ini beradaptasi untuk memastikan transisi yang mulus antara wilayah HH dan LL, bahkan jika pengguna mengalami latensi jaringan. Titik transisi antara wilayah HH dan HL bersifat dinamis, sehingga Harmony dapat segera meningkatkan atau menurunkan skala sebagai respons terhadap lonjakan sumber daya di kedua arah.
Wilayah LL (Instance Ringan, Rendering Ringan)
Di wilayah LL, klien hanya stream representasi yang sangat ringan dari instance yang diperlukan untuk menentukan bingkai koordinat untuk model SLIM, serta metadata minimum. Hanya model SLIM ringan hasil penggabungan yang dirender di wilayah ini, bukan setiap instance dan aset. Wilayah LL membutuhkan jauh lebih sedikit segitiga dan draw call, dan mengurangi penggunaan memori pada perangkat pengguna dibandingkan dengan streaming di setiap instance berat dan menggunakan pipeline render tradisional.
Teknik wilayah ini memungkinkan klien untuk selalu merender seluruh dunia yang terlihat tanpa menimbulkan biaya komputasi penuh untuk menggunakan setiap instance dan aset berat sekaligus. Objek yang jauh adalah representasi yang ringan dan sangat dioptimalkan, yang digantikan dengan versi berfidelitas tinggi saat pengguna makin dekat. Kemampuan SLIM untuk membuat komposit dan beberapa model LoD yang diubah skalanya memberi Harmony lebih banyak opsi untuk mengoptimalkan kualitas aset di setiap perangkat pengguna.
Ketika semuanya berpadu, pemain akan merasa benar-benar tenggelam dalam pengalaman virtual dan tidak menyadari titik transisi atau level detail yang berbeda-beda.
Masa Depan: Apa Langkah SLIM Selanjutnya?
SLIM hanyalah langkah pertama dari perjalanan yang panjang, dan kami sangat antusias melihat bagaimana kreator mengintegrasikan teknologi ini ke dalam alur kerja mereka. Kami sedang meninjau pengembangan SLIM ke dua arah utama di masa mendatang.
Menentukan Hal-Hal Lain yang Dapat Di-SLIM-kan
Kami memulai dengan model statis yang ditentukan oleh kreator di Studio, tetapi di masa mendatang, SLIM akan dapat mengoptimalkan beberapa model yang paling kompleks di Roblox: avatar platform. Avatar, dengan semua animasi, pakaian berlapis, dan aksesori terkait, dapat menjadi variabel yang tidak terduga bagi kreator. Dengan mengizinkan avatar untuk di-SLIM-kan, mesin dapat secara efektif membatasi sumber daya yang digunakan masing-masing model avatar.
Pada akhirnya, kami ingin kreator dapat memanfaatkan SLIM untuk melakukan perubahan pada model dinamis. Bayangkan sebuah model di mana server dapat melakukan perubahan secara aktif (misalnya, pintu terbuka atau ada bagian yang rusak), tetapi dengan beberapa trik cerdas, klien dapat menggunakan kembali representasi ringan yang sama.
Mengoptimalkan Pipeline SLIM
Setelah memiliki pipeline komprehensif yang memberikan mesin dengan tingkat fleksibilitas yang baru, kami juga fokus untuk membuat pipeline itu sendiri lebih cerdas, lebih cepat, dan lebih efisien. Ini mencakup:
-
Pengaturan ulang atlas tekstur: Menggabungkan beberapa tekstur model secara cerdas ke dalam satu lembar tekstur yang dioptimalkan.
-
Segmentasi otomatis: Menggunakan pemahaman semantik dan spasial dunia secara otomatis untuk mengidentifikasi model terbaik untuk di-SLIM-kan.
-
Representasi yang lebih ringan: Untuk objek dinamis yang tidak terlalu bergantung pada latensi, kami mengeksplorasi pembuatan representasi 2D yang nyaris bebas sumber daya saat dirender di klien.
-
SLIM Hierarkis: Menyusun model SLIM satu demi satu sehingga seluruh kelompok instance dapat disederhanakan dan mesin dapat memilih level granularitas secara dinamis, misalnya, dari satu pohon ke hutan ke seluruh daratan yang penuh dengan hutan dan objek lainnya.
-
Up-rezzing (Peningkatan resolusi): Saat ini, kami fokus mengoptimalkan performa, tetapi dalam waktu dekat, sistem ini akan memungkinkan peningkatan resolusi aset untuk hardware di masa mendatang sekaligus mempertahankan maksud artistik asli kreator. Dengan arsitektur baru ini, seiring dengan meningkatnya kemampuan mesin kami dalam mensimulasikan realitas, kami dapat terus meng-upgrade representasi yang digunakan.
Bersama Harmony dan seluruh arsitektur pengiriman konten dan streaming kami, SLIM merupakan terobosan besar dalam visi kami untuk menghadirkan dunia yang lebih luas dan mendetail bagi lebih banyak pemain. Dengan integrasi yang erat antara mesin, pengiriman konten, dan infrastruktur cloud kami, serta basis konten masif dari jutaan kreator, kami dapat membangun sistem yang saling terhubung secara mendalam yang meningkatkan seluruh pengalaman virtual. Seiring dengan meningkatnya kemampuan mesin kami dalam mensimulasikan realitas, kami dapat terus meng-upgrade representasi yang digunakan. Saat ini, kami fokus mengoptimalkan performa, tetapi dalam waktu dekat, sistem ini akan memungkinkan peningkatan resolusi aset untuk hardware di masa mendatang sekaligus mempertahankan maksud artistik asli kreator.
Kami membangun platform yang tidak hanya menghormati maksud artistik tersebut, tetapi juga dapat secara cerdas dan otomatis menghadirkan kreasi mereka kepada pengguna di berbagai perangkat di mana pun Roblox tersedia. Kami tidak sabar melihat apa yang akan dibangun oleh komunitas dengan platform ini.
1Per Q3 2025.