Porsi besar pemain ada di perangkat keras sederhana (laptop, handheld seperti Steam Deck, GPU lebih tua), dan lingkungan yang hanya jalan di rig kelas atas menyingkirkan mereka. Kabar baiknya: kebanyakan performa lingkungan hilang di beberapa tempat yang bisa ditebak (overdraw, draw call, dedaunan padat, tekstur kegedean) dan direbut kembali dengan beberapa kebiasaan disiplin. Ini playbook praktis untuk mencapai anggaran frame rendah tanpa menjagal artmu, plus metode kamera tetap untuk menangkap regresi sebelum dikirim.
Ini jenis scene termahal untuk dijalankan: lapisan daun transparan, ribuan instance, overdraw berat. Ini juga tempat kemenangan terbesar dan termudah hidup begitu kamu tahu ke mana waktu frame pergi.
Tetapkan anggaran dulu, dalam milidetik
Pilih waktu frame target di perangkat keras terlemah yang kamu dukung (16,6 ms untuk 60 fps, 33,3 ms untuk 30) dan perlakukan sebagai batas keras. "Optimasi nanti" berarti "bangun ulang nanti"; menganggarkan di depan jauh lebih murah.
Optimasi tanpa angka cuma perasaan. Putuskan frame yang kamu bidik di perangkat keras lantaimu (Steam Deck, laptop menengah, apa pun spec minimalmu), lalu ubah ke milidetik, karena milidetik bertambah dan persentase berbohong. Lalu pegang tiap scene ke situ saat membangun, bukan di akhir. Tim yang mengirim mulus di low-end tak mengoptimasi lebih keras; mereka cuma tak pernah membiarkan scene meledakkan anggaran sejak awal, yang biayanya pecahan dari mencakar performa kembali setelah art selesai dan semua bergantung padanya.
Ketahui ke mana waktu pergi
Waktu frame lingkungan biasanya dilahap overdraw (dedaunan transparan), terlalu banyak draw call (objek tak ter-batch), tekstur kegedean (bandwidth memori), dan pencahayaan/bayangan mahal. Profil untuk menemukan bottleneck-MU sebelum mengoptimasi buta.
Menebak optimasi memboroskan hari. Buka profiler, temukan apakah kamu CPU-bound (biasanya draw call) atau GPU-bound (biasanya overdraw, shading, atau bandwidth), dan serang bottleneck sebenarnya. Meski begitu, lingkungan gagal dengan cara yang bisa ditebak, dan hampir selalu salah satu dari: overdraw dari dedaunan transparan berlapis; draw call dari ribuan objek tak ter-instance; memori/bandwidth tekstur dari tekstur kegedean atau terlalu banyak; dan biaya pencahayaan/bayangan dari terlalu banyak lampu dinamis atau shadow map resolusi tinggi. Sisa playbook ini menyusuri itu dalam urutan dampak biasa.
Dedaunan dan overdraw: penjahat langganan
Kartu dedaunan transparan bertindihan dan menshade ulang piksel yang sama berkali-kali: itu overdraw, dan itu pembunuh nomor satu low-end. Kurangi tindihan kartu daun, gunakan LOD agresif, dan cull dedaunan jauh dengan keras.
Vegetasi padat adalah tempat kebanyakan anggaran frame low-end mati, karena tiap kartu daun semi-transparan memaksa GPU menshade piksel yang lalu akan digambarnya ulang di atasnya, kadang sepuluh-plus kali per piksel di kanopi tebal. Perbaikannya: gunakan kartu daun lebih ketat dengan lebih sedikit area transparan terbuang, jatuh cepat ke LOD lebih murah saat dedaunan mundur, dan setel jarak cull keras agar rumput dan semak jauh cukup berhenti menggambar. Di handheld, beda antara "rumput sampai cakrawala" dan "rumput di-cull di jarak masuk akal" bisa jadi seluruh beda antara 25 dan 40 fps. Bake dedaunan ke instance native agar GPU bisa mem-batch-nya, dan biarkan instancing engine mengerjakan tugas berat.
Draw call dan instancing
Tiap objek unik yang dikirim terpisah adalah satu draw call, dan ribuan darinya menghentak CPU. Instance mesh berulang agar ratusan salinan berbiaya satu call; gabungkan clutter statis di mana masuk akal.
Kalau kamu CPU-bound, draw call biasanya sebabnya. Tiap hal berbeda yang kamu minta engine render membawa overhead, dan scene yang ditata tangan dengan seribu batu dan semak individual menenggelamkan CPU dalam biaya pengiriman. Instancing adalah obatnya: mesh berulang yang digambar sebagai instance meruntuhkan ratusan salinan jadi satu call, yang persis mengapa alat scatter yang bake ke instance native engine penting untuk performa: scatter yang tampak seperti seribu tanaman berbiaya seperti segenggam. Di mana instancing tak berlaku, menggabungkan clutter statis kecil ke mesh gabungan juga memotong jumlah call. Ini satu tempat di mana alur kerja seperti [Numivo] (/features), yaitu lukis kepadatan lalu bake ke mesh ter-instance biasa, berbayar langsung di perangkat keras lemah, karena outputnya adalah benda murah yang diinginkan GPU.
Tak setiap scene harus maksimal padat. Ruang tenang dan terbuka berbiaya nyaris nol dan memberi baik perangkat keras maupun pemain istirahat; meritmekan kepadatanmu sendiri adalah optimasi.
LOD, jarak cull, dan ukuran tekstur
Beri tiap mesh signifikan LOD agar salinan jauh murah, setel jarak cull agar objek mungil-di-layar berhenti menggambar, dan batasi resolusi tekstur pada apa yang kamera resolusi di jarak. Ketiga ini merebut banyak untuk sedikit usaha.
Tiga kebiasaan tak glamor mengangkut sebagian besar anggaran sisa. LOD: mesh jauh harus bertukar ke versi poligon lebih rendah, karena detail penuh di pohon 20 piksel itu terbuang. Jarak cull: apa pun yang terlalu kecil di layar untuk diperhatikan harus berhenti render sama sekali (prop kecil, kerikil, rumput halus), disetel per jenis objek. Ukuran tekstur: batasi resolusi pada apa yang sungguh bisa diselesaikan di jarak pemain (lihat logika kerapatan teksel, benda jauh butuh jauh lebih sedikit teksel), karena tekstur kegedean membakar bandwidth memori yang GPU low-end tak bisa luangkan. Tak satu pun dari ini melukai tampilan bila disetel benar; mereka cuma menghentikanmu membayar detail yang tak dilihat siapa pun.
Temukan regresi dengan kamera tetap
Definisikan beberapa "kamera anggaran" (vista terburukmu, ruang tempur terpadat, interior tersibuk) dan cek waktu frame mereka tiap build. Flythrough acak menyembunyikan regresi; pemandangan brutal yang sama tiap kali menyingkapnya.
Performa membusuk diam-diam saat konten ditambah, dan kamu takkan menangkapnya dengan berkeliaran di level santai. Sebaliknya, patok segenggam pemandangan terburukmu (pandang hutan padat, pasar penuh sesak, pertarungan berat efek), dan ukur persis itu, tiap build, terhadap anggaran. Saat sebuah angka jadi merah, kamu tahu perubahan baru menyebabkannya, dan kira-kira di mana. Ini beda antara tim yang menemukan krisis performa di akhir dan yang memperbaiki regresi 2 ms di hari ia muncul. Di target low-end, jalankan salah satu kamera itu di Steam Deck sungguhan atau mesin spec minimal, bukan cuma perkiraan editor.
Angka lapangan yang layak dicuri
- Anggaran frame: 16,6 ms (60 fps) / 33,3 ms (30 fps); setel di perangkat keras lantaimu
- Pembunuh low-end langganan: overdraw dedaunan; kartu lebih ketat, LOD cepat, cull keras
- Mesh berulang → instance: ratusan salinan untuk satu draw call
- Batasi ukuran tekstur pada detail yang bisa diresolusi kamera; yang jauh butuh jauh lebih sedikit teksel
- Tangkap regresi dengan kamera anggaran tetap, diukur tiap build
Mini-FAQ
Apakah aku harus memilih antara enak dilihat dan low-end? Kurang dari yang kamu kira. Kebanyakan biaya low-end adalah pemborosan (overdraw, call tak ter-batch, tekstur kegedean), bukan kualitas terlihat. Potong pemborosan dan art bertahan; pemain di perangkat keras lemah jarang merindukan detail yang kamu bayar tapi tak bisa mereka lihat.
Apakah pencahayaan dinamis terlarang di Steam Deck? Tak terlarang, tapi dianggarkan. Batasi jumlah lampu dinamis dan pelempar bayangan, bersandar pada pencahayaan baked di mana scene statis, dan cadangkan biaya dinamis untuk yang penting. Itu baris anggaran, bukan larangan.
Perubahan tunggal apa yang paling membantu di handheld? Biasanya menjinakkan dedaunan: kartu daun lebih ketat, LOD agresif, dan jarak cull keras pada rumput dan semak. Overdraw adalah bottleneck handheld paling umum, dan vegetasi adalah tempat overdraw hidup.
Seberapa awal aku harus tes di perangkat keras target? Sejak vertical slice pertama. Perkiraan editor di mesin dev bertenaga menyembunyikan persis masalah yang akan dimiliki handheld. Dapatkan build di perangkat spec minimal sungguhan lebih awal dan jaga dalam loop.
Jalan di kentang bukan tentang membuat gamemu jelek; ini tentang tak membayar detail yang tak bisa dilihat pemain. Anggarkan dalam milidetik, bunuh overdraw, instance yang berulang, cull yang tak terlihat, dan awasi kamera terburukmu tiap build, dan lingkunganmu akan tampak hebat dan jalan untuk audiens besar yang tak ada di rig kelas atas.

