Tempo Lock · อาหารสมอง
หลังจากเสียงคลิกเงียบลง
เกมเริ่มต้นด้วยเสียงคลิกที่กำหนดจังหวะ จากนั้นเสียงคลิกนั้นก็เงียบลง และผู้เล่นต้องเคาะจังหวะเดิมต่อไปตลอดห้องเพลงที่เงียบงัน
เขียนและเรียบเรียงเป็นภาษาอังกฤษ ฉบับภาษาไทยนี้จัดทำขึ้นด้วยการแปลด้วยเครื่อง ในจุดที่ความแม่นยำมีความสำคัญ ให้ถือต้นฉบับภาษาอังกฤษเป็นหลัก อ่านต้นฉบับภาษาอังกฤษ →
โครงสร้างของหนึ่งรอบ
หนึ่งรอบใน Tempo Lock ถูกสร้างขึ้นจากเป้าหมาย (target) ที่ระบุสี่สิ่ง คือค่าจังหวะเป็นบีตต่อนาที จำนวนห้องเพลงที่เสียงคลิกดัง จำนวนห้องเพลงเงียบที่ตามมา และค่าบีตต่อห้องเพลง ซึ่งเป็นตัวเศษของเครื่องหมายกำหนดจังหวะ เอนจินใช้ฟิลด์เหล่านี้ประกอบทั้งรอบขึ้นมา ตั้งแต่บีตแรกที่ได้ยินไปจนถึงบีตสุดท้ายที่เงียบงัน จังหวะกำหนดความเร็วของเสียงคลิก ห้องเพลงที่ได้ยินกำหนดว่าผู้เล่นจะได้ยินเมโทรนอมนานเพียงใด และห้องเพลงเงียบกำหนดความท้าทายของการรักษาจังหวะนั้นไว้โดยไม่มีเสียงคลิก ค่าบีตต่อห้องเพลงนิยามว่าในแต่ละห้องเพลงมีกี่บีต และเกมตั้งค่ามันไว้ที่ 4 คืออัตราจังหวะสามัญ (common time) ในทุกรอบ 3
เอนจินคำนวณค่าอนุพัทธ์หลายค่าจากเป้าหมายเพื่อรองรับระบบคะแนน มันคำนวณความยาวบีตเป็นหกหมื่นหารด้วยจังหวะ ซึ่งให้ระยะเวลาของหนึ่งบีตในหน่วยมิลลิวินาที มันคำนวณจำนวนบีตทั้งหมดเป็นผลรวมของห้องเพลงที่ได้ยินกับห้องเพลงเงียบคูณด้วยจำนวนบีตต่อห้องเพลง ซึ่งให้จำนวนบีตทั้งหมดที่ผู้เล่นต้องเคาะผ่าน และมันคำนวณจุดเริ่มความเงียบเป็นจำนวนห้องเพลงที่ได้ยินคูณด้วยจำนวนบีตต่อห้องเพลง ซึ่งชี้ดัชนีบีตที่เสียงคลิกหยุดเล่นได้อย่างแม่นยำ ค่าอนุพัทธ์เหล่านี้ประกอบกันเป็นรากฐานทางคณิตศาสตร์ของทั้งรอบ 3
เสียงคลิกกับความเงียบ
เสียงคลิกคือสัญญาณที่ได้ยินซึ่งสถาปนาจังหวะของรอบนั้น มันเล่นตามจังหวะเป้าหมายตลอดช่วงห้องเพลงที่ได้ยิน โดยทำเครื่องหมายทุกบีตด้วยเสียงสั้น ๆ เสียงคลิกนี้ทำหน้าที่เป็นเมโทรนอม (metronome) ที่ผลิตเสียงออกมาเป็นช่วงเท่า ๆ กัน แม้ว่าในที่นี้ช่วงดังกล่าวถูกกำหนดโดยเป้าหมายของรอบมากกว่าโดยตัวผู้เล่น จะมีการนับนำสี่บีตเล่นขึ้นก่อน และบีตแรกของทุกห้องเพลงจะได้เสียงคลิกที่แหลมสูงกว่า นักดนตรีใช้เมโทรนอมเพื่อเล่นหรือฝึกซ้อมให้ตรงจังหวะ โดยรักษาจังหวะให้คงที่และบีตให้สม่ำเสมอ เสียงคลิกในเกมทำหน้าที่เดียวกันนี้ระหว่างช่วงที่ได้ยิน โดยให้จุดอ้างอิงที่ผู้เล่นจะเคาะให้ตรงตาม 2
เมื่อห้องเพลงที่ได้ยินจบลง เสียงคลิกก็เงียบหายไปโดยสิ้นเชิง ผู้เล่นไม่ได้ยินเมโทรนอมอีกต่อไป และต้องเคาะต่อไปในจังหวะเดิมตลอดห้องเพลงเงียบ ความเงียบนี้สร้างความท้าทายอันเป็นแก่นกลางของเกม เพราะผู้เล่นต้องกุมจังหวะไว้ในใจโดยไม่มีสิ่งอ้างอิงจากภายนอก ความเงียบนั้นไม่ได้ว่างเปล่า มันเต็มไปด้วยความทรงจำถึงจังหวะและความพยายามของผู้เล่นที่จะรักษามันเอาไว้ คะแนนจะวัดในภายหลังว่าผู้เล่นรักษาจังหวะนั้นไว้ได้ดีเพียงใดระหว่างความเงียบ 3
ตราเวลาดิบกับความแน่นอน
เอนจินทำงานจากตราเวลา (timestamp) ดิบของการเคาะที่วัดเป็นมิลลิวินาทีล้วน ๆ การเคาะแต่ละครั้งถูกบันทึกเป็นค่าเวลาสัมบูรณ์ และการคำนวณทั้งหมดก็มาจากตราเวลาเหล่านี้ร่วมกับเป้าหมาย ลำดับตราเวลาการเคาะชุดเดียวกันให้ผลลัพธ์เดียวกันเสมอ ซึ่งทำให้เอนจินมีความแน่นอนและทดสอบได้โดยไม่ต้องใช้นาฬิกา แนวทางนี้ขจัดความกำกวมออกจากการคำนวณเวลา และรับประกันว่าการให้คะแนนจะสอดคล้องกันในทุกครั้งที่รันด้วยข้อมูลเข้าชุดเดียวกัน 3
ฟังก์ชันให้คะแนนในเอนจินรับตราเวลาการเคาะดิบเป็นมิลลิวินาทีร่วมกับเป้าหมายเป็นข้อมูลเข้า การออกแบบเช่นนี้หมายความว่าเอนจินสามารถทดสอบได้ด้วยลำดับตราเวลาที่กำหนดไว้ล่วงหน้า และผลลัพธ์ก็ตรวจสอบได้โดยไม่ต้องรันเกมแบบเรียลไทม์ ความแน่นอนนี้ครอบคลุมไปถึงตัวสร้างเลขสุ่มที่กำหนดด้วยซีดซึ่งเลือกจังหวะเป้าหมายของแต่ละรอบด้วย ซีดและระดับความยากที่กำหนดให้จะตั้งเป้าหมายเดิมทุกครั้ง และทุกกฎก็ทดสอบได้นับจากจุดนั้นเป็นต้นไป 3
การกู้จังหวะคืนจากการเคาะ
เอนจินกู้ค่าประมาณของจังหวะคืนมาจากช่วงเวลาเฉลี่ยระหว่างการเคาะที่ติดกัน มันคำนวณช่วงระหว่างการเคาะ ซึ่งคือผลต่างของเวลาระหว่างการเคาะแต่ละครั้งกับครั้งก่อนหน้า แล้วหาค่าเฉลี่ยของช่วงเหล่านั้น โดยข้ามช่วงใดก็ตามที่เป็นศูนย์หรือติดลบ และถ้ามีการเคาะน้อยกว่าสองครั้ง มันจะไม่รายงานจังหวะเลย ค่าบีตต่อนาทีได้มาจากช่วงเฉลี่ยนี้ ซึ่งให้มาตรวัดจังหวะที่ผู้เล่นรักษาไว้ตลอดลำดับการเคาะนั้น ฟังก์ชันนี้ทำงานเป็นอิสระจากจังหวะเป้าหมาย และให้การวัดผลงานจริงของผู้เล่นอย่างเป็นภววิสัย 3
จังหวะที่กู้คืนมาแสดงอยู่บนหน้าจอผลลัพธ์ในชื่อ “Your tempo” (จังหวะของคุณ) เคียงข้างจังหวะเป้าหมาย ผู้เล่นจึงเห็นได้ว่าตนเคาะได้ใกล้เคียงกับความเร็วที่ตั้งใจไว้เพียงใด การคำนวณทำจากตราเวลาดิบเพียงอย่างเดียว ครอบคลุมการเคาะที่บันทึกไว้ทุกครั้ง ทั้งช่วงที่ได้ยินและช่วงเงียบ มันถูกรายงานไว้เพื่อเป็นข้อมูลเท่านั้น เพราะตัวคะแนนเองคำนวณจากการเคลื่อน (drift) ไม่ใช่จากจังหวะที่กู้คืนมา 3
การวัดการเคลื่อนจากตารางบีต
ระบบคะแนนให้รางวัลแก่ผู้เล่นที่เคาะได้ใกล้ตารางบีตในอุดมคติของเมโทรนอมระหว่างช่วงเงียบ ตารางในอุดมคติประกอบด้วยตำแหน่งบีตที่จะเกิดขึ้นหากเมโทรนอมเริ่มต้นที่การเคาะครั้งแรกของผู้เล่นและเดินต่อไปตามจังหวะเป้าหมาย การเคาะแต่ละครั้งจะถูกจับคู่กับตำแหน่งบีตในอุดมคติที่ใกล้ที่สุด และผลต่างระหว่างทั้งสองคือการเคลื่อนของการเคาะครั้งนั้น นับเฉพาะการเคาะที่บีตใกล้สุดของมันตกอยู่ในช่วงเงียบเท่านั้น และเพราะแต่ละครั้งถูกจับคู่กับบีตที่ใกล้ที่สุด จึงไม่มีการเคาะครั้งใดเคลื่อนได้เกินครึ่งบีต ทุกบีตในช่วงเงียบที่ปล่อยไว้โดยไม่มีการเคาะจะถูกคิดเป็นการพลาดเต็มครึ่งบีต ซึ่งเป็นกรณีที่แย่ที่สุด และถูกรวมเข้าไปในค่าเฉลี่ยเดียวกัน การข้ามบีตจึงดันการเคลื่อนเฉลี่ยให้สูงขึ้นและฉุดคะแนนให้ต่ำลง และผู้เล่นที่ไม่เคาะอะไรเลยในความเงียบจะได้ศูนย์คะแนน 3
แนวทางที่อิงการเคลื่อนนี้เปลี่ยนการรักษาจังหวะให้เป็นปริมาณที่วัดได้ เอนจินไม่ได้เพียงตรวจว่าการเคาะตกอยู่ในกรอบเวลาใดกรอบหนึ่งหรือไม่ แต่มันวัดความเบี่ยงเบนจากตำแหน่งในอุดมคติอย่างแม่นยำ การรักษาจังหวะได้สมบูรณ์แบบ คือมีการเคลื่อนเฉลี่ยเป็นศูนย์ ได้ 1000 คะแนน และคะแนนลดลงเป็นเส้นตรงจนถึง 0 ที่การเคลื่อนเฉลี่ยหนึ่งในสี่บีต การเคลื่อนที่น้อยกว่าจึงให้คะแนนสูงกว่าเสมอ มาตรวัดนี้วัดเป็นบีตแทนที่จะเป็นมิลลิวินาที มันจึงมีความหมายเดียวกันในทุกจังหวะ ที่ 120 บีตต่อนาที หนึ่งในสี่บีตคือ 125 มิลลิวินาที ส่วนที่ 80 คือ 187.5 มิลลิวินาที หนึ่งในสี่บีตยังเป็นค่าเฉลี่ยของการเคาะแบบสุ่มด้วย การเคาะมั่ว ๆ จึงแทบไม่ได้คะแนนเลย หน้าจอผลลัพธ์ยังรายงานการเคลื่อนเฉลี่ยเป็นมิลลิวินาที และแปลงคะแนนให้เป็นคำตัดสิน คือ “Locked in!” (ล็อกอยู่กับที่!) ที่ 850 ขึ้นไป “Tight.” (แน่น) ที่ 650 ขึ้นไป “Wobbly.” (โคลงเคลง) ที่ 350 ขึ้นไป และ “Lost the beat.” (หลุดจังหวะ) เมื่อต่ำกว่านั้น สิ่งนี้สร้างมาตรวัดผลงานแบบต่อเนื่องแทนที่จะเป็นผลผ่านหรือไม่ผ่านแบบสองขั้ว จึงประเมินความแม่นยำของจังหวะได้อย่างละเอียด 3
ระดับความยากสำเร็จรูป
เกมมีระดับความยากสำเร็จรูปสามระดับ คือ “Easy” (ง่าย) “Medium” (ปานกลาง) และ “Hard” (ยาก) ซึ่งเปลี่ยนช่วงของจังหวะและจำนวนห้องเพลงเงียบ ทุกระดับให้ห้องเพลงที่ได้ยินสี่ห้องเท่ากัน Easy สุ่มจังหวะระหว่าง 70 ถึง 100 บีตต่อนาทีและขอห้องเพลงเงียบสี่ห้อง Medium สุ่มระหว่าง 90 ถึง 130 และขอหกห้อง ส่วน Hard สุ่มระหว่าง 110 ถึง 170 และขอแปดห้อง ระดับเหล่านี้ให้ผู้เล่นเลือกความท้าทายได้ ตั้งแต่จังหวะนุ่มนวลกับช่วงเงียบสั้น ๆ ไปจนถึงจังหวะเร็วกับการรักษาจังหวะในความเงียบที่ยาวนาน 3
ระดับความยากเหล่านี้ทำงานอยู่ในกรอบความแน่นอนเดียวกับส่วนอื่นของเอนจิน แต่ละระดับนิยามเป้าหมายด้วยค่าฟิลด์ที่เจาะจง และเอนจินก็ประมวลผลเป้าหมายนั้นเหมือนกับเป้าหมายอื่นทุกประการ ความยากอยู่ที่การผสมกันของจังหวะและจำนวนห้องเพลงเงียบ ซึ่งกำหนดว่าบีตจะมาเร็วแค่ไหนและผู้เล่นต้องรักษามันไว้นานเพียงใดโดยไม่มีเสียงคลิก ระบบคะแนนยังคงเหมือนเดิมในทุกระดับ โดยวัดการเคลื่อนจากตารางในอุดมคติไม่ว่าจะเลือกความยากใด และเพราะมาตรวัดของมันตั้งไว้เป็นเศษส่วนของบีต คะแนนค่าหนึ่งจึงหมายถึงความแม่นยำสัมพัทธ์เท่ากัน ทั้งที่จังหวะเร็วของ Hard และที่จังหวะช้าของ Easy 3
จังหวะที่อยู่เบื้องหลังเกม
ในทางดนตรี จังหวะ (tempo) คือความเร็วหรืออัตราความเร็วของบทเพลงหนึ่ง ๆ วัดเป็นบีตต่อนาที จังหวะ 60 บีตต่อนาทีหมายถึงหนึ่งบีตต่อวินาที ขณะที่จังหวะ 120 บีตต่อนาทีเร็วเป็นสองเท่า คือสองบีตทุกวินาที ค่าตัวโน้ตของแต่ละบีตโดยทั่วไปคือค่าที่ระบุด้วยตัวส่วนของเครื่องหมายกำหนดจังหวะ จังหวะอาจระบุด้วยคำกำกับภาษาอิตาลี ตั้งแต่คำที่หมายถึงช้าอย่าง largo และ andante ไปจนถึงคำที่หมายถึงเร็วอย่าง allegro และ presto หรือระบุด้วยเครื่องหมายเมโทรนอมที่ให้ค่า BPM ที่เจาะจง คำกำกับจังหวะสื่อได้ทั้งอารมณ์และความเร็ว และจังหวะก็ไม่จำเป็นต้องคงที่ ผู้ประพันธ์อาจเขียน accelerando เพื่อเร่งให้เร็วขึ้นหรือ ritardando เพื่อผ่อนให้ช้าลงภายในบทเพลงหนึ่งได้ 1 เกมใช้แนวคิดเรื่องจังหวะนี้ในฐานะค่าคงที่ที่วัดเป็นบีตต่อนาที โดยค่า bpm เป้าหมายเป็นตัวกำหนดความเร็วของทั้งรอบ
จังหวะในเกมคือค่าบีตต่อนาทีที่เสียงคลิกเล่นและที่ผู้เล่นต้องรักษาไว้ มันคือตัวเลขตัวเดียวที่นิยามความเร็วของรอบนั้น และมันปรากฏอยู่ในเป้าหมายเคียงข้างจำนวนห้องเพลง ผู้เล่นเคาะตามจังหวะนี้ และเอนจินวัดว่าเขารักษามันไว้ได้ดีเพียงใด จังหวะไม่เปลี่ยนแปลงระหว่างรอบ มันคือจุดอ้างอิงคงที่ที่ใช้ประเมินผลงานของผู้เล่น 3
อุปกรณ์เมโทรนอม
เมโทรนอมคืออุปกรณ์ที่ผลิตเสียงคลิกหรือเสียงอื่นออกมาเป็นช่วงเท่า ๆ กัน ซึ่งผู้ใช้ตั้งค่าได้ โดยทั่วไปตั้งเป็นบีตต่อนาที นักดนตรีและนักร้องฝึกซ้อมไปกับมันเพื่อรักษาจังหวะให้คงที่และบีตให้สม่ำเสมอ เมโทรนอมเชิงกลแบบดั้งเดิมใช้ลูกตุ้มถ่วงน้ำหนัก การเลื่อนตุ้มขึ้นไปตามก้านจะทำให้จังหวะช้าลง และการเลื่อนลงจะทำให้เร็วขึ้น กลไกจะผลิตเสียงคลิกทุกครั้งที่แกว่ง โยฮันน์ เมลเซล (Johann Maelzel) จดสิทธิบัตรเมโทรนอมเชิงกลในปี 1815 และผลิตจำนวนมากตั้งแต่ปี 1816 โดยต่อยอดจากแบบลูกตุ้มกลับหัวที่ขับด้วยสปริงซึ่งดีทริช นิโคเลาส์ วิงเคิล (Dietrich Nikolaus Winkel) ออกแบบไว้ก่อนหน้า และเพิ่มมาตราจังหวะแบบตัวเลขเข้าไป เมโทรนอมสมัยใหม่ยังมีทั้งแบบอิเล็กทรอนิกส์ควอตซ์และแบบซอฟต์แวร์ด้วย 2
เสียงคลิกในเกมทำหน้าที่เป็นเมโทรนอมระหว่างช่วงที่ได้ยิน โดยเล่นจังหวะเป้าหมายตลอดห้องเพลงที่ได้ยิน มันให้ช่วงเวลาสม่ำเสมอที่ผู้เล่นต้องเคาะให้ตรงตาม เมื่อเสียงคลิกเงียบลง ผู้เล่นต้องรักษาจังหวะเดิมไว้โดยไม่มีอุปกรณ์ช่วย เป็นการทดสอบความสามารถในการกุมจังหวะไว้ภายใน บทบาทของเมโทรนอมในเกมคือการสถาปนาจังหวะขึ้นมาแล้วถอนตัวออกไป ปล่อยให้ผู้เล่นแบกจังหวะนั้นต่อไปตามลำพัง 3
เป้าหมายกับฟิลด์ของมัน
เป้าหมายคือโครงสร้างข้อมูลศูนย์กลางที่นิยามแต่ละรอบ มันมีสี่ฟิลด์ คือจังหวะเป็นบีตต่อนาที จำนวนห้องเพลงที่ได้ยินซึ่งเสียงคลิกเล่น จำนวนห้องเพลงเงียบที่ตามมา และบีตต่อห้องเพลงซึ่งเป็นตัวเศษของเครื่องหมายกำหนดจังหวะ มีค่าเป็น 4 สำหรับอัตราจังหวะสามัญ ฟิลด์เหล่านี้ร่วมกันกำหนดโครงสร้างของรอบ ตั้งแต่จำนวนบีตในช่วงที่ได้ยินไปจนถึงจำนวนบีตในช่วงเงียบ 3
เอนจินใช้เป้าหมายคำนวณค่าอนุพัทธ์ทั้งหมดที่ควบคุมรอบนั้น จากจังหวะ มันได้ระยะเวลาของแต่ละบีตเป็นมิลลิวินาที จากจำนวนห้องเพลงและบีตต่อห้องเพลง มันได้จำนวนบีตทั้งหมดและบีตที่ความเงียบเริ่มต้นขึ้น เป้าหมายคงที่ตลอดรอบ ซึ่งหมายความว่าจังหวะและจำนวนห้องเพลงคงเดิมตลอด ผู้เล่นตอบสนองต่อเป้าหมายได้เพียงด้วยการเคาะตามจังหวะที่เหมาะสมและจับเวลาการเคาะของตนให้ตรงกับตารางในอุดมคติ 3
จากตราเวลาสู่คะแนน
เส้นทางจากตราเวลาการเคาะไปสู่คะแนนสุดท้ายดำเนินตามลำดับการคำนวณที่ชัดเจน อันดับแรก เกมบันทึกการเคาะแต่ละครั้งเป็นตราเวลาหน่วยมิลลิวินาที โดยไม่สนใจการเคาะที่เกิดขึ้นก่อนการนับนำสี่บีตจะจบลงเกินกว่าครึ่งบีต ระหว่างช่วงที่ได้ยิน ผู้เล่นเคาะไปพร้อมกับเสียงคลิก เป็นการสร้างความรู้สึกต่อจังหวะขึ้นมา เมื่อเสียงคลิกเงียบลง ผู้เล่นก็เคาะต่อไปตลอดห้องเพลงเงียบ จากนั้นเอนจินจะวัดการเคลื่อนของการเคาะแต่ละครั้งในช่วงเงียบเทียบกับตารางเมโทรนอมในอุดมคติที่ยึดหลักไว้ที่การเคาะครั้งแรก แล้วหาค่าเฉลี่ยของการเคลื่อนเหล่านั้น โดยนับบีตเงียบทุกบีตที่ไม่มีการเคาะเป็นการพลาดครึ่งบีต และแปลงค่าเฉลี่ยนั้น ซึ่งคิดเป็นเศษส่วนของบีต ให้กลายเป็นคะแนนตั้งแต่ 0 ถึง 1000 ควบคู่ไปกับคะแนน มันยังรายงานจังหวะที่กู้คืนมาจากช่วงเฉลี่ยระหว่างการเคาะ และจำนวนการเคาะในช่วงเงียบด้วย 3
กระบวนการนี้มีความแน่นอนโดยสิ้นเชิง เมื่อให้ซีดและระดับความยากเดิม เป้าหมายเดิมก็ถูกสร้างขึ้น เมื่อให้เป้าหมายเดิมและตราเวลาการเคาะเดิม คะแนนเดิมก็ถูกคำนวณออกมา เอนจินไม่ได้พึ่งพาเวลานาฬิกาจริงหรือสิ่งอ้างอิงภายนอกใด ๆ มันพึ่งพาเพียงตราเวลาและเป้าหมายเท่านั้น สิ่งนี้ทำให้ระบบทั้งเชื่อถือได้และทดสอบได้ เพราะทุกขั้นตอนตรวจสอบได้ด้วยข้อมูลเข้าที่กำหนดไว้ล่วงหน้าและผลลัพธ์ที่คาดหวัง 3
ช่วงเงียบในฐานะการวัดผล
ช่วงเงียบคือที่ที่การวัดผลเกิดขึ้น ระหว่างช่วงที่ได้ยิน เสียงคลิกให้สิ่งอ้างอิง และผู้เล่นปรับการเคาะให้ตรงตามมันได้ ระหว่างช่วงเงียบ ไม่มีสิ่งอ้างอิงเช่นนั้น และการเคาะของผู้เล่นก็เผยให้เห็นว่าเขาซึมซับจังหวะไว้ได้ดีเพียงใด เอนจินวัดการซึมซับนี้ด้วยการเทียบการเคาะแต่ละครั้งกับตำแหน่งบีตในอุดมคติที่คาดคะเนต่อจากการเคาะครั้งแรกของผู้เล่นตามจังหวะเป้าหมาย ผลต่างระหว่างการเคาะกับตำแหน่งในอุดมคตินั้นคือการเคลื่อนของการเคาะครั้งนั้น 3
ช่วงเงียบยังเป็นที่ที่การออกแบบของเกมเผยตัวชัดที่สุดด้วย เสียงคลิกเล่นจังหวะเป้าหมายตลอดห้องเพลงที่ได้ยิน แล้วจึงเงียบลง และผู้เล่นต้องเคาะจังหวะเดิมต่อไปตลอดห้องเพลงเงียบ ความยาวของช่วงเงียบซึ่งกำหนดด้วยจำนวนห้องเพลงเงียบและจำนวนบีตต่อห้องเพลง เป็นตัวกำหนดความยาวของช่วงการวัดผล ช่วงเงียบที่ยาวกว่าเรียกร้องให้ผู้เล่นรักษาจังหวะไว้เป็นจำนวนบีตที่มากกว่า ซึ่งเพิ่มโอกาสที่การเคลื่อนจะสะสมตัว ระบบคะแนนวัดการเคลื่อนของทุกการเคาะในช่วงเงียบ คิดโทษทุกบีตเงียบที่ปล่อยว่างไว้ และเฉลี่ยทั้งหมดออกมาเป็นคะแนนสุดท้าย ความผิดพลาดของจังหวะเล็ก ๆ ที่โตขึ้นตลอดการรักษาอันยาวนานจึงดันการเคลื่อนเฉลี่ยให้สูงขึ้นและฉุดคะแนนให้ต่ำลง 3
ความแน่นอนจากซีด
ทั้งระบบมีความแน่นอนโดยเริ่มจากตัวสร้างเลขสุ่มที่กำหนดด้วยซีด ซีดหนึ่ง ๆ ตั้งเป้าหมายเดิมทุกครั้ง และทุกกฎก็ทดสอบได้นับจากจุดนั้นเป็นต้นไป ซีดกำหนดจังหวะ ซึ่งสุ่มออกมาเป็นจำนวนเต็มจากช่วงของระดับความยากที่เลือกไว้ ส่วนจำนวนห้องเพลงมาจากตัวระดับความยากเอง เพราะซีดและระดับความยากกำหนดเป้าหมายได้ครบถ้วน ทั้งสองจึงให้โครงสร้างรอบเดิมเสมอ คุณสมบัตินี้ครอบคลุมไปถึงการให้คะแนนด้วย เพราะตราเวลาการเคาะเดิมกับเป้าหมายเดิมย่อมให้คะแนนเดิมเสมอ 3
ความแน่นอนจากซีดรับใช้ทั้งผู้เล่นและผู้พัฒนา สำหรับผู้เล่น มันหมายความว่าแต่ละรอบสอดคล้องกันและเป็นธรรม ลำดับการเคาะชุดเดิมจะให้ผลลัพธ์เดิมเสมอ โหมด Daily ดึงซีดของมันมาจากวันที่ตามเวลา UTC ทุกคนที่เล่นในวันนั้นที่ระดับความยากหนึ่ง ๆ จึงได้เป้าหมายเดียวกัน ขณะที่ Practice สุ่มซีดใหม่ทุกรอบ สำหรับผู้พัฒนา มันหมายความว่าเอนจินทดสอบได้อย่างทั่วถึงด้วยซีดและลำดับการเคาะที่กำหนดไว้ล่วงหน้า ความแน่นอนไม่ใช่ข้อจำกัด แต่เป็นคุณสมบัติที่ทำให้ระบบจับเวลาของเกมโปร่งใสและเชื่อถือได้ 3
Sources & notes
- "Tempo," Wikipedia, in music, tempo is the speed or pace of a given composition, measured in beats per minute (BPM): a tempo of 60 beats per minute signifies one beat per second, while a tempo of 120 beats per minute is twice as rapid, signifying two beats every second. The note value of each beat is typically the one indicated by the denominator of the time signature. Tempo may be indicated by Italian markings, from slow ones such as largo and andante (at a walking pace) to fast ones such as allegro and presto, or by a metronome mark giving a specific BPM. Tempo markings can convey mood as well as speed, and a tempo need not be fixed: a composer may write an accelerando to speed up or a ritardando to slow down within a piece. en.wikipedia.org/wiki/Tempo.
- "Metronome," Wikipedia, a device that produces an audible click or other sound at a uniform interval that can be set by the user, typically in beats per minute. Musicians use a metronome to play or practise in time, keeping a steady tempo and a regular beat. A traditional mechanical metronome uses a weighted pendulum: sliding the weight up the rod slows the tempo and sliding it down speeds it up, and the mechanism produces a click with each swing. Johann Maelzel patented a mechanical metronome in 1815 and mass-produced it from 1816, building on an earlier spring-powered, inverted-pendulum design by Dietrich Nikolaus Winkel and adding a numerical tempo scale; modern metronomes also come as quartz electronic devices and software. en.wikipedia.org/wiki/Metronome.
- Tempo Lock game engine: a pure, deterministic timing engine with no audio and no DOM. A target sets a tempo in beats per minute, a number of audible bars while a click plays, a number of silent bars to hold after it stops, and a beats-per-bar time-signature numerator (4 for 4/4). The click plays the target tempo for the audible bars, then cuts out, and the player must keep tapping the same tempo through the silent bars. The beat length in milliseconds is sixty thousand divided by the tempo; the total beat count is the audible plus silent bars times the beats per bar; and the silent phase starts at the audible bars times the beats per bar. The scoring functions take raw tap timestamps in milliseconds together with the target, so the same inputs always give the same result and the engine is testable without a clock. The tempo is recovered from the average interval between taps. Drift is the average distance of silent-phase taps from the nearest beat of an ideal grid anchored on the first tap and stepped at the target tempo; each silent-phase beat without a tap counts as a miss of half a beat, and with fewer than two taps the drift is half a beat. The score is 1000 at zero drift, falling linearly to 0 at a quarter of a beat, so the scale is relative to the tempo; the result grades are “Locked in!” at 850 or more, “Tight.” at 650 or more, “Wobbly.” at 350 or more, and “Lost the beat.” below that. Difficulty presets: Easy 70–100 BPM with 4 audible and 4 silent bars, Medium 90–130 with 4 and 6, Hard 110–170 with 4 and 8. The tempo is drawn from a seeded random number generator; Daily mode seeds it from the UTC date, Practice from a random number. Read from the game’s own source.
- Further reading on Metronome, Re-examining Czerny’s and Moscheles’s Metronome Marks for Beethoven’s Piano Sonatas. doi.org.
- Further reading on Metronome, Turn the Beat On: An Evidenced-Based Practice Journey Implementing Metronome Use in Emergency Department Cardiac Arrest . pubmed.ncbi.nlm.nih.gov.