Mengoptimalkan pengalaman Anda adalah proses mengonfigurasi aset dan pengaturan Studio Anda untuk menjaga frame rate dan tingkat kinerja tetap tinggi untuk perangkat dengan keterbatasan memori dan unit pemrosesan grafis (GPU). Proses ini memastikan bahwa hampir setiap pengguna memiliki pengalaman gameplay dan visual yang sama saat mereka melihat lingkungan Anda.
Dengan menggunakan file Seni Lingkungan - Mengoptimalkan .rbxl sebagai referensi, bagian dari kurikulum seni lingkungan ini menunjukkan kepada Anda cara meninjau dan mengonfigurasi file tempat Anda untuk grafik yang optimal, termasuk panduan tentang:
- Meninjau parameter fisika dan rendering setiap aset untuk memastikan mereka menjaga kinerja memori dan mesin.
- Menghilangkan tekstur, geometri, atau transparansi berlebih yang tidak perlu meningkatkan jumlah perhitungan yang harus dilakukan oleh Roblox Engine untuk merender aset Anda.
Sementara Roblox Engine menangani sebagian besar pekerjaan optimasi untuk Anda, Anda dapat membantu usaha optimasi ini dengan memanfaatkan Microprofiler untuk melihat di mana diperlukan lebih banyak waktu untuk merender frame tertentu. Menggunakan informasi ini, Anda dapat membuat keputusan yang tepat tentang aset mana yang perlu mendapat perhatian Anda terkait parameter atau konten berlebih. Analisis Scene adalah alat kuat lainnya untuk memeriksa penggunaan sumber daya.

Tinjau parameter fisika dan render
Dalam Menyusun perpustakaan aset, Anda belajar betapa pentingnya mengatur parameter fisika dan rendering yang memungkinkan aset Anda mempertahankan kualitas visual tinggi di seluruh perangkat dengan keterbatasan memori dan GPU. Namun, adalah hal yang umum saat Anda membangun lingkungan Anda untuk menyesuaikan parameter ini sesuai dengan posisi kontekstual aset dan tujuannya dalam pengalaman Anda. Sebagai contoh, banyak tanaman dalam lingkungan contoh laser tag akhir menghasilkan bayangan meskipun ada biaya kinerja karena menambah realisme lingkungan.
Ketika Anda memodifikasi parameter fisika dan rendering, berguna untuk meninjau semua parameter menjelang akhir proses pengembangan untuk melihat di mana Anda dapat mengoptimalkan parameter sambil mempertahankan tujuan estetika dan persyaratan gameplay. Sebagai ilustrasi, Anda dapat menonaktifkan properti BasePart.CastShadow untuk tanaman di dekat tepi area gameplay untuk menghemat kinerja tanpa mengganggu gameplay atau pengalaman visual pengguna.


Cull konten yang tidak penting
Setelah Anda meninjau parameter fisika dan rendering Anda, Anda dapat meninjau aset itu sendiri untuk melihat di mana Anda dapat menghilangkan konten yang tidak penting dari pengalaman yang tidak memengaruhi gameplay Anda, seperti tekstur identik dengan ID aset yang berbeda, geometri kompleks dengan banyak vertex, atau transparansi yang bertumpuk tergantung pada sudut pandang kamera. Bagian berikutnya merinci apa yang dapat Anda lakukan untuk meninjau konten ini, dan mengapa ini membantu usaha optimasi.
Hapus tekstur duplikat
Saat Anda beralih antara mengembangkan aset dan membangun lingkungan Anda, adalah hal yang umum untuk mengulang mesh atau tekstur saat Anda menemukan apa yang diperlukan untuk tujuan estetika atau persyaratan gameplay Anda. Jika Anda tidak mengubah aset Anda menjadi paket, saat Anda mengimpor iterasi ini ke dalam Studio, Anda membuat ID aset unik yang perlu dirujuk oleh Roblox Engine saat merender aset Anda dalam lingkungan.
Sebagai contoh, jika Anda mengimpor dua mesh hydrant api berikut ke dalam Studio secara terpisah, meskipun penampilannya persis sama, Roblox Engine memperlakukannya sebagai dua objek dengan ID aset unik. Semakin banyak panggilan unik yang perlu dilakukan mesin, semakin besar dampaknya pada memori dan kinerja. Untuk alasan ini, penting untuk memastikan ketika Anda menggunakan kembali suatu aset berkali-kali, setiap instance dari aset itu menggunakan ID aset yang sama sehingga mesin hanya perlu melakukan satu panggilan untuk merendernya berulang kali.

Optimalkan geometri
Jika Anda merasa perlu melakukan lebih banyak penyesuaian untuk meningkatkan frame rate di seluruh perangkat, berguna untuk melihat di mana Anda dapat mengoptimalkan geometri Anda dengan cara:
- Menggabungkan kelompok mesh menjadi satu aset.
- Mengurangi jumlah polygon dari aset yang memiliki kompleksitas geometris.
Mengembangkan teknik pertama ini, setiap aset unik dalam pengalaman Anda mewakili pemanggilan gambar pada GPU yang mengirimkan sinyal ke GPU untuk memanggil informasi sehingga Roblox Engine dapat merender aset dengan benar. Semakin banyak aset unik yang Anda miliki, semakin banyak panggilan gambar yang perlu dilakukan sistem. Oleh karena itu, jika Anda memiliki sekelompok mesh yang membentuk komponen yang lebih besar dalam pengalaman Anda, Anda dapat mengelompokkannya bersama di alat pemodelan pihak ketiga untuk mengurangi kebutuhan panggilan gambar yang banyak.
Untuk mengilustrasikan poin ini, lingkungan laser tag contoh akhir mengelompokkan beberapa bagian dan mesh bersama-sama untuk menciptakan menara besar di luar gedung. Jika Anda menggabungkan semua komponen individu ini, Anda dapat menjadikannya sebagai satu aset dengan hanya satu ID aset, dan mengurangi jumlah panggilan gambar dari 8 menjadi 1. Namun, penting untuk diingat bahwa teknik ini menghapus kemampuan Anda untuk mengubah karakteristik visual dan fisik masing-masing komponen secara bebas, seperti posisinya atau materialnya.
Sebagai contoh, dalam gambar berikut, menara kiri tetap terdiri dari beberapa aset di bawah objek Model, dan menara kanan adalah satu aset tunggal. Anda dapat memodifikasi setiap komponen dari menara kiri secara individual, tetapi ketika Anda memodifikasi menara kanan, seperti mengubah warnanya menjadi hitam, itu memengaruhi keseluruhan objek. Itulah mengapa penting untuk hanya mempertimbangkan teknik ini menjelang akhir pengembangan lingkungan Anda ketika Anda tahu di mana Anda dapat meningkatkan kinerja tanpa memengaruhi tujuan estetika Anda.

Mengembangkan teknik kedua ini, aset dengan kompleksitas geometris memiliki lebih banyak polygon, artinya mereka memiliki lebih banyak vertex yang perlu dihitung oleh mesin saat merender penampilan visualnya. Ini berarti bahwa aset dengan kurang kompleksitas dan ketelitian lebih murah untuk dirender, yang mengarah pada peningkatan baik kinerja maupun memori.
Hapus transparansi yang bertumpuk
Untuk memberikan rasa realisme pada lingkungan, lingkungan laser tag contoh akhir mencakup banyak mesh dengan berbagai tingkat transparansi, seperti tanaman di ruang luar, kaca pada papan tanda futuristik atau pagar pot. Ketika kamera melihat beberapa objek semi-transparan yang berada di depan atau di belakang satu sama lain, Roblox Engine harus merender piksel yang tumpang tindih beberapa kali untuk mempertimbangkan area transparan tersebut. Proses ini disebut overdrawing transparansi tinggi, dan ini berdampak signifikan pada kinerja.
Sebagai contoh, pertimbangkan tampilan berikut dari sebuah pot dalam lingkungan contoh. Mesin harus merender area transparan dari daun antara tanaman terdekat dengan kamera hingga tanaman terdekat dengan area luar dalam lapisan, setara dengan ratusan ribu piksel yang ter-overdraw. Untuk mengurangi sebagian dampak ini, penting untuk meninjau tata letak semua objek semi-transparan di lingkungan Anda, dan memastikan tidak ada terlalu banyak tempat di mana ada banyak lapisan tumpang tindih, terutama di area besar layar.


Ketika Anda selesai meninjau semua konten Anda untuk memastikan semuanya optimal di seluruh perangkat, pengalaman Anda kini siap untuk dipublikasikan!