“ ติ๊ก” ในบริบทของการพัฒนาเกมคืออะไร?


12

ตกลงดังนั้นนี่เป็นคำถามระดับเริ่มต้น แต่ฉันจำเป็นต้องรู้สิ่งนี้คำว่า "ขีด" หมายถึงอะไรในบริบทของการพัฒนาเกม มันเป็นสิ่งเดียวกันกับ FPS หรือไม่? ขอบคุณ!


1
คุณได้คำศัพท์นี้มาจาก BTW ที่ไหน บางคนเรียกมันว่าเห็บเพราะphysics engine update frameยาวเกินไปสำหรับผู้เล่นทั่วไปที่จะจำ / เข้าใจ
Bálint

คำตอบ:


18

เห็บเป็นหน่วยวัดเวลาโดยเฉพาะมันหมายถึงอินสแตนซ์เดียวของการกระทำซ้ำ ๆ (โดยทั่วไปจะเป็นการกระทำที่กว้าง) ในเกมหรือช่วงเวลาที่การกระทำนั้นสิ้นเปลือง

เห็บซ้ำแล้วซ้ำอีกและ (ส่วนใหญ่) ปกติ; คำนี้มาจากหนึ่งในเสียงที่นาฬิกาทำ ("ติ๊ก" และ "tock")

โดยทั่วไปแล้วการทำเครื่องหมายเป็นการวนซ้ำของลูปบางอย่างเช่นลูปตรรกะเกมหลัก หนึ่งสามารถพูดได้ว่าตรรกะของเกม "เห็บ" เมื่อเฟรมหรือว่า "ในช่วงเห็บตำแหน่งตัวละครที่มีการปรับปรุง"

อย่างไรก็ตามมันยังสามารถอ้างถึงช่วงเวลาที่ละเอียดมากขึ้น เราสามารถพูดได้ว่า "ขีด จำกัด ของ AI ในเกมนั้น จำกัด อยู่ที่ 5ms เวลาในการประมวลผล"

FPS เป็นการวัดจำนวนเฟรม (โดยปกติแล้วจะสร้างภาพเฟรม) เกมที่ประมวลผลในหนึ่งวินาที เห็บและ FPS นั้นไม่จำเป็นต้องเกี่ยวข้องกัน แต่บางครั้งผู้คนจะเรียกการประมวลผลของตรรกะของเกมเพียงครั้งเดียวว่า "ตรรกะเฟรม" ซึ่งในกรณีนี้อัตรา FPS (ตรรกะ) จะเป็นจำนวนเห็บที่ประมวลผลต่อวินาที นี่เป็นเรื่องธรรมดาโดยเฉพาะอย่างยิ่งสำหรับเกมที่บังคับใช้อัตราเฟรมคงที่สำหรับตรรกะเกมหรือฟิสิกส์ไม่ว่าด้วยเหตุผลใด


2

เกมส่วนใหญ่มีการใช้งานแบบวนซ้ำ สิ่งที่ต้องการ

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

มันเป็นวิธีการมาตรฐานในการทำสิ่งต่าง ๆ และในขณะที่การเรนเดอร์และองค์ประกอบ UI อาจถูกจัดการในเธรดแยกต่างหากตรรกะของเกมจริง (กดย้ายเรือของคุณไปข้างหน้า) เกิดขึ้นภายในเห็บ

สิ่งนี้เรียกว่า "เฟรม" และโดยทั่วไปจะอ้างถึงเป็นอัตราเฟรม (เพื่อไม่ให้สับสนกับเนื้อหากราฟิก) เห็บกลายเป็นคำพ้องความนิยมเพื่อช่วยแยกความแตกต่างทั้งสอง

ในฐานะโปรแกรมเมอร์เป้าหมายของคุณคือการให้อัตราเฟรม (ติ๊ก) คงที่ไม่ว่าอะไรก็ตาม วิธีนี้จะช่วยให้การตอบสนองในเกมของคุณราบรื่นและมีเหตุผลในขณะเดียวกันก็อนุญาตให้แบบจำลอง (การเขียนโปรแกรมไม่ใช่กราฟิก) ประมวลผลสิ่งต่าง ๆ ในแบบที่เป็นมิตรกับคอมพิวเตอร์ เวลาติ๊กนั้นไม่คงที่ตลอดทั้งเกมและไม่มีหมายเลขเวทย์มนตร์ เกมบางเกมมี 100 เฟรมต่อวินาทีและบางเกมมี 1 ขีดทุก 3 วินาที


1
สิ่งสำคัญคือต้องทราบว่าไม่ใช่ทุกเกมที่มีอัตราการทำเครื่องหมายคงที่ Screeps และ Eve ออนไลน์สนับสนุนอัตราการทำเครื่องหมายตัวแปร Minecraft ควรจะเป็นอัตราการทำเครื่องหมายที่มีเสถียรภาพ แต่มักจะไม่ประสบความสำเร็จและจัดการได้ดี ป้อมปราการคนแคระมีอัตราเฟรมคงที่และดูดเมื่อไม่สามารถติดตามได้ แต่ก็ยังใช้งานได้
coteyr

ฉันคิดว่าคุณกำลังผสมคำว่า "กรอบ" และ "ขีด" ที่นี่เล็กน้อยเกินไป เห็บยังสามารถขยายได้หลายเฟรม (หรืออัปเดตรอบ)
Tyyppi_77

1

"เห็บ" สามารถอ้างถึงสองสิ่งที่แตกต่างกัน มันอาจหมายถึงกรอบเห็บตามที่คุณกล่าวว่าเป็นกราฟิกที่มองเห็นได้ทั้งหมดบนหน้าจอได้รับการปรับปรุง อย่างไรก็ตามคำว่า "เห็บ" อาจหมายถึงเห็บเกมวนรอบ เห็บประเภทนั้นเป็นที่ที่โค้ดของคุณทำงาน โดยปกติเห็บของคุณจะอยู่ในบริบทของการวนซ้ำที่เหมือนกันซึ่งจะดำเนินต่อไปจนกว่าเกมจะหยุด


1

เห็บโดยทั่วไปหมายถึงการวนซ้ำหนึ่งครั้งของวงวนวนเกมซึ่งตรรกะทั้งหมดจะถูกคำนวณดังนั้นเกมโดยทั่วไปจะมีหลายเห็บต่อวินาที

อย่างไรก็ตามเกมจำนวนมากรันทั้งกราฟิกและเกมลูปในเธรดเดียวกันเพราะกราฟิกมักใช้เวลาไม่นานในการแสดงผลเพื่อให้ตรรกะถูกขัดจังหวะหรือในทางกลับกัน (แม้ว่านักพัฒนาจะทำการตรวจสอบในสถานการณ์เช่นนั้นเช่น ใช้ความแตกต่างในเวลาระหว่างเฟรมสุดท้ายกับเฟรมปัจจุบันและปรับอัตราการเคลื่อนไหวตามลำดับ)

FPSย่อมาจากF rames P er S econd ดังนั้นสำหรับหลาย ๆ เกมใช่เทคนิคการพูดแต่ละเฟรมเป็นหนึ่งขีด


ดังนั้นฉันสามารถใช้ทั้งสองคำแทนกันได้หรือไม่
user3843164

2
ฉันจะไม่ ฉันจะใช้ "FPS" เมื่ออ้างถึงกราฟิกและ "เห็บ" เมื่ออ้างถึงลอจิกเพราะบางเกมโดยเฉพาะเกมที่มีกราฟิกเข้มมักจะมีสองลูป: หนึ่งสำหรับกราฟิกและอีกหนึ่งสำหรับตรรกะ
StrongJoshua

เห็บไม่ใช่เธรด

@JoshPetrie Oooh ฉันเห็นความผิดพลาดของฉันขอบคุณที่ชี้ให้เห็น ตอนนี้ได้รับการแก้ไขแล้ว
StrongJoshua

1
โดยทั่วไปเกมจะมีหลายเห็บต่อวินาที "บ่อยครั้ง" บางที "โดยทั่วไป" หมายเลข เกมกระดานหรือเกมวางแผนอาจทำเครื่องหมายเฉพาะเมื่อผู้ใช้ทำการย้ายทั้งใน "วนซ้ำหลัก" -sense และ "render" -sense
Anko
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.