Laboratorium Delta Time dan Timestep Tetap Game

Bandingkan loop game delta variabel dan timestep tetap dengan spike frame berulang, gerakan simulasi, langkah pengejaran, dan selisih waktu yang terlihat.

Buat pola frame

Frame yang dirender per detik

Waktu tambahan pada frame spike

Ukuran langkah simulasi yang sama

Arena pengujian

Dua jam, satu objek bergerak

Batang menunjukkan hitch, garis mengikuti kedua posisi, dan jejak bawah mengisolasi selisih yang dapat disembunyikan nilai akhir.

Percobaan diperbarui

Buku gerak

Posisi terhadap waktu nyata yang berlalu. Garis putus-putus menandai langkah tetap yang sama.

Jalur delta variabelJalur timestep tetapSpike frame

Model variabel menerapkan kecepatan sekali dengan durasi frame saat ini. Model tetap mengakumulasi seluruh waktu nyata dan maju dalam langkah yang sama. Tidak ada jalur yang merupakan pengukuran performa.

Nilai kamu disimpan hanya di browser ini agar percobaan siap saat kamu kembali. Tidak ada data game atau telemetri yang dikirim.

Zoom 100%
Studio Utilitas

Ingin utilitas ini di situs Anda?

Sesuaikan warna dan mode gelap untuk WordPress, Notion, atau situs Anda sendiri.

Pertanyaan yang Sering Diajukan

Apa yang ditunjukkan laboratorium timestep tetap ini?

Laboratorium ini menjalankan objek bergerak yang sama melalui loop delta variabel dan akumulator timestep tetap. Spike frame yang berulang membuat waktu simulasi, selisih posisi, dan langkah pengejaran dapat dilihat tanpa menjalankan game engine.

Apa perbedaan delta variabel dan timestep tetap?

Model variabel maju sekali pada setiap frame yang dirender menggunakan durasi frame tersebut. Model tetap maju dalam langkah simulasi yang sama besar dan memakai akumulator untuk memproses langkah sesuai waktu nyata yang berlalu. Langkah tetap mengurangi ketergantungan simulasi pada frame rate, tetapi frame panjang dapat menambah pekerjaan pengejaran.

Apa arti input spike frame?

Input itu menambahkan milidetik ekstra ke setiap frame yang dipilih sebagai spike. Kolom frekuensi menentukan setiap berapa frame spike muncul, sehingga kamu dapat membuat pola hitch yang berulang dan dapat dibandingkan.

Apa yang berubah saat delta dibatasi?

Batas mengurangi delta yang dipakai model variabel ketika frame melebihi nilai maksimum. Ini dapat mencegah lompatan yang terlalu besar, tetapi waktu simulasi model itu tertinggal dari waktu nyata. Akumulator tetap tetap menghitung seluruh durasi frame.

Apakah ini profiler atau pengganti playtest?

Bukan. Ini laboratorium pembelajaran dan desain deterministik dengan angka yang ditentukan. Laboratorium ini tidak mengukur perangkat, mendiagnosis engine, memodelkan biaya render, atau membuktikan bahwa satu loop cocok untuk semua game.

# Pahami jam di dalam loop game

Setiap frame yang dirender memberikan waktu berlalu yang baru kepada game. Dalam loop delta variabel, gerakan biasanya diperbarui sebagai position += velocity × frameTime. Saat frame stabil, kecepatan rata-rata mendekati nilai yang diinginkan, tetapi satu pembaruan bisa sebesar frame yang memicunya. Hitch bukan sekadar jeda visual: hitch mengubah jumlah waktu game yang dikonsumsi oleh pembaruan itu.

# Bandingkan integrasi variabel dengan akumulator tetap

Loop timestep tetap menambahkan durasi setiap frame ke akumulator, lalu berulang kali memakai langkah seperti 16,667 ms. Simulasi menerima pembaruan yang sama besar, sementara renderer dapat berjalan dengan ritme berbeda. Sisa pecahan disimpan untuk frame berikutnya. Saat frame panjang muncul, loop tetap menjalankan beberapa pembaruan kecil untuk menghitung waktu yang berlalu. Ukuran langkah tetap stabil, tetapi dapat muncul lonjakan kerja pengejaran.
Situasi Jalur delta variabel Jalur timestep tetap Keputusan yang dipertimbangkan
Render stabilSatu pembaruan memakai setiap durasi normalLangkah yang sama memakai waktu terakumulasiKedua jalur seharusnya mengikuti gerakan yang sama.
Frame panjangSatu pembaruan besar dapat menggerakkan objek terlalu jauhBeberapa pembaruan tetap mengejar waktuBaca selisih bersama jumlah langkah pengejaran.
Frame rate berbedaUkuran pembaruan berubah mengikuti frame rateLangkah simulasi tetap samaLangkah tetap mengurangi ketergantungan pada render.
Batas deltaWaktu di atas batas diabaikanAkumulator menerima seluruh durasi frameBatasi hanya jika kehilangan waktu dapat diterima.

# Lihat dampak sebenarnya dari spike frame

Pada 60 frame per detik, frame normal berdurasi sekitar 16,667 ms. Dengan spike tambahan 80 ms, satu frame menjadi sekitar 96,667 ms. Model variabel memakai seluruh durasi itu dalam satu pembaruan. Model tetap memakai kira-kira enam langkah 16,667 ms. Total waktu berlalu bisa sama, tetapi jalur yang ditempuh simulasi berbeda.

# Baca selisih posisi bersama pengejaran

Selisih posisi adalah jalur variabel dikurangi jalur tetap. Ini menunjukkan seberapa jauh kebijakan integrasi terpisah, bukan model mana yang otomatis benar. Jumlah pengejaran menunjukkan pekerjaan tetap yang diperlukan dalam satu frame render. Selisih besar mengarah pada perbedaan gerak yang terlihat; banyak langkah mengarah pada kemungkinan masalah anggaran CPU. Keduanya terkait, tetapi bukan diagnosis yang sama.

# Perlakukan pembatasan delta sebagai kebijakan

Batas dapat mencegah tab yang dijeda, breakpoint, atau hitch berat membuat karakter berpindah jauh atau tubuh fisik menembus geometri. Konsekuensinya, jam variabel tertinggal dari waktu nyata. Jika game harus mempertahankan waktu, gunakan akumulator tetap atau kebijakan pemulihan lain. Jika game harus membatasi lompatan dan tetap responsif, batas mungkin sesuai, tetapi waktu yang hilang harus disengaja.

# Pilih loop berdasarkan tugas yang dilindunginya

Tugas loop game Pilihan awal yang berguna Alasan
Fisika, tabrakan, atau gameplay deterministikTimestep tetapLangkah yang sama membuat simulasi kurang bergantung pada ritme render.
Gerakan visual sederhana tanpa state terakumulasiDelta variabelPembaruan kecil dan biasanya tidak memerlukan antrean pengejaran.
Simulasi gameplay dengan render halusUpdate tetap dengan interpolasiSimulasi mempertahankan langkah sementara tampilan menyembunyikan pecahan gerak.
Pemulihan setelah berhenti beratKebijakan pengejaran terbatasCegah satu frame buruk menjadi pekerjaan simulasi tanpa batas.

# Gunakan alur penyetelan yang dapat diulang

Mulai tanpa spike dan pastikan kedua jalur cocok. Tambahkan hitch berulang, lalu ubah frekuensinya untuk melihat apakah kesalahan visual bertambah atau stabil. Sesuaikan langkah tetap dan perhatikan jumlah pengejaran sebelum mengubah kecepatan. Terakhir, aktifkan batas dan bandingkan waktu simulasi variabel dengan waktu nyata. Urutan ini memisahkan penyebab selisih dari kebijakan yang digunakan untuk menahannya.
Hal yang tidak dapat dibuktikan percobaan ini
Laboratorium memakai durasi frame yang ditentukan dan kecepatan konstan, jadi ia menjelaskan perilaku waktu, bukan mengukur perangkat atau memvalidasi engine. Fisika nyata, pengambilan input, jaringan, interpolasi, dan anggaran frame dapat mengubah desain terbaik. Gunakan hasilnya sebagai hipotesis lalu periksa hipotesis itu di game yang sebenarnya.