สถานะของการยิงโดนเป้า
สวัสดีครับ ผมชื่อ Kevin Lee เป็นวิศวกรซอฟต์แวร์ในทีมระบบเกมของ VALORANT ทีมของเรารับผิดชอบการพัฒนาระบบหลักหลายอย่างที่ซัพพอร์ตเกมเพลย์ของ VALORANT รวมถึงการเคลื่อนไหว การต่อสู้ และอินพุต ในโพสต์นี้ ผมจะพูดคุยเกี่ยวกับหนึ่งในระบบที่เป็นตัวหลักในเกมเพลย์ของ FPS: การยิงโดนเป้า
ในเกมอย่าง VALORANT การยิงโดนเป้าเป็นหนึ่งในระบบที่สำคัญที่สุด เนื่องจากความแตกต่างระหว่างการชนะหรือแพ้สามารถลงตัดสินกันที่เฮดช็อตเดียวได้ เป้าหมายของเราในฐานะนักพัฒนาคือต้องมั่นใจว่าเมื่อผู้เล่นยิงปืนออกไป ผลลัพธ์ของการยิงต้องชัดเจน รู้สึกถูก และที่สำคัญที่สุด ต้องถูกต้อง
บางครั้งเราจะเห็นโพสต์หรือได้รับข้อความจากผู้เล่นพร้อมคลิปวิดีโอว่าการโจมตีโดนเป้าผิดพลาด เราให้ความสำคัญกับรายงานเหล่านี้อย่างจริงจัง และดูวิดีโอทีละเฟรมเพื่อตรวจสอบว่าระบบทำงานตามที่คาดหวังไว้หรือไม่
อย่างไรก็ตาม เราคิดว่าการยิงโดนเป้าตอนนี้ใน VALORANT อยู่ในระดับที่ดีมาก ๆ แล้ว ใช่ อาจจะยังมีบั๊กเล็ก ๆ น้อย ๆ อยู่ประปรายและเราจะดำเนินการเรื่องเหล่านั้นอย่างจริงจัง เราต้องการปรับปรุงคุณภาพและความชัดเจนของระบบทั้งหมดของเราอย่างต่อเนื่อง
ความถูกต้อง VS ความชัดเจน
ในเบต้าแพทช์ 0.50 เราเห็นรายงานมากมายเกี่ยวกับปัญหาของการยิงโดนเป้า หลังจากที่ดูรายงานและวิดีโอของผู้เล่น และการทดสอบภายในแบบขยายทั้งหมด เราสามารถระบุบั๊กเล็ก ๆ น้อย ๆ หลายอย่างที่เกี่ยวกับการยิงโดนเป้า แต่ไม่มีอันไหนที่หนักมากพอที่จะอธิบายได้ว่าทำไมถึงได้รับจำนวนรายงานมากมายขนาดนี้ เมื่อตรวจสอบอย่างใกล้ชิด คลิปส่วนใหญ่ไม่ได้มีปัญหาในเรื่องความถูกต้อง แต่เรื่องของความชัดเจนต่างหาก การยิงจะถูกประมวลผลอย่างถูกต้อง แต่ภาพสะท้อนจากการยิงนั้นนำเสนอผลลัพธ์ที่ทำให้ผู้เล่นเข้าใจผิด สิ่งนี้เน้นให้เห็นถึงความแตกต่างที่สำคัญระหว่างความถูกต้องและความชัดเจน
ในขณะที่ทั้งสองอย่างสำคัญต่อความมั่นใจใน “ความรู้สึก” ของการยิง...
- ความถูกต้อง หมายถึงผลลัพธ์ของการยิงที่ผิด (เช่น กระสุนยิงโดนหัวแต่ตรวจจับว่าโดนร่างกายหรือศัตรูผู้เล่นปรากฏขึ้นบนไคลเอนต์ต่างจากเซิร์ฟเวอร์)
- ความชัดเจน หมายถึงการนำเสนอภาพการยิงที่อ่านยาก (เช่น กระสุนยิงโดนไหล่แต่ภาพสะท้อนทำให้ดูเหมือนกระสุนโดนศีรษะ)
- บั๊กความถูกต้องเลวร้ายกว่าบั๊กความชัดเจนมาก
เราหวังว่าบทความนี้จะให้ความกระจ่างเกี่ยวกับระบบเพื่อให้ทุกคนสามารถมองย้อนกลับไปที่เกมเพลย์ของพวกเขาและเข้าใจว่าเกิดอะไรขึ้นบนหน้าจอของพวกเขา เกี่ยวกับการยิงของพวกเขา ผมจะอธิบายถึงวิธีการทำงานของระบบในระดับสูง และอธิบายสิ่งที่เกิดขึ้นตั้งแต่วินาทีที่กดปุ่มยิง ไปจนถึงการแสดงภาพเฮดช็อต
สำหรับการเจาะลึกทางเทคนิคที่ละเอียดยิ่งขึ้น โปรดดูบทความเกี่ยวกับเน็ตโค้ดของ VALORANT ใน Riot Tech Blog นี้
ผมจะพูดคุยเกี่ยวกับกรณีทั่วไปบางอย่างที่เราเห็นเมื่อพูดถึงรายงานของ “การโจมตีโดนเป้าที่ผิดพลาด” และพยายามอธิบายสิ่งที่เกิดขึ้นและสิ่งที่เรากำลังทำเพื่อปรับปรุงความชัดเจนในสถานการณ์เหล่านั้น
จากการคลิกไปสู่เฮดช็อต
ก่อนที่เราจะเจาะลึกในสิ่งที่เกิดขึ้นเมื่อมีการยิง สิ่งสำคัญคือต้องเข้าใจว่าเกมจะจำลองสิ่งที่เกิดขึ้นอย่างไร เกมเพลย์ของ VALORANT ถูกจำลองสองครั้ง: ครั้งหนึ่งบนเซิร์ฟเวอร์ (อำนาจในการจำลองสถานการณ์ว่าจะให้ออกมาอย่างไร) และอีกครั้งบนไคลเอนต์ (การประมาณผลลัพธ์เซิร์ฟเวอร์เพื่อทำให้เกมรู้สึกตอบสนองมากขึ้น)
การจำลองของเกมประกอบด้วยทุกสิ่งที่สร้างโลกนี้ขึ้นมา รวมถึงตำแหน่งของผู้เล่นทุกคน สกิลใด ๆ ที่กำลังใช้อยู่บนอากาศ และควันอะไรก็ตามในสนามรบ ในแต่ละเฟรม เกมจะทำการจับภาพของการจำลองและใช้มันเพื่อเรนเดอร์เฟรมบนหน้าจอของคุณ เซิร์ฟเวอร์ก็ทำเช่นนี้สำหรับแต่ละเฟรม (โดยข้ามขั้นตอนการเรนเดอร์เนื่องจากไม่มีใครดูเซิร์ฟเวอร์อยู่แล้ว)
โอเค มีศัตรูแอบมองออกมาจากมุมหนึ่ง และด้วยการเล็งครอสแฮร์ที่น่าทึ่งของคุณ คุณล็อคเป้าที่หัวพวกเขาไว้แล้ว แล้วคุณกดปุ่มเมาส์ข้างซ้ายเพื่อยิง แล้วเกิดอะไรขึ้นต่อ?
ทันทีที่คุณกดปุ่ม อินพุตจะถูกส่งไปยังระบบอินพุตของเรา (โดยมีการขึ้นอยู่กับความล่าช้าของฮาร์ดแวร์/ระบบปฏิบัติการเล็กน้อย) แต่ละเฟรมของเกม ระบบอินพุตจะประมวลผลอินพุตทั้งหมดที่ได้รับตั้งแต่เฟรมก่อนหน้า เมื่อคุณยิงปืนออกไป อินพุต "การยิง" นั้นจะถูกส่งไปยังเซิร์ฟเวอร์พร้อมกับประทับเวลาว่าการยิงเกิดขึ้นในเฟรมใดของการจำลอง
มันสำคัญที่ต้องเข้าใจว่าประทับเวลานี้เป็นไปตามสิ่งที่เรนเดอร์บนหน้าจอของคุณ ณ เวลาที่ VALORANT ได้รับอินพุต ตอนนี้เราต้องติดตามการยิงในการจำลองสถานการณ์สองแบบ: ของไคลเอนต์และเซิร์ฟเวอร์
เรามาเริ่มจากไคลเอนต์ หรือเครื่องของคุณนั่นแหละ ทันทีหลังจากที่การยิงถูกส่งออกไปยังเซิร์ฟเวอร์ ไคลเอนต์จะเริ่มทำงานในการแสดงแสงที่ปากกระบอกปืนและวิถีกระสุนของการยิงนั้น อย่างเร็วที่สุด สิ่งนี้จะเกิดขึ้นหนึ่งเฟรมหลังจากที่อินพุตของคุณถูกยิงออกเนื่องจากเกมต้องเรนเดอร์เฟรมใหม่ไปที่หน้าจอของคุณ สิ่งนี้มีความสำคัญเนื่องจากมันหมายความว่าเฟรมที่ประมวลผลการยิงไม่ได้เป็นเฟรมเดียวกับการแสดงวิถีกระสุน จริง ๆ แล้วมันอยู่หนึ่งเฟรมก่อนหน้านั้น
บางครั้งสิ่งนี้จะนำไปสู่ความล้มเหลวในความชัดเจนของการยิง วิธีทั่วไปที่สามารถแก้ไขการไม่ประสานนี้ได้ก็คือการเลื่อนเวลาของกระสุน เราจะไม่ทำเช่นนั้นเพราะการเลื่อนเวลาของกระสุนจะเพิ่มความล่าช้าในการอินพุตซึ่งเป็นสิ่งที่เราต้องการลดให้น้อยที่สุดใน VALORANT สำหรับการยืนยันการยิงโดน ไคลเอนต์จะรอจนกระทั่งได้รับการยืนยันจากเซิร์ฟเวอร์เกี่ยวกับผลลัพธ์ก่อนที่จะแสดงการยืนยันการยิงโดน เพื่อรับประกันความต่อเนื่องของผู้ใช้ทุกคนและเพื่อป้องกันไม่ให้คนโกงแฮ็กไคลเอนต์เพื่อให้มีผลลัพธ์การยิงผิด ๆ ผลลัพธ์การยิงจึงเป็นอำนาจของเซิร์ฟเวอร์ทั้งหมด
ในระหว่างนั้น ในที่สุดเซิร์ฟเวอร์จะได้รับข้อความจากไคลเอนต์ว่ามีการยิงออกไป เนื่องจากความล่าช้าในการตอบสนองของอินเทอร์เน็ต เวลาได้ผ่านไปแล้วตั้งแต่มีการยิงออกไป เพื่อให้แน่ใจว่ามีการยิงแล้วเมื่อเทียบกับการจำลองแบบเดียวกันกับที่แสดงให้ผู้เล่น เซิร์ฟเวอร์จะย้อนการจำลองกลับไปที่การประทับเวลาที่กำหนดโดยไคลเอนต์ก่อนประมวลผลการยิงโดนเป้า นี่รวมถึงการย้อนตำแหน่งของผู้เล่นและอนิเมชั่นท่าทาง จากนั้นจะส่งผลลัพธ์ของการยิงกลับไปยังไคลเอนต์ สำหรับตัวอย่างนี้สมมติว่ามันเป็นเฮดช็อตแล้วกัน!
ไคลเอนต์จะได้รับข้อความจากเซิร์ฟเวอร์พร้อมกับผลลัพธ์ของการยิงแล้วเล่น VFX และเสียงที่เหมาะสม ในกรณีนี้มันจะเป็น VFX และเสียงของเฮดช็อต เนื่องจากไคลเอนต์ต้องรอให้เซิร์ฟเวอร์แจ้งผลการยิงจึงมีความคลาดเคลื่อนระหว่างวิถีกระสุนและเอฟเฟกต์การโจมตีโดนเท่ากับเวลาการไปกลับของการเชื่อมต่อของคุณ (เช่น 40 มิลลิวินาทีไปยังเซิร์ฟเวอร์ = 80 มิลลิวินาทีความล่าช้าระหว่างวิถีกระสุนและ VFX การโจมตี) รวมถึงเวลาการประมวลผลเล็กน้อย หากมีความล่าช้าที่สูงกว่านี้ ความคลาดเคลื่อนนี้สามารถสังเกตเห็นได้ในเรียลไทม์
นี่เป็นสิ่งที่เรากำลังดำเนินการเพื่อปรับปรุงจากมุมมองของความชัดเจน
กรณีศึกษา 1: การยิงโดนเป้าหมายที่กำลังเคลื่อนที่
ในหลาย ๆ รายงานที่เกี่ยวกับการยิงโดนเป้านั้น เราจะเห็นว่าเป้าหมายของการยิงนั้นกำลังวิ่งอยู่ มาดูสิ่งที่เกิดขึ้นทางภาพเมื่อการยิงโดนเป้าหมายที่กำลังวิ่งอยู่ได้สำเร็จ เราจะเห็นว่าผู้เล่นทำเฮดช็อตได้สำเร็จโดนผู้เล่นที่วิ่งอยู่ เพื่อให้ง่ายต่อการอธิบายปัญหาในตัวอย่างนี้ ไคลเอนต์กำลังทำงานอยู่ที่ 60 FPS คุณจะเห็นว่าในเฟรมว่าก่อนที่จะยิงวิถีกระสุนออกไป ครอสแฮร์ของพวกเขาจะอยู่ในแนวเดียวกันกับหัวของศัตรู
อย่างไรก็ตาม ในเฟรมที่วิถีกระสุนออกมานั้น ไม่เป็นอย่างนั้นอีกต่อไป
คลิปที่สองแสดงถึงสถานการณ์เดียวกัน แต่การยิงนั้นพลาดเป้าหมายไปนิดเดียว เมื่อคุณดูวิดีโอแบบเฟรมต่อเฟรม คุณจะเห็นว่าความจริงคือตรงกันข้ามกัน: ครอสแฮร์ของพวกเขาอยู่ไม่ตรงหัวบนเฟรมก่อนวิถีกระสุน แต่บนหัว เฟรมวิถีกระสุนออกมาแล้ว ในแวบแรก คุณอาจคิดแล้วชี้ไปที่เฟรมพร้อมกับวิถีกระสุนแล้วพูดว่า “เห็นมั้ย เฮดช็อตชัด ๆ เลย!” เมื่อตรวจสอบวิดีโอหรือรีเพลย์แล้ว เราควรต้องดูที่เฟรมก่อนวิถีกระสุนเพื่อให้ได้ภาพที่ถูกต้องเมื่อมีการยิงออกไป
เรามาย้อนกลับไปที่ตัวอย่างที่ยิงโดนและดูที่เฟรมเมื่อ VFX ของการโจมตีถูกเรนเดอร์ มีช่องว่างที่เห็นได้ชัดเจนระหว่างตำแหน่งปัจจุบันของผู้เล่นและตำแหน่งของ VFX ของการยิงโดน เนื่องจากความคลาดเคลื่อนที่เกิดจากความล่าช้าของอินเทอร์เน็ต สิ่งนี้อาจสร้างความสับสนเมื่อคุณกำลังพยายามที่จะทำความเข้าใจว่าเกิดอะไรขึ้นกับการยิงของคุณ เนื่องจากคุณมีแนวโน้มที่จะมุ่งเน้นไปที่ตำแหน่งปัจจุบันของศัตรู ไม่ใช่ตำแหน่งของพวกเขาในเวลาที่ยิง สิ่งนี้ยังอาจนำไปสู่ความสับสนเพิ่มเติมในสถานการณ์ที่มีการนั่นยอง/เดินฉีกด้านข้าง (ซึ่งเราจะมาดูกันในกรณีศึกษา 2)
กรณีศึกษานี้แสดงให้เห็นถึงการขาดความชัดเจนกับระบบการยิงโดนเป้าในปัจจุบัน จริง ๆ แล้ว คุณไม่จำเป็นต้องเข้าใจข้อมูลพื้นหลังทั้งหมดเพื่อให้เข้าใจสถานการณ์ได้อย่างชัดเจน ในฐานะนักพัฒนา เรารับทราบเรื่องนี้และกำลังตรวจสอบวิธีการปรับปรุงความชัดเจนในกรณีเหล่านี้
กรณีศึกษา 2: VFX ของการนั่งยองแล้วยิง
สมมติคุณเข้าสู่การต่อสู้ด้วยปืนในระยะไกล ด้วยความเสียใจของตัวคุณในอนาคต คุณกดคลิกซ้ายค้างไว้และใช้ปืนของคุณยิงกราด อย่างน้อยกระสุนหนึ่งนัดน่าจะเป็นเฮดช็อต ใช่มั้ย? แต่ไม่เลย ด้วย Vandal ของคุณ คุณยิงโดนบอดี้ช็อต 3 นัด สร้าง 117 ดาเมจ ก่อนที่จะได้รับเฮดช็อตเป็นการตอบแทน
ด้วยความโมโห คุณเลยไปดูวิดีโอรีวิวหลังจากจบเกม โดยแน่ใจว่ามีเรื่องของการยิงโดนเป้าที่ไม่ดีอยู่แน่ คุณเห็นว่าผู้เล่นศัตรูกำลังนั่งยองอยู่เพราะพยายามจะหลบการยิงของคุณ ด้วยความประหลาดใจ คุณเห็น VFX ของการโจมตีบนหัวของเขาในขณะที่ผู้เล่นคนนั้นนั่งยองอยู่ แต่รายงานการต่อสู้ของคุณแสดงให้เห็นแค่การยิงโดนบอดี้ช็อตเท่านั้น! นี่มันอะไรกัน??
นี่คือลิงก์ของโพสต์จริงบน reddit ชื่อว่า “เฮดช็อตไม่ถูกตรวจจับเมื่อผู้เล่นนั่งยอง” ของการตั้งสมมติฐาน
เมื่อทีมของเราเข้าไปตรวจสอบรายงานของการยิงโดนเป้าที่ไม่ถูกต้อง สถานการณ์เช่นนี้เป็นต้นเหตุที่พบบ่อยที่สุดสำหรับสิ่งที่ดูเหมือนว่าจะเป็นการยิงโดนเป้าที่ไม่ถูกต้อง ในความเป็นจริงแล้ว การยิงโดนเป้านั้นทำงานอย่างถูกต้องแล้ว การยิงนั้นกำลังมุ่งไปในจุดที่คุณเล็งอยู่ (ยกเว้นการสาดยิงหรือข้อผิดพลาดในการเคลื่อนไหว) เมื่อคุณกดปุ่มยิง และการยิงนั้นถูกตรวจจับอย่างถูกต้องบนเซิร์ฟเวอร์
อย่างไรก็ตาม ปัจจัยที่แตกต่างกันหลายอย่างทำให้เข้าใจผิดทางภาพในกรณีแบบนี้:
- VFX ของการโจมตีคลาดเคลื่อนเนื่องจากความล่าช้าทางอินเทอร์เน็ต
- VFX ของการโจมตีจะแสดงขึ้นที่ตำแหน่งของผลกระทบการยิงเดิม
- ผู้เล่นที่เป็นเป้าหมายกำลังเคลื่อนที่ (ส่วนใหญ่มักจะนั่งยองอยู่)
อีกหนึ่งตัวอย่าง สมมติว่าผู้เล่นมีค่าปิง 50 ผู้เล่นยิงโดนไหล่ของผู้เล่นศัตรู เนื่องจากเราต้องรอให้เซิร์ฟเวอร์ยืนยันการโจมตี จึงผ่านไป 100 มิลลิวินาทีแล้วกว่า VFX ของการโจมตีจะเริ่มเล่นในตำแหน่งของการยิงโดนบอดี้ช็อต แต่ในช่วง 100 มิลลิวินาทีนั้น ผู้เล่นศัตรูเริ่มนั่งยอง โดยเคลื่อนศีรษะไปทางด้านหลังของ VFX การยิงที่เพิ่งเกิดขึ้นใหม่ ในระยะยาวและในช่วงที่มีการปะทะกัน VFX ของร่างกายที่โดนยิงอาจมีการสับสนเป็น VFX ที่ยิงโดนเฮดช็อตได้
นี่เป็นเรื่องที่ไม่ดีโดยเฉพาะอย่างยิ่งในช่วงเบต้าแพทช์ 0.50 เมื่อเลือดถูกปิดการใช้งานสำหรับทุกคนโดยไม่ได้ตั้งใจ และ VFX ประกายไฟของเรานั้นมีความชัดเจนทางภาพน้อยกว่าในการแยกแยะ VFX ของเฮดช็อตและบอดี้ช็อต เรามี VFX แยกเพื่อบ่งบอกบอดี้ช็อตและเฮดช็อตไว้ต่างหากมาเสมอ แต่เรารู้แล้วว่าภาพเหล่านั้นไม่ได้ดูออกอย่างชัดเจนเสมอไปในเวลาต่อสู้
นี่คือความล้มเหลวในความชัดเจนของการตรวจจับการยิงโดนเป้าที่เราพยายามปรับปรุงตลอด สิ่งหนึ่งที่เรากำลังทดลองอยู่คือการผูก VFX ของการยิงโดนกับร่างกายของตัวละครที่เกิดการยิงขึ้น เพื่อให้มีความสัมพันธ์ที่ชัดเจน แม้จะมีการล่าช้าสูงก็ตาม
การเปรียบเทียบ VFX ของเฮดช็อตที่ไม่มีเลือดในปัจจุบันของเรา เมื่อเปรียบเทียบกับ VFX ของบอดี้ช็อต:
การปรับปรุงความชัดเจนตามที่วางแผนไว้
กรณีศึกษาทั้งสองเน้นไปที่บางประเด็นที่ซึ่งการโจมตีปัจจุบันของเรายืนยันว่า VFX นั้นไม่สมบูรณ์ การเปลี่ยนแปลงอย่างหนึ่งที่เราทำซ้ำตลอดคือการมีเลือดและเอฟเฟกต์ประกายไฟเกิดในตำแหน่งปัจจุบันของตัวละคร ขึ้นอยู่กับว่าส่วนไหนของร่างกายที่โดนยิง และติดตามพวกเขาเมื่อพวกเขาเคลื่อนไหว สิ่งนี้จะเพิ่มความชัดเจนอย่างมากในสถานการณ์เช่นในกรณีศึกษาทั้ง 2 กรณีกับศัตรูที่นั่งยองอยู่ เพราะวิชวลเอฟเฟกต์จะเคลื่อนไหวตามการเคลื่อนไหวของร่างกาย
วิธีการหนึ่งในการประนีประนอมสมดุลนี้ก็คือมันเป็นไปได้ที่จะมีการยืนยัน VFX ของการโจมตีเพื่อเคลื่อนไหวไปด้านหลังที่กำบังพร้อมกับตัวละครที่ติดมา ลองพิจารณาถึงกรณีที่ผู้เล่นที่มีปิง 100 มิลลิวินาที ยิงผู้เล่นที่กำลังกระตุกตอนแอบมองจากมุม หากเขายิงโดนศัตรูและเขาเคลื่อนที่ไปหลบหลังมุมทันทีก่อนที่การยิงจะยืนยันมาจากเซิร์ฟเวอร์ ผู้ยิงอาจไม่สามารถเห็นการยืนยันการยิงได้เมื่อเกิดขึ้นจริง
เราได้พิจารณาการเพิ่มความละเอียดหลายอย่าง บางอย่างซึ่งจะติดตามตัวละครและอย่างอื่นที่เกิดทันทีในตำแหน่งการยิงโดน ตามการจำลองของไคลเอนต์ เพื่อบรรเทาปัญหานี้ อย่างไรก็ตาม สิ่งนี้อาจทำให้เกิดความสับสนหากการจำลองไคลเอนต์และเซิร์ฟเวอร์เห็นไม่ตรงกันกับผลลัพธ์ของการยิง: เอฟเฟกต์จะต้องชัดเจนว่ามันเป็นตัวแทนของอะไร จะได้ง่ายต่อการเข้าใจผลลัพธ์ของการยิง
เรากำลังดำเนินการอย่างต่อเนื่องในเรื่องนี้และการปรับปรุงอื่น ๆ เพื่อความชัดเจนและหวังว่าจะมีชุดการอัปเดตความชัดเจนที่จะแบ่งปันในไม่ช้านี้ ในแพทช์ในอนาคต
ส่งวิดีโอมาเรื่อย ๆ
หวังว่าโพสต์นี้จะช่วยให้คุณเข้าใจได้ดีขึ้นว่าการยิงโดนเป้าใน VALORANT ทำงานอย่างไรและเข้าใจได้ดียิ่งขึ้นว่าเหตุใดจึงต้องแก้ไขการยิงอย่างที่ทำไป โปรดส่งวิดีโอให้เราทุกครั้งที่คุณคิดว่าการยิงโดนเป้าทำงานผิดปกติ เราพยายามกันอย่างเต็มที่เพื่อดูวิดีโอทั้งหมด
แม้ว่าจะไม่มีปัญหา แต่มันก็ช่วยให้เราติดตามบั๊กความถูกต้องในการยิงโดนเป้าได้เร็วขึ้นเมื่อมันเกิดขึ้นจริง (อัตราการเต้นของหัวใจของผมเต้นแรงขึ้นทุกครั้งที่ผมเห็นคำว่า “การยิงโดนเป้า” บนโพสต์ reddit ที่ได้รับการโหวตสูงสุด)
ลิงก์นี้เป็นตัวอย่างบั๊กความถูกต้องในการยิงโดนเป้าทาง reddit