Apa itu "centang" dalam konteks pengembangan game?

12

Ok jadi ini pertanyaan tingkat pemula, tapi saya perlu tahu ini, apa yang dimaksud dengan istilah "centang" dalam konteks pengembangan game? Apakah sama dengan FPS? Terima kasih!

pengguna3843164
sumber
1
Dari mana Anda mendapatkan terminologi ini dari BTW? Beberapa orang hanya menyebutnya centang karena physics engine update frameterlalu lama untuk diingat / dipahami oleh pemain biasa.
Bálint

Jawaban:

18

Centang adalah satuan ukuran untuk waktu, khususnya mengacu pada satu contoh tindakan berulang (biasanya aksi luas) dalam permainan, atau periode waktu yang dikonsumsi tindakan.

Kutu diulangi dan (kebanyakan) teratur; istilah tersebut berasal dari salah satu bunyi yang dihasilkan oleh jam ("tick" dan "tock").

Biasanya centang adalah iterasi dari beberapa loop, seperti loop logika permainan utama. Misalnya, seseorang dapat mengatakan bahwa logika permainan "kutu" sekali bingkai, atau bahwa "selama kutu, posisi karakter diperbarui."

Namun itu juga bisa merujuk pada periode yang lebih rinci; orang dapat mengatakan bahwa "centang AI dalam permainan terbatas pada waktu pemrosesan 5 ms."

FPS adalah ukuran berapa banyak frame (biasanya render frame) yang diproses game dalam sedetik. Kutu dan FPS tidak selalu terkait, namun kadang-kadang orang akan menyebut eksekusi tunggal dari loop logika game sebagai "kerangka logika," dalam hal ini tingkat (logika) FPS adalah jumlah kutu yang diproses per detik. Ini sangat umum untuk game yang menerapkan frame rate tetap untuk logika game atau fisika untuk alasan apa pun.


sumber
2

Sebagian besar game diimplementasikan dalam satu lingkaran. Sesuatu seperti

def main
 setup(a, bunch, of, stuff)
 load(a, bunch, of, stuff)
 while true do {
   // <- A tick starts here
   read(a, bunch, of, inputs)
   call(a, bunch, of, stuff)
   do(a, bunch, of, stuff)
   update(a, bunch, of, stuff)
   // <- A tick ends here
 }
 clean(a, bunch, of, stuff)
 save(a, bunch, of, stuff)
end

Ini adalah cara yang cukup standar dalam melakukan sesuatu, dan sementara rendering dan elemen UI dapat ditangani dalam utas yang berbeda, logika permainan yang sebenarnya (tekan dengan gerakkan kapal Anda ke depan), terjadi di dalam centang ini.

Ini juga disebut "bingkai" dan biasanya direferensikan sebagai Frame rate (jangan dikacaukan dengan hal-hal grafis). Centang telah menjadi sinonim populer untuk membantu membedakan keduanya.

Sebagai seorang programmer, tujuan Anda adalah memiliki laju (centang) frame yang konstan, stabil, apa pun yang terjadi. Hal ini membuat respons dalam gim Anda lancar dan rasional, sementara pada saat yang sama memungkinkan suatu model (pemrograman bukan grafik) untuk memproses berbagai hal dengan cara yang ramah komputer. Waktu centang tidak konstan di seluruh permainan dan tidak ada angka ajaib. Beberapa game 100 Frame per detik, lainnya 1 tick setiap 3 detik.

kapas
sumber
1
Penting untuk dicatat bahwa tidak semua game memiliki tingkat centang statis. Screeps, dan Hawa online keduanya mendukung tingkat centang variabel. Minecraft seharusnya memiliki tingkat kutu yang stabil tetapi biasanya tidak mencapainya, dan menanganinya dengan baik. Dwarf Fortress memiliki frame rate statis dan payah ketika tidak bisa mengimbangi, tetapi masih berfungsi.
coteyr
Saya pikir Anda mencampur istilah "bingkai" dan "centang" di sini sedikit terlalu banyak. Kutu juga dapat menjangkau beberapa frame (atau memperbarui siklus).
Tyyppi_77
1

"Centang" dapat merujuk pada dua hal yang berbeda. Itu bisa merujuk ke tanda centang bingkai seperti yang Anda katakan semua grafik yang terlihat di layar diperbarui. Namun, istilah "tick" juga dapat merujuk ke tick loop game. Jenis centang itu adalah tempat kode Anda dieksekusi. Biasanya kutu Anda berada dalam konteks loop dari kutu berulang yang sama yang akan berlanjut sampai gim berhenti.

Freddy
sumber
1

Tick ​​biasanya mengacu pada satu iterasi dari loop game di mana semua logika dihitung, sehingga game umumnya memiliki banyak ticks per detik.

Namun, banyak game menjalankan grafik dan loop game pada utas yang sama karena grafik biasanya tidak butuh waktu lama untuk ditampilkan sehingga logika terputus, atau sebaliknya (meskipun pengembang menempatkan pemeriksaan untuk situasi seperti itu, seperti mengambil perbedaan waktu antara frame terakhir dan saat ini dan menyesuaikan laju pergerakan sesuai).

FPS adalah singkatan dari F rames P er S econd, jadi untuk banyak permainan, ya, secara teknis, setiap frame adalah salah satu centang.

StrongJoshua
sumber
Jadi saya bisa menggunakan kedua istilah secara bergantian?
user3843164
2
Saya tidak akan. Saya akan menggunakan "FPS" ketika merujuk ke grafik, dan "ticks" ketika mengacu pada logika, karena beberapa permainan, terutama yang dengan grafik yang intens, cenderung memiliki dua loop: satu untuk grafik dan satu untuk logika.
StrongJoshua
Kutu bukanlah utas.
@ JoshPetrie Oooh, saya melihat kesalahan saya, terima kasih telah menunjukkannya. Sudah diperbaiki sekarang.
StrongJoshua
1
Game umumnya memiliki banyak kutu per detik. "Sering", mungkin. "Secara umum", tidak. Gim papan atau gim strategi mungkin dicentang hanya ketika pengguna bergerak, baik di "iterasi loop utama" - sense maupun "render" - sense.
Anko