Coyote Time & Input Buffering: Lompatan Game Lebih Adil
Coyote time dan input buffering membuat lompatan di game platformer terasa adil. Pelajari cara kerja trik game feel ini, nilai waktunya, dan cara membuatnya.

Pernahkah kamu menekan tombol lompat, yakin masih berada di tepi platform, tetapi karakter tetap jatuh? Pemain mungkin menyalahkan diri sendiri sebentar, lalu mulai menyalahkan game-nya. Ada dua trik kecil yang tak terlihat untuk mencegah rasa kesal itu: coyote time dan input buffering. Kebanyakan pemain tidak menyadarinya, tetapi langsung merasakan bedanya.
Mengapa kontrol yang presisi bisa terasa tidak adil
Game memeriksa input frame demi frame, sering kali 60 kali per detik. Reaksi manusia tidak sepresisi itu. Jika pemain menekan lompat satu atau dua frame setelah meninggalkan platform, kode akan menganggap "karakter sedang di udara, tidak bisa melompat", padahal niat pemain sudah jelas. Secara teknis game-nya benar, tetapi secara perasaan salah.
Mekanik pemaaf (forgiveness mechanics) menutup celah antara maksud pemain dan apa yang dibaca kode. Mekanik ini adalah bagian inti dari game feel, efek kecil yang membuat game terasa memuaskan.
Apa itu coyote time?
Namanya diambil dari kartun klasik Wile E. Coyote, saat si coyote berlari melewati tebing dan melayang sejenak sebelum jatuh. Dalam game, coyote time memberi pemain jendela waktu singkat untuk tetap bisa melompat setelah berjalan melewati tepi platform.
Pemain melihat lompatan yang adil. Di balik layar, game hanya mengingat kapan terakhir kali karakter menyentuh tanah.
Apa itu input buffering?
Input buffering menyelesaikan masalah sebaliknya. Jika pemain menekan lompat sedikit sebelum mendarat, game menyimpan tekanan tombol itu sebentar dan menjalankan lompatan tepat pada frame pertama karakter menyentuh tanah. Tanpa fitur ini, tekanan yang terlalu awal diabaikan begitu saja dan game terasa kurang responsif.
Contoh terkenal: Celeste
Maddy Thorson, salah satu pengembang Celeste, pernah membagikan daftar bantuan tersembunyi dalam kontrol game tersebut. Seperti dirangkum GIGAZINE, daftar itu mencakup coyote time, jump buffering, gravitasi yang dibagi dua di puncak lompatan saat tombol ditahan, serta koreksi sudut yang menggeser pemain melewati tepian. Tujuannya jelas: memperlebar jendela waktu dan posisi agar game terasa lebih enak dikendalikan.
Cara membuat keduanya
Kamu hanya butuh dua timer. Kurangi nilainya dengan delta time agar perilakunya sama di frame rate berapa pun, seperti dijelaskan dalam panduan kami tentang delta time.
COYOTE_TIME = 0.1 // detik
JUMP_BUFFER = 0.1 // detik
update(dt):
if is_on_floor: coyote_timer = COYOTE_TIME
else: coyote_timer -= dt
if jump_pressed: buffer_timer = JUMP_BUFFER
else: buffer_timer -= dt
if buffer_timer > 0 and coyote_timer > 0:
velocity.y = JUMP_FORCE
buffer_timer = 0
coyote_timer = 0 // cegah lompat gandaGame engine membuatnya mudah. Di Godot kamu bisa membaca is_on_floor() dari CharacterBody2D, sedangkan di Unity kamu bisa mengurangi timer dengan Time.deltaTime.
Tips menyetel nilainya
Mulai dari sekitar 0,1 detik. Kira-kira 5 sampai 8 frame pada 60 FPS adalah titik awal yang umum. Naikkan untuk game kasual dan turunkan untuk tantangan presisi.
Reset coyote time setelah melompat. Jika tidak, pemain bisa melompat lagi di udara, dan itu terasa seperti bug.
Jaga agar tidak terlihat. Kalau pemain bisa melihat triknya, jendelanya terlalu lebar. Harus terasa alami, bukan seperti melayang.
Terapkan ide yang sama di tempat lain. Buffer juga serangan, dash, dan wall jump. Setiap aksi dengan timing ketat akan terbantu.
Uji dengan pemain sungguhan. Perhatikan di mana orang gagal melompat padahal yakin berhasil. Tips playtest kami membantumu mendapatkan masukan yang jujur.
Pemain mengingat bagaimana game membuat mereka merasa, bukan seberapa ketat pengecekan tabrakannya.
Jelajahi lebih lanjut
Kontrol yang pemaaf sangat cocok dipadukan dengan tata letak level yang cerdas. Baca cara mengajari pemain tanpa tutorial, atau jelajahi game yang kami buat di Ryuartistry.