โพสต์นี้ถูกเขียนโดย Nick ผู้ออกแบบการบรรยายระดับอาวุโสของเรา



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

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

ขั้นตอนที่ 1: การรวบรวม

รายละเอียดแพทช์ไม่ได้ถูกสร้างขึ้นมาโดยอัตโนมัติอย่างที่คนเชื่อกันนะครับ และการให้คนที่ทำงานกับโปรแกรมมาเขียนรายละเอียดแพทช์ของตัวเองก็ไม่เหมาะสมนัก ดังนั้นทุกคนจึงทำงานไปตามปกติ ไม่ว่าจะเป็นการสร้างโมเดลมอนสเตอร์หรือการปรับสมดุลสกิลหรือการลดอัตราการดรอป Exalted Orb ไปครึ่งหนึ่ง และเมื่อพวกเขานำงานของพวกเขาไป Commit (บันทึกการเปลี่ยนแปลง) สู่ระบบควบคุมเวอร์ชันของเรา (ด้วยการเพิ่มงานเหล่านั้นเข้าไปไฟล์เกมจำนวนมหาศาล) ซึ่งโดยทฤษฎีแล้วพวกเขาควรเขียนหมายเหตุเล็กน้อยเพื่ออธิบายว่าพวกเขาทำอะไรลงไปบ้าง ทุกอย่างที่ใครสักคนทำขณะที่ทำงานกับ Path of Exile นั้นจะถูกส่งเข้าไปอยู่ในคลังไฟล์ขนาดใหญ่ไปพร้อมกับหมายเหตุเหล่านั้น และสามารถดูได้ผ่านซอฟต์แวร์ควบคุมเวอร์ชันซึ่งมีหน้าตาแบบนี้ครับ:



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

ขั้นตอนที่ 2: การถ่ายอักษร

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

เรามีระบบตรวจจับงานทั้งหมดที่ต้องทำ และ Commit ก็มักเชื่อมโยงกับระบบนั้นครับ ฉะนั้นผมจะดูที่ Commit ที่ผมดึงออกมา หา ‘Issue’ (ซึ่งเป็นตัวตรวจจับงานหลักสำหรับงานนั้นๆ) แล้วตรวจดู Commit กับคอมเมนต์ในเธรดนั้นเพื่อทำความเข้าใจว่าหมายเหตุที่เขียนมางงๆ ว่า “ปรับเปลี่ยนความเสียหาย” มันแปลว่าอะไรกันแน่

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

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

แต่บางครั้งตัวเนื้อหาของ Commit ก็ไม่ชัดเจนขึ้นแม้จะมีข้อมูลระบุอยู่ใน Issue นั้นก็ตาม ซึ่งมันจะเกิดขึ้นในบัคที่ร้ายแรง หากเป็นกรณีนั้น ผมต้องไปคุยกับคนที่ทำงานกับเรื่องนี้และให้พวกเขาอธิบายว่าพวกเขาแก้ไขหรือเปลี่ยนแปลงอะไรบ้าง

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

Step 3: รายละเอียด

ต่อให้เป็นหมายเหตุ Commit ที่ดีที่สุดก็ไม่ค่อยมีรายละเอียดเฉพาะที่ผู้เล่นอยากรู้ ฉะนั้นในแต่ละแพทช์ ผมจะคิดว่ามีสกิลไหน ไอเทมไหน ม็อดไหน กับอย่างอื่นอะไรที่เปลี่ยนไปบ้าง แล้วไล่ดูไปทีละอย่างจากในเกมเพื่อจดค่าเริ่มต้นกับค่าใหม่ นี่เป็นขั้นตอนที่ผมหวาดกลัวที่สุด เพราะมันเป็นเรื่องง่ายมากๆ ที่จะพลาดอะไรไปบางอย่าง อย่างเช่นการเปลี่ยนแปลงมานาในการใช้สกิลในหินสกิลเลเวล 1 และการปรับสมดุลนั้นมักเกิดขึ้นอยู่เรื่อยๆ ฉะนั้นสิ่งที่ผมจดไว้อาจเปลี่ยนไปในวันต่อมา

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

ขั้นตอนที่ 4: การแปลและการแก้ไข

พอถึงเวลาที่เราตีพิมพ์รายละเอียดแพทช์ของเรา มันมักมีความยาวตั้งแต่ 7,000 ถึง 14,000 คำ ซึ่งแน่นอนว่าจะเต็มไปด้วยการสะกดผิด ข้อผิดพลาด และข้อมูลที่ล้าสมัย โชคดีที่เรามีทีมประกันคุณภาพ (Quality Assurance Team) ที่จะต้องตรวจการเปลี่ยนแปลงเหล่านี้เองทั้งหมด กับทีมนักแปลที่จะต้องอ่านรายละเอียดแพทช์เพื่อเป็นการแปลอยู่ดีครับ

ปกติคนไม่กี่คนจากทีมประกันคุณภาพจะดูผ่านไปทั้งหมดแล้วตามหาข้อผิดพลาดหรือการละไว้ที่เห็นได้ชัดเจน แล้วก็ทิ้งหมายเหตุให้ผมแก้ ขณะเดียวกัน เหล่านักแปลอันเลอเลิศของเราจะดูรายละเอียดแต่ละจุดแล้วก็เปลี่ยนให้เป็นสิ่งที่ผู้อ่านของพวกเขาอ่านออก คุณรู้ไหมว่ารายละเอียดแพทช์ของเราถูกแปลไปเป็นภาษาที่ต่างกันถึงแปดภาษา? นักแปลของเรายังชำนาญเป็นอย่างยิ่งในการตรวจชื่อ การเว้นวรรค การใช้อักษรพิมพ์ใหญ่พิมพ์เล็ก กับเรื่องอื่นๆ ที่เป็นศัพท์เฉพาะในเกมมากมาย และทิ้งหมายเหตุไว้มากมายให้ผมกลับไปแก้ไขครับ

ขั้นตอนที่ 5: วันประกาศแพทช์! การออกรายละเอียดกับความเศร้าโศก

ก่อนที่เราจะออกรายละเอียดแพทช์ได้ มันต้องถูกจัดรูปแบบให้เรียบร้อย ในวันประกาศแพทช์ Natalia ผู้จัดการชุมชนของเราใช้เวลาไม่กี่ชั่วโมงในการจัดรูปแบบให้เรียบร้อย เพราะว่าเธอเป็นมาโซคิสต์นั่นเอง แต่ผลลัพธ์มันออกมาดีมากๆ นั่นแหละ ฉะนั้น ขอบคุณนะ Natalia! อีกอย่าง Rieko ผู้พัฒนาเว็บได้ทำเครื่องมือเพื่อช่วยในการจัดรูปแบบ รวมถึงการโพสต์รายการขนาดมหึมาอย่างการเปลี่ยนแปลงม็อด ขอบคุณนะ Rieko!

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

เมื่อจัดรูปแบบทั้งหมดเรียบร้อย เราพยายามออกทุกภาษาไปพร้อมๆ กันและนั่งผ่อนคลาย

Just kidding!

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

ขั้นตอนที่ 6: ลืม

การเขียนรายละเอียดแพทช์มันก็เหมือนกับการกระดูกหักหรือการกินอาหารเม็กซิโกมากเกินไป อันได้แก่มันก่อให้เกิดแผลใจ ในเวลาไม่นานหลังจากที่ออกรายละเอียดแพทช์ใหญ่ๆ ไปแต่ละครั้ง ผมจะลืมไปว่าการไล่รื้อตามแต่ละ Commit มันเฮงซวยขนาดไหน และก็กลับไปทำงานในด้านอื่นๆ ต่อ แล้วก็ทำไม่รู้ไม่ชี้ต่อวันประกาศแพทช์ถัดไปที่จวนมาถึงในอนาคตนั่นแหละครับ

ตั้งแต่ต้นจนจบ รายละเอียดแพทช์ใหญ่ในแต่ละภาคเสริมใช้เวลาประมาณ 80 ชั่วโมงในการเทียบเคียง เขียน และออกรายละเอียด ซึ่งเวลาตรงนี้ไม่นับตอนที่มีคนอื่นมาร่วมด้วย ผมทำแบบนี้มาตั้งแต่แพทช์ 3.0.0 ซึ่งแปลว่าผมได้ใช้เวลาครึ่งปีในการทำงานไปกับการทำรายละเอียดแพทช์เพียงอย่างเดียวครับ

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

ผมรู้นะว่ายังไม่มีใครตอบคำถามที่คุณอยากถามใจจะขาด: เมื่อไหร่จะประกาศแพทช์?

เมื่อไหร่จะประกาศแพทช์: 12 มกราคม เวลาไทย วันนั้นแหละครับ
โพสต์โดย 
เมื่อ
Grinding Gear Games

รายงานโพสต์

รายงานบัญชี:

ประเภทรายงาน

ข้อมูลเพิ่มเติม