ตอนที่แล้วบทที่ 21 อีกครั้งที่ทุกอย่างเข้ากันได้!
ทั้งหมดรายชื่อตอน
ตอนถัดไปบทที่ 23 การสะสางหลังเหตุการณ์

บทที่ 22 เซียนผลักความผิด


บทที่ 22 เซียนผลักความผิด

ลิลิธขมวดคิ้วเล็กน้อย เธอจ้องไปที่หน้าจอคอมพิวเตอร์ พบว่าบันทึกการแก้ไขบั๊กที่แสดงอยู่นั้นมีความละเอียดมาก

ทั้งเวลาที่พบปัญหาและเวลาที่แก้ไขบันทึกไว้อย่างชัดเจน รวมถึงรายละเอียดของบั๊กและผลการทดสอบหลังการแก้ไขก็มีครบถ้วน

กล่าวได้ว่า เกมนี้เดิมมีบั๊กหลายสิบจุด กู้ฝานและซูถงช่วยกันทดสอบและแก้ไขจนเหลือเพียงสองจุด

ดูจากมุมนี้…การเพิ่มเวลาทดสอบและการจ้างหัวหน้าทีมทดสอบก็ได้ผลจริง

แต่สิ่งนี้ยังไม่สามารถตอบข้อสงสัยของลิลิธได้ทั้งหมด: “แต่ทำไม ‘เส้นทางนรก’ (Hell Trajectory) ถึงทดสอบแค่สามวันและมีบั๊กเพียงตัวเดียว ในขณะที่ ‘ซิซิฟัส’ (Sisyphus) ทดสอบถึงสองสัปดาห์แต่กลับมีบั๊กสองตัว?”

“ถ้าดูจากจำนวนบั๊กที่แก้ไขได้ก็เพิ่มขึ้นอย่างชัดเจน!”

กู้ฝานตอบอย่างจริงจัง: “พวกเธอปีศาจนี่ไม่รู้จักแยกแยะบ้างเหรอ? เกมสองเกมนี้มีความยากในการพัฒนาเท่ากันเหรอ?

“‘เส้นทางนรก’ เป็นเกม FPS แบบมาตรฐาน มีแม่แบบให้ใช้ บั๊กมันก็น้อยอยู่แล้ว; ‘ซิซิฟัส’ เป็นเกมที่เธอคิดค้นรูปแบบใหม่ขึ้นมาเอง ไม่มีแม่แบบ ฉันต้องเขียนโค้ดใหม่หมด บั๊กมันจะไม่เยอะได้ไง!

“ในฐานะคนออกแบบ เธอไม่รู้เหรอว่าการสร้างรูปแบบเกมใหม่ที่เกี่ยวข้องกับกฎฟิสิกส์พื้นฐานมันยากแค่ไหน!”

ลิลิธเงียบไปครู่หนึ่ง แต่ในที่สุดก็หามุมโจมตีใหม่ได้: “ถึงจะเป็นแบบนั้น…

“แต่ทำไมบั๊กที่พวกนายแก้ไขดูเหมือนเป็นเรื่องเล็ก ๆ น้อย ๆ แต่กลับปล่อยบั๊กสำคัญสองตัวไว้ล่ะ!”

กู้ฝานตอบกลับอย่างมั่นใจ: “อะไรเรียกว่าบั๊กเล็กน้อย? บั๊กก็คือบั๊ก เราให้ความสำคัญเท่ากันหมด มันแค่บั๊กเหล่านี้อยู่ในชั้นผิวของเกมเลยตรวจพบง่าย!

“ส่วนบั๊กที่ยังไม่พบเป็นบั๊กเชิงลึก ฉันเดาว่ามันเกี่ยวข้องกับกฎฟิสิกส์ในระดับล่างของโปรแกรม การตรวจพบมันง่ายขนาดนั้นที่ไหน!

“ไม่สิ เรื่องนี้อาจจะไม่ใช่บั๊กด้วยซ้ำ มันควรเรียกว่า ‘ช่องโหว่ในการออกแบบ’!”

ลิลิธอึ้งไปชั่วขณะ: “ดีล่ะ นายยอมรับแล้วว่านี่เป็นช่องโหว่ที่เกิดจากโปรแกรมที่นายเขียน!”

กู้ฝานส่ายหัวด้วยความเหนื่อยใจ: “เธอฟังอะไรไม่รู้เรื่องหรือไง? ฉันพูดว่ามันคือ ‘ช่องโหว่ในการออกแบบ’! นั่นหมายความว่ามันเป็นปัญหาจากแผนการออกแบบที่เธอให้ฉันตั้งแต่แรก!”

ลิลิธแทบจะเดือดพล่าน: “อะไรนะ? แผนการของฉันจะมีปัญหาได้ยังไง นายพูดให้ชัดเจน!”

กู้ฝานถอนหายใจอย่างเหนื่อยอ่อน ก่อนจะเริ่มตรวจสอบสาเหตุของบั๊กอย่างรวดเร็วอีกครั้ง

ลิลิธมองดูจากด้านข้างด้วยความไม่พอใจ

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

“ดูสิ นี่แหละที่ฉันบอกว่าเป็นปัญหาจากกฎพื้นฐาน และปัญหานี้เกี่ยวข้องกับแผนการออกแบบของเธอโดยตรง!

“ในแผนการของเธอเขียนไว้อย่างชัดเจนว่าเราต้องใช้แม่แบบฟิสิกส์ที่สมจริงที่สุด ถูกต้องไหม?”

ลิลิธทำหน้าตาไม่สบอารมณ์แต่ก็พยักหน้า

นั่นคือสิ่งที่เธอระบุไว้ในแผนการออกแบบ เพราะเหตุผลง่าย ๆ: เธอต้องการให้หินก้อนใหญ่กลิ้งลงเขาได้อย่างสมจริง หากไม่มีเครื่องมือฟิสิกส์สมจริง จะจำลองกระบวนการนี้ให้ดีได้อย่างไร? และจะทำให้ผู้เล่นรู้สึกหงุดหงิดพร้อมบริจาคอารมณ์ลบได้ยังไง?

ดังนั้น ในตอนที่กู้ฝานพัฒนาเกมนี้ เขาจึงเลือกใช้แม่แบบฟิสิกส์ที่ล้ำสมัยที่สุดในปัจจุบัน

“แต่ยิ่งแม่แบบฟิสิกส์สมจริงมากเท่าไหร่ ก็ยิ่งง่ายที่จะเกิดบั๊กแปลก ๆ โดยเฉพาะในส่วนที่เกี่ยวข้องกับแรงและเอฟเฟกต์ทางฟิสิกส์…”

กู้ฝานชี้ไปที่โค้ดบางบรรทัด: “ในกรณีที่ซิซิฟัสไม่ได้แบกหิน การกระโดดเดิมทีเป็นการกระทำที่ไม่มีความหมาย แต่ด้วยแม่แบบฟิสิกส์นี้ กลับส่งผลให้หินได้รับแรงและยิ่งกลิ้งเร็วขึ้นเรื่อย ๆ

“ส่วนบั๊ก ‘ปีกมังกร’ ก็เป็นกรณีเดียวกัน…”

กู้ฝานพูดต่อพลางเปิดโค้ดอีกส่วนหนึ่ง: “ในแผนการของเธอเขียนไว้ว่ามังกรต้องรบกวนผู้เล่นได้ เช่นใช้ปีกตบผู้เล่นตกลงไป ดังนั้นมังกรตัวนี้ต้องมีโมเดล มีขอบเขตการชน และเอฟเฟกต์ทางฟิสิกส์ ถูกไหม?”

“ฉันก็ทำตามนั้น

“แต่ใครจะไปคิดว่าผู้เล่นจะกระโดดขึ้นหลังมังกรได้ล่ะ! ส่วนการใช้ปีกมังกรเพื่อลอยตัวขึ้นยิ่งแปลกไปอีก ผู้เล่นกระโดดในจังหวะที่โดนปีกมังกรตบ ส่งผลให้แรงกระโดดเพิ่มกับแรงปีกและแรงลม ทำให้ผู้เล่นบินขึ้น

“ความสูงที่เขาบินได้ทั้งหมดนี้ถูกคำนวณโดยแม่แบบฟิสิกส์ในเกม ไม่มีส่วนเกี่ยวข้องกับฉันเลย…”

ลิลิธเบิกตากว้างเล็กน้อย ใบหน้าของเธอเต็มไปด้วยความไม่เชื่อ

“คุณหมายความว่า บั๊ก 100% เกิดจากเอนจินฟิสิกส์เหรอ?”

กู้ฝานส่ายหัว: “ผมไม่ได้พูดแบบนั้นนะ ผมคิดว่าโทษให้เอนจินฟิสิกส์ 70% น่าจะเหมาะสมกว่า”

ลิลิธพยักหน้า: “ดี อย่างน้อยนายก็ยังมีความเป็นมนุษย์อยู่บ้าง ในฐานะโปรแกรมเมอร์ นายก็ควรรับผิดชอบ 30%”

อย่างไรก็ตาม กู้ฝานส่ายหัวทันที: “ผมพูดตอนไหนว่าผมจะรับผิดชอบ 30%? 30% นี้เป็นของคุณต่างหาก!”

ลิลิธตกใจ: “ทำไมถึงเป็นของฉัน!”

กู้ฝานอธิบาย: “ถ้าไม่ใช่เพราะคุณระบุในแผนการออกแบบว่าเราต้องใช้ ‘เอนจินฟิสิกส์ที่สมจริง’ เรื่องแบบนี้จะเกิดขึ้นเหรอ? ต่อให้เอนจินนี้มีปัญหา แต่มันก็ถูกเลือกมาตามความต้องการของคุณ!

“และคุณก็ไม่ได้เขียนคำอธิบายเพิ่มเติมไว้ในแผนการออกแบบด้วย!”คุณไม่ได้เขียนว่าหินก้อนนี้ห้ามเร่งความเร็วใช่ไหม? หรือว่ามังกรตัวนี้ห้ามเหยียบใช่ไหม?

“สิ่งที่คุณไม่ได้เขียนไว้ จะนับว่าเป็นบั๊กได้ยังไง?”ถ้าคุณเขียนไว้ในแผนการออกแบบ ผมจะไม่ทำตามเหรอ? “ฟีเจอร์ที่คุณขอมา ผมเขียนให้หมด ฟีเจอร์ที่คุณไม่ได้ขอมา ผมก็ไม่กล้าใส่เพิ่ม เพราะไม่งั้นคุณก็จะบอกว่าผมทำเกินหน้าที่อีก!”สรุปแล้ว แผนการออกแบบเป็นของคุณ เอนจินเกมก็เลือกตามคำขอของคุณ ต่อให้มีช่องโหว่ ก็เป็นเพราะคุณไม่ได้คาดคิดถึงมัน ไม่เกี่ยวอะไรกับผมเลย! “คุณในฐานะนักออกแบบยังไม่สามารถคาดเดาได้เลยว่าผู้เล่นจะเล่นแบบนี้ แล้วผมในฐานะโปรแกรมเมอร์จะคาดเดาได้ยังไง!”คุณบอกสิว่านี่เป็น ‘ช่องโหว่โปรแกรม’ หรือ ‘ช่องโหว่การออกแบบ’?”

ลิลิธนิ่งงันไป เธอพยายามหาจุดโต้แย้งในคำพูดของกู้ฝาน แต่ก็หาไม่ได้

และแปลกมากที่มันดูเหมือนจะสมเหตุสมผล!

เธอก้มหน้าลงขมวดคิ้วแน่น: “ทำไมถึงกลายเป็นความผิดของฉันอีกแล้ว!”

แม้จะรู้สึกสับสนและไม่พอใจ แต่ลิลิธก็พบว่าเธอไม่สามารถโต้แย้งได้จริง ๆ

ถึงขั้นที่แม้แต่คำว่า “บั๊ก” ก็อาจไม่เหมาะสม เพราะมันไม่ได้มีข้อผิดพลาดในโค้ดเลย แต่กลับเหมือนเป็นเหตุการณ์ “บังเอิญ” ที่เกิดจากการปฏิสัมพันธ์ของหลายปัจจัยภายใต้กฎฟิสิกส์ของเกม

ให้กู้ฝานรับผิดชอบกับบั๊กสองตัวนี้? ดูเหมือนจะไม่ยุติธรรมสักเท่าไหร่

แต่ลิลิธก็ยังไม่ยอมแพ้: “เดี๋ยวก่อน ยังไงก็ไม่ถูก ต้องเป็นความผิดของฉันทั้งหมดเลยเหรอ? แล้วคนอื่นไม่ต้องรับผิดชอบเลยหรือไง?”

กู้ฝานถอนหายใจเบา ๆ: “ถ้าจะพูดแบบนั้น…

“ผมคิดว่าสาเหตุที่เกิดบั๊กนี้ขึ้น มีปัจจัยจากเอนจินฟิสิกส์ จากแผนการออกแบบของคุณ และยังมีอีกสาเหตุที่สำคัญมาก

“คือ อาจารย์ติง (Ding Lecturer)!”แต่ถึงอย่างนั้น สาเหตุที่มาจากอาจารย์ติงก็ยังสามารถโยงกลับไปที่คุณได้อยู่ดี”

ลิลิธตะลึง เธอชี้ไปที่ตัวเอง: “ทำไมสาเหตุที่มาจากอาจารย์ติงถึงโยงกลับมาที่ฉันได้?”

กู้ฝานพูดด้วยความมั่นใจ: “ลองคิดดูให้ดี งบโปรโมตสามล้านทั้งหมดนี้ทุ่มให้กับอาจารย์ติง นี่เป็นการตัดสินใจของคุณใช่ไหม?”ถ้าเหมือนครั้งก่อนที่ให้เขาโปรโมตแค่สองชั่วโมง เขาก็จะไม่มีวันเจอบั๊กนี้เลยใช่ไหม?”

ลิลิธอึ้งไป

ตามแผนเดิม ให้โปรโมตแค่สองชั่วโมง? ใช่ ถ้าเป็นแบบนั้นจริงก็คงไม่มีปัญหา…

ต้องรู้ว่า วันแรกที่อาจารย์ติงถ่ายทอดสดนั้นเป็น “คืนวันคริสต์มาส” ซึ่งไม่มีอะไรเกิดขึ้นเลย

เขาสตรีมเกมสองชั่วโมงแต่ไม่ได้พบเจอบั๊กใด ๆ เลย ในตอนนั้นเขาแทบจะโดนเกมนี้ทำให้รู้สึกหงุดหงิดจนท้อแท้ และหลังจากปิดเกมไปก็รีบไปเล่นเกม FPS สองรอบเพื่อระบายอารมณ์

จนกระทั่งวันที่สอง จำนวนสตรีมเมอร์ที่ถ่ายทอดสดเกม “ซิซิฟัส” ก็ลดลงอย่างมาก

ถ้าไม่ใช่เพราะข้อกำหนดในสัญญาที่บังคับให้อาจารย์ติงต้องสตรีมเกมนี้อย่างน้อยห้าวัน เขาก็คงไม่เปิดเกมนี้ขึ้นมาอีกในวันที่สอง และก็จะไม่มีวันเจอบั๊กนี้

และการตัดสินใจให้อาจารย์ติงสตรีมห้าวันนี้ ก็มาจากลิลิธ

แรงจูงใจของเธอก็ง่ายมาก เธออยากแก้แค้นและใช้เกมนี้ทรมานอาจารย์ติงให้สะใจ

แต่เธอไม่คาดคิดเลยว่าผลลัพธ์จะกลายเป็นแบบนี้…

0 0 โหวต
Article Rating
0 Comments
Inline Feedbacks
ดูความคิดเห็นทั้งหมด