Delta Time: Agar Kecepatan Game Stabil di Semua FPS
Pelajari cara delta time dan fixed timestep menjaga gerakan dan fisika game tetap konsisten di 30, 60, atau 144 FPS, lengkap dengan tips Unity dan Godot.

Pernahkah kamu memainkan game lama di PC yang cepat lalu melihat semuanya bergerak seperti dipercepat? Hal itu terjadi ketika gerakan diikat pada frame rate. Game modern menghindarinya dengan satu ide sederhana: delta time. Berikut penjelasan apa itu delta time, mengapa penting, dan cara memakainya tanpa terjebak kesalahan umum.
Masalahnya: kecepatan terikat pada frame
Bayangkan karakter yang bergerak 5 piksel setiap frame. Pada 30 FPS, ia menempuh 150 piksel per detik. Pada 144 FPS, ia menempuh 720 piksel per detik, hampir lima kali lebih cepat. Kode yang sama kini terasa berbeda di setiap perangkat, sehingga merusak tingkat kesulitan, keadilan di mode multiplayer, dan speedrun.
Buku gratis Game Programming Patterns karya Robert Nystrom menyebut ini sebagai tantangan utama game loop: game harus berjalan dengan kecepatan konsisten walaupun perangkat kerasnya berbeda-beda.
Apa sebenarnya delta time itu
Delta time (sering ditulis dt atau Δt) adalah waktu yang berlalu sejak frame sebelumnya, biasanya dalam detik. Alih-alih bergerak "5 piksel per frame", karakter bergerak "300 piksel per detik" yang dikalikan dengan delta time:
position += speed * deltaTimePada 60 FPS, delta time sekitar 0,0167 detik, sehingga karakter bergerak 5 piksel per frame. Pada 30 FPS, nilainya sekitar 0,033 detik, sehingga karakter bergerak 10 piksel per frame. Hasilnya sama: 300 piksel setiap detik.
Letaknya di engine populer
Unity: Time.deltaTime di dalam
Update().Godot: parameter
deltapada_process(delta)dan_physics_process(delta), seperti dijelaskan di dokumentasi Godot tentang idle dan physics processing.Unreal Engine: nilai
DeltaSecondsyang dikirim ke fungsiTickmilik actor.
Timestep variabel vs timestep tetap
Delta time cocok untuk visual dan gerakan sederhana, tetapi fisika butuh stabilitas. Pengecekan tabrakan yang berjalan dengan langkah waktu sangat besar setelah lag bisa membuat objek cepat menembus dinding. Karena itu, sebagian besar engine menjalankan fisika dengan fixed timestep atau langkah waktu tetap.
Unity menjalankan FixedUpdate dengan interval bawaan 0,02 detik, atau 50 kali per detik.
Godot menjalankan fisika 60 tick per detik secara bawaan.
Artikel klasik Glenn Fiedler, Fix Your Timestep!, menjelaskan teknik standarnya: kumpulkan waktu nyata ke dalam akumulator, jalankan fisika dalam potongan waktu tetap, lalu interpolasikan dua state fisika terakhir agar tampilan tetap mulus.
Lima tips menghindari bug delta time
Gunakan update yang tepat. Baca input dan animasikan visual di update biasa. Berikan gaya dan gerakkan objek fisika di fixed update.
Batasi nilai delta yang terlalu besar. Setelah jeda, loading yang tersendat, atau breakpoint, delta time bisa melonjak hingga satu detik lebih. Beri batas (misalnya 0,1 detik) agar objek tidak tiba-tiba berpindah tempat.
Jangan mengalikan dua kali. Jika fungsi engine sudah memperhitungkan waktu, seperti banyak API kecepatan fisika, mengalikannya lagi dengan delta time membuat gerakan jadi sangat lambat.
Hati-hati saat smoothing. Pola populer
lerp(current, target, 0.1)di setiap frame tetap bergantung pada frame rate. Versi yang tidak bergantung frame memakai peluruhan eksponensial:lerp(current, target, 1 - exp(-sharpness * dt)).Uji di berbagai frame rate. Kunci game di 30, 60, dan tanpa batas, lalu bandingkan tinggi lompatan dan jarak gerak. Jika berbeda, masih ada yang bergantung pada frame.
Timing yang baik tidak terlihat. Pemain baru menyadarinya ketika lompatan yang sama terasa berbeda di dua perangkat.
Mengapa ini penting untuk game feel
Timing yang konsisten adalah fondasi bagi semua hal yang membuat kontrol terasa memuaskan. Efek seperti hit stop, coyote time, dan input buffering bergantung pada pengukuran waktu yang akurat. Baca panduan kami tentang game feel dan efek-efek kecil yang membuat game terasa memuaskan, lalu lihat cara kami menangani fisika lembut di devlog Pulau Mochi.
Jelajahi lebih lanjut
Setelah timing-mu solid, ujikan ke pemain sungguhan. Tips playtest kami membantu menemukan gerakan yang terasa janggal. Kamu juga bisa menjelajahi game dan alat yang kami buat di Ryuartistry.