บทที่ 8 สาเหตุของBUG
บทที่ 8 สาเหตุของ BUG
เมื่อคิดได้ดังนั้น อาจารย์ติ๋งก็ก้าวเดินต่อไปข้างหน้าอย่างมั่นใจ
ในที่สุด เมื่อพบ "วิธีเปิดเกมที่ถูกต้อง" ความท้าทายในโหมดผู้เล่นเดี่ยวก็ดูเหมือนจะสมเหตุสมผลขึ้นมาก
ในกระบวนการเล่นเกมต่อจากนั้น อาจารย์ติ๋งเริ่มพบกับฉากต่าง ๆ ที่เปลี่ยนแปลงไป ประตูสู่นรกที่อยู่ในสายตาดูเหมือนจะใกล้เข้ามาทุกที ร่องรอยการถูกปีศาจกัดกร่อนในฉากต่าง ๆ ก็ยิ่งเด่นชัดขึ้นเรื่อย ๆ
ปีศาจที่พบเจอก็เริ่มแข็งแกร่งขึ้น ไม่ใช่แค่ร่างกายที่ใหญ่โตขึ้นเท่านั้น แต่เลือดก็เยอะขึ้น และอาวุธที่ใช้ก็พัฒนาขึ้นด้วย
ในช่วงแรก อาจารย์ติ๋งสามารถใช้ทักษะ "ยิงกระสุนเลี้ยวโค้ง" เพื่อกำจัดศัตรูส่วนใหญ่ได้ แต่ไม่นานนัก ระดับความยากของด่านก็เพิ่มขึ้นอีก เขาจำเป็นต้องฝึกฝนทักษะให้เชี่ยวชาญขึ้น เพื่อเพิ่มความแม่นยำของ "การยิงกระสุนเลี้ยวโค้ง" และยังต้องนำกลยุทธ์จากเกม FPS ทั่วไปมาใช้อย่างเต็มรูปแบบด้วย
เช่น การล่อหลอก การล้อมโจมตี การรบแบบกองโจร และการใช้ปืนหลากหลายชนิดอย่างยืดหยุ่น
ในตอนแรก อาจารย์ติ๋งเพียงแค่ต้องการทำงานตามข้อตกลงที่ได้รับมา แต่เมื่อเล่นเกมไปเรื่อย ๆ เขากลับพบว่าเกมนี้เริ่มสนุกขึ้นเรื่อย ๆ!
เพียงแค่ระบบง่าย ๆ อย่าง "การยิงกระสุนเลี้ยวโค้ง" ก็เปลี่ยนพื้นฐานการเล่นเกมนี้ไปอย่างสิ้นเชิง ทำให้มันกลายเป็นเกมที่เต็มไปด้วยความสนุกและความท้าทาย!
ในขณะเดียวกัน แฟนคลับของอาจารย์ติ๋งก็เริ่มทดสอบเกมนี้กันบ้างแล้ว
และในกลุ่มผู้เล่นที่มีพรสวรรค์ดีเยี่ยม พวกเขาก็เรียนรู้เทคนิค "การยิงกระสุนเลี้ยวโค้ง" ได้อย่างรวดเร็ว
พวกเขาประหลาดใจเมื่อพบว่า พวกเขาเริ่มสามารถต่อสู้กับปีศาจได้แล้ว!
แม้ว่าปีศาจจะมีเลือดที่หนามากและพลังโจมตีที่รุนแรง แต่พวกมันมีเพียงสามตัวเท่านั้น และการเคลื่อนไหวของพวกมันก็เชื่องช้า
ปืนใหญ่ "อวสาน" เมื่อติดตั้งแล้วไม่สามารถเคลื่อนที่ได้ ส่วนปืน "เกทลิงแห่งนรก" แม้จะเคลื่อนไหวได้ แต่ความเร็วในการเคลื่อนที่ก็ช้ามาก กลายเป็นเป้าหมายเคลื่อนที่ง่าย ๆ
ส่วนสาเหตุที่เป็นเช่นนี้...
ก็เพราะ ลิลิธไม่เคยคิดมาก่อนเลยว่า "ปีศาจจะโดนโจมตี" ได้จริง
แน่นอนว่าผู้เล่นที่เล่นเป็นปีศาจยังสามารถเลือกตัวละครปีศาจหรืออาวุธที่คล่องตัวกว่านี้ได้ แต่ตัวเลือกดังกล่าวก็จะลดค่าความแข็งแกร่งของเลือดและคุณสมบัติอื่น ๆ ลง
ทำให้ผู้เล่นมนุษย์รู้สึกยินดีที่ได้ค้นพบว่า เมื่อปีศาจเลือกใช้ปืนหนักแบบยืนปักหลัก พวกเขาสามารถใช้วิธี "การยิงกระสุนเลี้ยวโค้ง" จากที่กำบังระยะไกลโจมตีได้ และเมื่อปีศาจเลือกตัวที่เคลื่อนไหวเร็วพร้อมอาวุธที่คล่องตัว พวกเขาก็ใช้จำนวนผู้เล่นที่มากกว่าร่วมโจมตีพร้อมกันได้
ความสมดุลแปลก ๆ ระหว่างพลังของปีศาจและมนุษย์ได้เกิดขึ้นจริง!
ในขณะเดียวกัน ที่ห้องเช่าแห่งหนึ่ง
ค่าความรู้สึกด้านลบในสายตาของกู้ฝานยังคงเปลี่ยนแปลงอย่างรวดเร็ว แต่ความเร็วในการเพิ่มลดเริ่มช้าลงอย่างชัดเจน
ไม่ใช่เพราะจำนวนผู้เล่นที่เข้าสู่เกมลดลง ตรงกันข้าม ช่วงเวลานี้เป็นช่วงที่เกมเริ่มมียอดผู้เล่นเข้าสูงสุด
สิ่งสำคัญคือทัศนคติของหลาย ๆ คนที่มีต่อเกมนี้เริ่มเปลี่ยนไป
จากเดิมที่เพิ่มค่าความรู้สึกด้านลบ กลายเป็นการลดค่าความรู้สึกด้านลบแทน!
[ค่าความรู้สึกด้านลบจาก ติ๋งเฉียง -95!]
[ค่าความรู้สึกด้านลบจาก ติ๋งเฉียง -332!]
ชัดเจนว่าในหมู่ผู้เล่นจำนวนมาก อาจารย์ติ๋งสนุกสนานกับเกมนี้เป็นพิเศษ
เมื่อเขาพูดประโยคที่ว่า "คำตอบอยู่ในคำถามเอง" และไขปริศนาของเกม "รอยนรก" ได้สำเร็จ เขารู้สึกยินดีและสนุกสนานมากจนทำให้ค่าความรู้สึกด้านลบลดลงถึง -332 หน่วย
ค่าตัวเลขนี้ยังมากกว่าความสุขที่ผู้เล่นได้รับในโหมดออนไลน์เมื่อเล่นเป็นปีศาจและไล่ฆ่าผู้เล่นอื่นเสียอีก
นี่แสดงให้เห็นว่า แผนการของกู้ฝานได้ผลแล้ว!
เขาสามารถใช้ BUG เล็ก ๆ เปลี่ยนวิธีการเล่นหลักของเกม ให้เกมที่ไม่มีความสนุกใด ๆ และมีไว้เพื่อทรมานผู้เล่น กลายเป็นเกมที่มีความยากกำลังดีและมีวิธีเล่นที่แปลกใหม่
เมื่อดูข้อมูลจากหลังบ้าน ยอดขายของเกมก็เริ่มพุ่งสูงขึ้น!
จากเดิมที่หลังจากเล่นไปสองชั่วโมง ผู้เล่นส่วนใหญ่จะเลิกเล่นและไม่ซื้อเกม แต่เมื่อพบกลไกลับนี้ พวกเขาต่างยอมควักเงินซื้อเกมกันอย่างใจป้ำ
เพียง 18 หยวน! ราคานี้ไม่มีคำว่าแพงหรือถูกโกง!
จ่ายแค่ 18 หยวนเพื่อสัมผัสความสนุกของ "การยิงกระสุนเลี้ยวโค้ง" ใครจะไม่อยากลอง?
ส่วนลิลิธ ขณะที่ถือมันฝรั่งทอด มือของเธอค้างอยู่กลางอากาศ ร่างทั้งร่าง หรือควรเรียกว่า ปีศาจทั้งตัว ดูเหมือนจะหยุดนิ่งไปโดยสมบูรณ์
นี่มันเกิดอะไรขึ้นกันแน่??
ลิลิธรู้สึกเหมือน CPU ของตัวเองเริ่มไหม้แล้ว: เกมนี้เกิด BUG ขึ้น แต่กลับกลายเป็นว่าผู้เล่นที่ควรจะถูกเกมบีบให้ออกจากเกม กลับยิ่งเล่นยิ่งสนุกงั้นหรือ?
เมื่อเห็นค่าความรู้สึกด้านลบที่เธอได้รับลดลงอย่างรวดเร็ว ลิลิธถึงกับโกรธจัด เธอโยนซองมันฝรั่งทอดที่กินหมดแล้วลงพื้นอย่างแรง พร้อมตะโกนด้วยความโมโหว่า
“นี่มันเกิดอะไรขึ้นกันแน่!”
เมื่อเผชิญหน้ากับความเกรี้ยวกราดของลิลิธ กู้ฝานทำหน้าเลิ่กลั่ก:
“ผมก็ไม่รู้นี่ครับ!”
ลิลิธยิ่งโกรธกว่าเดิม:
“เกมเป็นฝีมือของนาย นายจะไม่รู้ได้ยังไง!”
กู้ฝานร้องโอดครวญ:
“การออกแบบทั้งหมดของเกมนี้คุณเป็นคนคิด ผมรู้ว่าพวกปีศาจไม่มีหัวใจ แต่นี่ช่วยพูดตามความจริงหน่อยเถอะครับ ผมทำโปรแกรมตามที่คุณออกแบบเป๊ะไหม?
“ผมไม่ได้แก้ไขอะไรจากที่คุณออกแบบเลยใช่ไหม?
“หรือว่าคุณจะเหมือนบริษัทไอทีในโลกมนุษย์ ที่เวลามีปัญหาก็เอาโปรแกรมเมอร์ไปเซ่นเจ้า? ยังมีความยุติธรรมอยู่ไหมเนี่ย?”
ลิลิธชะงักเล็กน้อย เธอขมวดคิ้วคิดตาม คำพูดของกู้ฝานดูเหมือนจะมีเหตุผลอยู่บ้าง
เกมนี้ถูกพัฒนาตามแผนการออกแบบของเธออย่างเคร่งครัด
แต่เธอคิดได้ทันที:
“งั้น BUG นี้นายจะอธิบายยังไง?”
กู้ฝานรู้สึกงุนงง:
“เกมมี BUG มันก็เรื่องปกติไม่ใช่เหรอครับ?
“ถ้าคุณอยากได้เกมที่ไม่มี BUG เลย นั่นก็สูงเกินไปแล้วครับ ไม่ใช่แค่ผม แต่โปรแกรมเมอร์คนไหนก็ทำไม่ได้!
“ผมว่าถ้าจะทำเกมแบบนั้นได้น่าจะต้องให้พระเจ้าลงมาทำเอง หรือไม่คุณก็ลองไปขอร้องท่านดูไหมล่ะ?
“อีกอย่าง ถ้าจะมีใครในพวกเราที่ต้องรับผิดชอบเรื่อง BUG ก็น่าจะเป็นคุณมากกว่านะครับ!”
ลิลิธถึงกับงง:
“ทำไมล่ะ?”
กู้ฝานเปลี่ยนโหมดมาเป็นฝ่ายรุก พูดอย่างมั่นใจ:
“ตอนนั้นผมก็เคยบอกแล้ว ว่าเกมขนาดนี้ควรทดสอบอย่างน้อยหนึ่งสัปดาห์ ถ้าจะให้มั่นใจจริง ๆ ก็ต้องทดสอบเป็นเดือน
“แต่คุณกลับบอกให้ทดสอบแค่สามวันแล้วปล่อยเกมออกขาย มี BUG หลุดมาบ้างมันก็ปกติ แล้วแบบนี้จะมาโทษผมได้ยังไง?”
ลิลิธเริ่มพูดไม่ออก:
“แต่นายทดสอบแค่สามวันก็แก้ BUG ได้เกือบหมด เหลือแค่ BUG เดียวที่ร้ายแรงที่สุด! มันยากจะเชื่อว่านายไม่ได้ตั้งใจ!”
กู้ฝานไม่ยอมแพ้:
“ผมแก้ BUG ได้มากขนาดนั้นในสามวัน มันแสดงว่าผมเก่งต่างหากล่ะ!
“อีกอย่าง ตอนที่ผมใช้เครื่องมือทดสอบหา BUG คุณก็เห็นอยู่ ถ้าเครื่องมือยังหา BUG นี้ไม่เจอ แล้วผมจะแก้ได้ยังไง?”
ในฐานะโปรแกรมเมอร์ การโยนความผิดเป็นทักษะที่จำเป็น และกู้ฝานก็เชี่ยวชาญเรื่องนี้เป็นพิเศษ
ท่าทีของเขาแน่วแน่ ต่อให้วันนี้จะพูดจนล้มฟ้า นี่ก็เป็นแค่ BUG เท่านั้น! เป็นเหตุการณ์ที่ไม่ได้ตั้งใจ!
เสียงของลิลิธเริ่มแผ่วลง เห็นได้ชัดว่าเธอเองก็รู้สึกว่าตัวเองไม่ได้อยู่ในสถานะที่จะจับผิดอะไรได้
ตราบใดที่กู้ฝานไม่ละเมิดสัญญา ลิลิธก็ไม่สามารถหาข้อตำหนิเขาได้
“ก็ได้ งั้นดูเหมือนจะไม่ใช่ความผิดของนาย...
“แต่ฉันยังสงสัยอยู่ดี! เกมนี้ก็สร้างจากเทมเพลตเกมทั่วไป แล้วทำไมเกมอื่น ๆ ที่ใช้เทมเพลตเดียวกันไม่มีปัญหาอะไร แต่เกมของเรากลับเกิด BUG กระสุนเลี้ยวโค้งแบบนี้ได้?”
กู้ฝานเงียบไปสักพัก ก่อนจะถอนหายใจ:
“ก็ได้ ผมจะลองไปเปิดดูโค้ดตรวจสอบดูอีกที”
พูดจบ กู้ฝานก็ยกโน้ตบุ๊กมาที่ห้องนั่งเล่น นั่งลงบนเก้าอี้เล็ก ๆ เปิดโปรแกรมแก้ไขเกมขึ้นมา และเริ่มตรวจสอบโค้ดต้นฉบับของเกม "รอยนรก"
แม้ว่าเกมนี้จะใช้เทมเพลตเกมที่มีอยู่แล้ว แต่การตรวจสอบโค้ดต้นฉบับของเทมเพลตก็สามารถทำได้
ลิลิธยืนอยู่ข้าง ๆ มองโค้ดที่มีพื้นหลังสีดำกับตัวอักษรสีขาวที่เลื่อนผ่านหน้าจออย่างรวดเร็ว เธอเห็นกู้ฝานพิมพ์คำสั่งบางอย่างเข้าไป และในบางครั้งยังค้นข้อมูลเพิ่มเติมทางอินเทอร์เน็ตอีกด้วย
เธอเริ่มรู้สึกทึ่งโดยไม่รู้ตัว ไม่สามารถพูดอะไรได้มาก ได้แต่รอคอยอย่างอดทน
กว่าหนึ่งชั่วโมงผ่านไป กู้ฝานถึงกับแสดงสีหน้าเหมือนเข้าใจบางอย่างขึ้นมาได้
เขาชี้ไปที่โค้ดบรรทัดหนึ่งและพูดว่า:
“โอเค ผมเข้าใจแล้ว ปัญหาอยู่ตรงนี้แหละ”
ลิลิธขมวดคิ้วมองตาม แต่ชัดเจนว่าเธอดูแล้วก็ยังไม่เข้าใจอะไรเลย
กู้ฝานอธิบาย:
“เทมเพลตนี้มาจากเกมเก่าเกมหนึ่งชื่อว่า ‘ปฏิบัติการต่อต้านการก่อการร้าย’ (Anti-Terror Action) เกมนี้เคยมี BUG คล้าย ๆ กันเมื่อหลายปีก่อน แต่ถูกแก้ไขไปแล้วในเวลานั้น เลยไม่ได้รับความสนใจมากนัก”
ลิลิธขมวดคิ้วหนักขึ้น:
“ปฏิบัติการต่อต้านการก่อการร้าย?”
เธอไม่เคยได้ยินชื่อเกมนี้มาก่อน แต่กู้ฝานเตรียมข้อมูลมาแล้วจากอินเทอร์เน็ต
ข้อมูลแสดงให้เห็นว่าเกมนี้เป็นเกมที่ออกมานานกว่าสิบปีที่แล้ว และเพราะความเก่าแก่และมีคุณค่าทางประวัติศาสตร์ จึงถูกซื้อลิขสิทธิ์และโค้ดมาทำเป็นเทมเพลตสำหรับนักพัฒนาเกมอินดี้ทั่วไป
ในข้อมูลยังระบุว่า เกมนี้เคยมี BUG ที่น่าสนใจมากเรียกว่า BUG “สไนเปอร์หมุน” (Quickscope Bug)!
BUG นี้จะทำให้ผู้เล่นสามารถสร้างความเสียหายได้ตลอดแนวเส้นทางที่หมุนสไนเปอร์ ซึ่งในตอนนั้นสร้างกระแสฮือฮาอย่างมาก
แต่เพราะ BUG นี้ทำให้เกมเสียสมดุลอย่างรุนแรง จึงถูกแก้ไขไปในเวลาไม่นาน ดังนั้นผู้เล่นส่วนใหญ่จึงลืมมันไปหมดแล้ว เว้นแต่จะค้นหาข้อมูลอย่างตั้งใจ
แต่เรื่องนี้ยังไม่ทำให้ลิลิธเชื่อใจ
“มันไม่ถูกต้องนี่ BUG นี้ถูกแก้ไขไปแล้วไม่ใช่เหรอ? แล้วทำไมถึงกลับมาได้? และ BUG นี้ก็ดูไม่เหมือนกับ BUG ในเกมของเราเลยนี่?”
กู้ฝานถอนหายใจ:
“มันถูกแก้ไขแล้วจริง แต่คุณต้องเข้าใจนะว่า การแก้ BUG ของโปรแกรมเมอร์ ไม่ได้หมายความว่า ‘แก้ปัญหาจากรากฐานอย่างสมบูรณ์’ เราแค่ทำให้ BUG นั้น ‘หายไปจากการมองเห็น’ ได้เท่านั้น
“แต่ในโค้ดต้นฉบับยังมีโอกาสที่ส่วนหนึ่งจะกระตุ้น BUG อื่น ๆ ได้อยู่ และเราไม่สามารถการันตีได้เลย
“เหมือนหมอที่รักษาโรค เรารักษาให้คนไข้ดูเหมือนหายดีในตอนนั้น แต่จะกลับมาเป็นใหม่หรือเปล่า เราไม่สามารถรับประกันได้
“เห็นได้ชัดว่า จุดอ่อนนี้ยังซ่อนอยู่ในโค้ดต้นฉบับ และบังเอิญว่ามีตัวกระตุ้นบางอย่างเกิดขึ้นในเกมของเรา”
ลิลิธถาม:
“ตัวกระตุ้นอะไร?”
กู้ฝานมองหน้าเธอ:
“ก็เงื่อนไขที่คุณใส่ไว้ในดีไซน์ของเกมไง คุณระบุไว้ว่าเกมนี้ต้องใช้ระบบกระสุนวิถีจริง”
ลิลิธทำหน้าสงสัย:
“ระบบกระสุนวิถีจริงแล้วไง? ฉันแค่ต้องการจำลองการตกของกระสุน มันเป็นฟีเจอร์ที่ดูสมเหตุสมผลและธรรมดามากนะ”
กู้ฝานพยักหน้า:
“ใช่ มันเป็นฟีเจอร์ที่สมเหตุสมผลและธรรมดามาก
“ระบบกระสุนวิถีจริง หมายถึงกระสุนที่ได้รับผลจากแรงโน้มถ่วงและส่งผลต่อวิถีการเคลื่อนที่ ผมก็ทำตามที่คุณออกแบบไว้เป๊ะ แต่ดูเหมือนมันจะกระตุ้นช่องโหว่ในโค้ดต้นฉบับ ซึ่งทำให้เกมตีความผิดพลาด
“ผลคือ เมื่อผู้เล่นใช้สไนเปอร์หมุน กระสุนกลับถูกเพิ่มแรงภายนอกเหมือนกับถูกแรงโน้มถ่วงดึงจนเลี้ยวโค้งได้
“พูดง่าย ๆ สถานการณ์ก็เป็นแบบนี้ และปัญหาก็คือสิ่งนี้
“ผมก็แค่โปรแกรมเมอร์ ไม่ใช่พระเจ้า”
กู้ฝานยกมือขึ้นเหมือนยอมแพ้ โยนความรับผิดชอบออกไปจากตัวอย่างแนบเนียน