Memperkenalkan SLIM: Model Interaktif Ringan yang Dapat Diskalakan
Memanfaatkan Kekuatan Komposisi Rendering Ringan untuk Membangun Dunia yang Lebih Besar dan Lebih Detail untuk Setiap Perangkat

Roblox menjadi rumah bagi jutaan pengalaman, mulai dari mini game sederhana hingga dunia terbuka yang luas penuh dengan aset 3D berkualitas tinggi. Tujuan kami adalah mendukung pengalaman yang semakin padat dan kompleks yang dibayangkan oleh para kreator di berbagai perangkat pengguna, yang membutuhkan inovasi dalam mesin, sistem pengiriman konten, dan infrastruktur kami. Scalable Lightweight Interactive Models, atau SLIM, adalah salah satu bagian dari upaya pengembangan multi-bagian yang memungkinkan para kreator mewujudkan visi artistik mereka yang megah tanpa mengorbankan kinerja.
SLIM memungkinkan kreator untuk secara otomatis membuat representasi ringan dari objek apa pun dalam pengalaman Roblox, meminimalkan jumlah panggilan gambar, segitiga, dan instansi model data yang diperlukan oleh klien untuk merender dunia yang kokoh dan mulus. SLIM memberikan model streaming kami cara-cara baru yang kuat untuk mengoptimalkan konten, sehingga pengguna dengan PC gaming kelas atas dan pengguna dengan perangkat seluler kelas bawah dapat berbagi pengalaman yang sama dengan kualitas tertinggi yang dapat ditangani perangkat mereka.

Tanpa streaming instance & SLIM | Dengan streaming instance & SLIM | |
Instansi model data klien | 159.745 | 92.536 |
Segitiga | 20 juta | 3,35 juta |
Panggilan Gambar | 2.402 | 1.454 |
Dua Pilar Streaming: Instans dan Aset
Saat Anda menonton film di layanan streaming favorit, perangkat Anda tidak mengunduh seluruh file sebelum Anda mulai menonton. Perangkat hanya mengunduh data secukupnya agar Anda dapat langsung mulai menonton, kemudian terus mengunduh (atau menyimpan dalam buffer) beberapa detik berikutnya agar pengalaman menonton tidak terganggu. Jika Anda melakukan streaming pada perangkat kelas bawah atau koneksi lambat, platform secara otomatis menyesuaikan dengan mengirimkan versi konten dengan kualitas lebih rendah sementara mengunduh data yang cukup untuk melakukan streaming konten berkualitas tinggi.
Roblox menggunakan konsep serupa untuk streaming konten secara real-time, namun data yang diperlukan untuk menampilkan simulasi 3D berkualitas tinggi menghadirkan tantangan tersendiri. Sementara video memiliki alur waktu linier yang ditonton dari satu sudut pandang, pengalaman di Roblox mencakup dunia 3D yang luas dan interaktif, penuh dengan berbagai jenis aset yang dapat dilihat dari banyak sudut pandang yang dikendalikan oleh pengguna. Ditambah dengan 151,5 juta pengguna aktif harian yang bermain, menjelajah, dan pada akhirnya memutar konten dari berbagai perangkat, terdapat potensi besar untuk mengoptimalkan cara konten disajikan dan ditampilkan.1
Segala sesuatu yang dilihat pengguna di Roblox—seperti mobil, pohon, avatar, atau bangunan—diwakili sebagai sejumlah instance di dalam mesin. Mobil yang dapat digunakan, misalnya, dibagi menjadi instance untuk bumper, pintu, roda, dan sebagainya. Setiap instance dibangun dalam pengalaman menggunakan berbagai aset, seperti mesh 3D, tekstur, animasi, dan audio.
Hampir semua streaming di Roblox dibagi menjadi dua teknologi inti: streaming instance dan streaming aset.
- Streaming instance menentukan instance mana yang perlu di-streaming ke perangkat pengguna. Tidak perlu streaming bagian pengalaman yang belum dapat dilihat atau diinteraksi oleh pengguna. Dalam contoh di atas, hanya instance yang mewakili bangunan-bangunan terdekat yang di-streaming ke klien.
- Streaming aset menentukan kualitas instance yang di-streaming. Tidak perlu mengunduh tekstur 4K beresolusi tinggi untuk gunung yang begitu jauh sehingga pengguna tidak dapat melihat detail halus. Pada gambar di atas, bangunan di kejauhan dan bangunan yang menempati ruang layar kecil menggunakan mesh yang di-decimate dan tekstur beresolusi lebih rendah.
Otak pusat untuk operasi ini adalah sistem yang kami sebut Harmony, yang memantau sumber daya yang tersedia bagi setiap pengguna setiap frame. Harmony menyesuaikan streaming instance dan aset untuk memberikan pengalaman terbaik berdasarkan memori perangkat, beban GPU dan CPU, serta bandwidth jaringan. Untuk PC gaming kelas atas, Harmony menaikkan kualitas semuanya ke tingkat tertinggi. Untuk perangkat seluler dengan koneksi lemah, sistem ini secara otomatis menurunkan kualitas agar pengalaman pengguna tetap lancar.
Tim membahas teknologi di balik streaming, transkoding cloud, dan SLIM dalam episode ke-30 podcast Tech Talks.
SLIM: Model Interaktif Ringan yang Skalabel
Ide inti SLIM sederhana namun kuat: SLIM dapat secara otomatis membuat beberapa representasi ringan dan teroptimalkan dari objek atau model apa pun di dunia pembuatnya dan menyimpannya di server untuk diambil saat runtime. Klien setiap pengguna kemudian dapat secara dinamis beralih antara merender instance dan aset asli atau salah satu representasi SLIM yang 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 bagian. Alih-alih mobil di bawah ini membutuhkan 112 mesh terpisah dan 24 tekstur terpisah, representasi ringannya mungkin hanya membutuhkan satu mesh dan empat tekstur. Proses komposisi disesuaikan secara tepat agar sesuai dengan cara mesin akhirnya merender konten, menghilangkan geometri yang tidak terlihat dalam suatu objek, dan mengurangi jumlah panggilan gambar yang diperlukan untuk merendernya.

2. Tingkat Detail (LoD)
Setelah menyusun model, SLIM menghasilkan beberapa versi dengan tingkat detail yang berbeda-beda. Ini berarti membuat versi mesh 3D dengan jumlah segitiga yang jauh lebih sedikit dan menghasilkan tekstur dengan resolusi yang jauh lebih rendah, seperti yang kita lakukan pada setiap aset mesh atau tekstur individu menggunakan teknik LoD tradisional. Teknik-teknik ini dapat dioptimalkan lebih lanjut saat diterapkan pada model SLIM karena kita memiliki kerangka koordinat individual dari setiap instance yang mendasarinya. Hal ini memberi kita konteks lengkap tentang bagaimana pembuatnya ingin setiap aset ini dirender bersama-sama. Dengan pengetahuan ini, SLIM memungkinkan kita untuk membuat keputusan yang lebih tepat tentang di mana harus menghapus detail yang tidak perlu dan di mana harus mempertahankan detail yang akan diperhatikan pengguna.

Representasi yang Tepat pada Waktu yang Tepat
Setelah kami membuat beberapa representasi dari suatu objek, SLIM harus memutuskan representasi mana yang akan digunakan untuk perangkat pengguna tertentu atau apakah akan menggunakan teknik rendering tradisional sebagai gantinya. Sistem ini membagi dunia menjadi tiga wilayah yang berbeda. Cara sederhana untuk memahami wilayah-wilayah ini adalah dengan membayangkan lingkaran konsentris detail yang meluas ke luar dari pemutar.

Wilayah HH (Instan Berat, Render Berat)
Di wilayah HH, instance heavyweight lengkap dialirkan dari server ke model data klien, dan klien menentukan representasi aset spesifik yang akan diunduh dan dirender untuk setiap instance. Penskalaan masih dapat dicapai dengan mesh LoD dan tekstur mips di wilayah ini, tetapi tidak ada komposisi. Sebelum SLIM, inilah cara setiap instance yang dialirkan ke dalam suatu pengalaman dirender.
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 pipa render penuh atau pipa 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, yang memungkinkan Harmony untuk meningkatkan atau menurunkan skala secara langsung sebagai respons terhadap lonjakan sumber daya ke arah mana pun.
Wilayah LL (Instansi Ringan, Render Ringan)
Di wilayah LL, klien hanya mengalirkan representasi super-ringan dari instance yang diperlukan untuk mendefinisikan kerangka koordinat model SLIM, beserta metadata minimal. Hanya model SLIM yang digabungkan secara ringan yang dirender di wilayah ini, bukan setiap instance dan aset. Wilayah LL memerlukan jauh lebih sedikit segitiga dan panggilan render, serta mengurangi penggunaan memori di perangkat pengguna dibandingkan dengan mengalirkan setiap instance berat dan menggunakan pipeline render tradisional.
Teknik wilayah ini memungkinkan klien untuk merender seluruh dunia yang terlihat setiap saat tanpa menanggung biaya komputasi penuh dari penggunaan setiap instance dan aset berat sekaligus. Objek yang jauh merupakan representasi yang sangat dioptimalkan dan ringan, yang digantikan oleh versi beresolusi tinggi saat pengguna mendekat. Kemampuan SLIM untuk membuat komposisi dan model LoD berskala ganda memberikan Harmony lebih banyak opsi untuk mengoptimalkan kualitas aset sesuai dengan perangkat masing-masing pengguna.
Ketika semuanya bersatu, pemain seharusnya merasa sepenuhnya terbenam dan tidak menyadari titik-titik transisi atau tingkat detail yang bervariasi.
Masa Depan: Ke Mana Arah SLIM Selanjutnya?
SLIM hanyalah langkah pertama dari perjalanan bertahap, dan kami sangat antusias melihat bagaimana para kreator mengintegrasikan teknologi ini ke dalam alur kerja mereka. Kami sedang menjajaki perluasan SLIM ke dua arah utama di masa depan.
Menentukan Apa Lagi yang Dapat Dioptimalkan dengan SLIM
Kami memulai dengan model statis yang ditunjuk oleh kreator di Studio, tetapi di masa depan, SLIM akan dapat mengoptimalkan beberapa model paling kompleks di Roblox: avatar platform. Avatar, dengan semua animasi, pakaian berlapis, dan aksesorisnya, dapat menjadi variabel yang tidak terduga bagi kreator. Memungkinkan avatar untuk di-SLIM-kan berarti mesin dapat secara efektif membatasi sumber daya yang digunakan oleh model avatar individu.
Pada akhirnya, kami ingin memberikan opsi kepada kreator untuk memanfaatkan SLIM dalam perubahan pada model dinamis. Bayangkan sebuah model di mana server dapat secara aktif melakukan perubahan (misalnya, pintu terbuka atau bagian hancur), tetapi dengan beberapa trik cerdas, klien dapat menggunakan kembali representasi ringan yang sama.
Mengoptimalkan Pipa SLIM
Sekarang setelah kami memiliki pipeline end-to-end yang memberikan dimensi fleksibilitas baru pada mesin, kami juga berfokus untuk membuat pipeline itu sendiri menjadi lebih cerdas, lebih cepat, dan lebih efisien. Hal ini meliputi:
- Pengelompokan ulang tekstur: Menggabungkan beberapa tekstur model secara cerdas ke dalam satu lembar tekstur yang dioptimalkan.
- Segmentasi otomatis: Secara otomatis menggunakan pemahaman semantik dan spasial dunia untuk mengidentifikasi model yang paling cocok untuk SLIM.
- Representasi yang lebih ringan: Untuk objek dinamis yang tidak terlalu bergantung pada latensi, kami sedang mengeksplorasi pembuatan representasi 2D yang hampir tidak memerlukan sumber daya untuk dirender di klien.
- SLIM hierarkis: Menumpuk model SLIM satu demi satu sehingga kelompok instance dapat disederhanakan, dan mesin dapat memilih tingkat granularitas secara dinamis—misalnya, dari satu pohon ke hutan, hingga daratan luas yang dipenuhi hutan dan objek lain.
- Peningkatan resolusi: Saat ini, kami fokus pada optimasi untuk kinerja, tetapi dalam waktu dekat, sistem ini akan memungkinkan kami meningkatkan resolusi aset untuk perangkat keras masa depan sambil mempertahankan niat artistik asli pembuatnya. Arsitektur baru ini berarti bahwa seiring mesin kami semakin baik dalam mensimulasikan realitas, kami dapat terus memperbarui representasi yang digunakannya.
SLIM, dikombinasikan dengan Harmony dan arsitektur streaming serta pengiriman konten kami yang lain, merupakan lompatan besar dalam visi kami untuk mendukung dunia yang lebih luas dan detail bagi lebih banyak pemain. Integrasi yang erat antara mesin kami, pengiriman konten, dan infrastruktur cloud, ditambah dengan basis konten yang masif dari jutaan kreator, memungkinkan kami membangun sistem yang saling terhubung secara mendalam untuk meningkatkan keseluruhan pengalaman. Seiring mesin kami semakin mahir mensimulasikan realitas, kami dapat terus memperbarui representasi yang digunakannya. Saat ini, kami fokus pada optimasi kinerja, namun dalam waktu dekat, sistem yang sama ini akan memungkinkan kami meningkatkan resolusi aset untuk perangkat keras masa depan sambil tetap mempertahankan niat artistik asli para kreator.
Kami sedang membangun platform yang tidak hanya menghormati niat artistik tersebut, tetapi juga dapat secara cerdas dan otomatis menyajikan kreasi mereka kepada pengguna mana pun di berbagai perangkat di mana pun Roblox tersedia. Kami tidak sabar untuk melihat apa yang akan dibangun oleh komunitas dengan platform ini.



