เป็นเวลาหลายปีแล้วที่ฉันทำ gamedev แต่เหนือคำตอบที่ดีมีบางสิ่งที่ฉันต้องการเพิ่มและรายละเอียด
สิ่งแรกที่ได้กล่าวไปแล้วคือผลลัพธ์เป็นเพียงภาพและการได้ยินต่อข้อ จำกัด "FPS-critical" ที่แน่นหนาและงบประมาณการคำนวณ / หน่วยความจำ แนวคิดของความถูกต้องจะพร่ามัวเมื่อมีคำถามเหมือนกันว่า "มันดูดีหรือไม่มันทำงานได้อย่างราบรื่นโดยไม่มี stutters ใด ๆ หรือไม่ฟังดูดีหรือไม่" ในขณะที่นักพัฒนาปรับแต่งและปรับแต่งและการประมาณในขณะที่การทำงานร่วมกันของนักออกแบบ / นักพัฒนาจะทำให้สิ่งที่ดูและฟังดูแตกต่างจากการทำซ้ำอย่างรวดเร็วทุกครั้ง
อีกคนหนึ่งคือผู้ทดสอบสามารถยอดเยี่ยม! ฉันไม่เคยพบกลุ่มผู้ทดสอบที่ทุ่มเทมากขึ้นในโดเมนอื่นใดเนื่องจากพวกเขาต้องการเพื่อทดสอบซอฟต์แวร์ พวกเขากำลังสนุก พวกเขากำลังติดและนอนถัดจากคอมพิวเตอร์ในขณะที่สำรวจทุกซอกทุกมุมของเกม มันจะกลายเป็นเรื่องง่ายที่จะค้นพบแม้กระทั่งความผิดปกติที่เกิดขึ้นเมื่อผู้คนได้รับความบันเทิงจากการทดสอบอย่างละเอียดทุกซอกทุกมุมของซอฟต์แวร์ในขณะที่ติดมัน ในอุตสาหกรรมปัจจุบันของฉันผู้ทดสอบค่อนข้างยากที่จะทำงานด้วยเนื่องจากพวกเขาหลายคนเป็นผู้เชี่ยวชาญในการทำมาหากินของซอฟต์แวร์และดังนั้นพวกเขาจึงต้องอาศัยคุณสมบัติมากมายเพื่อทำงานให้เสร็จและไม่จำเป็นต้องเหนื่อย ทุกซอกทุกซอกทุกมุม ตามธรรมชาติแล้วเมื่อเราไม่สามารถพึ่งพาผู้ทดสอบได้มากนักเราต้องการการทดสอบอัตโนมัติมากขึ้น
อีกสิ่งหนึ่งคือรหัสฐานสำหรับเกมโดยทั่วไปจะไม่ได้รับการบำรุงรักษาและแก้ไขและขยายเป็นเวลาหลายปีและหลายปี มันไม่เหมือนกับนักพัฒนาของ Super Mario ที่พัฒนามาตั้งแต่แรกใน 6502 ชุดต้องมีอะไรที่คล้ายกับรหัสต้นฉบับมานานหลังจากเกมส่งมอบ Doom 3 อาจใช้โค้ดเป็นศูนย์ (หรือปิด) จาก Doom 1 หากมีแฟรนไชส์ที่ต่อเนื่องเกมใหม่ ๆ จะเหมือน "ภาคต่อ" มากกว่า "การอัพเกรด" เกมส่วนใหญ่เป็นเพียงการจัดส่งและอาจปล่อยแพทช์ DLC บางส่วนจากนั้นรหัสก็เสร็จสิ้น นั่นเป็นความแตกต่างอย่างมากจากอุตสาหกรรม VFX ของฉันที่ฉันทำงานเกี่ยวกับการดูแลรักษารหัสย้อนหลังไปถึงวัน Amiga ซึ่งได้รับการจัดวางและบำรุงรักษามานานหลายทศวรรษ เกมมักจะไม่ '
หนึ่งในเหตุผลสำหรับฐานรหัสเกมสั้น ๆ นี้คือพวกมันเชื่อมโยงกับฮาร์ดแวร์ เมื่อรวมเข้ากับลักษณะที่ล้ำสมัยและข้อกำหนดที่สำคัญของ FPS พวกเขามักไม่สามารถพัฒนาในแบบที่รายละเอียดของฮาร์ดแวร์เป็นนามธรรมไม่ได้ใกล้เคียง พวกเขามักจะเขียนเฉพาะสำหรับการสร้างเป้าหมายของฮาร์ดแวร์โดยทั่วไปและไม่นานก่อนที่ PS3 จะถูกแทนที่ด้วย PS4 ซึ่งล้าสมัยและถูกแทนที่ด้วย PS5 และอื่น ๆ และอย่างรวดเร็วทั้งหมด ความสามารถด้านฮาร์ดแวร์มีบทบาทสำคัญในการออกแบบและพัฒนาเกมซึ่งโดยทั่วไปแล้วมันไม่คุ้มค่าที่จะพยายามรักษารหัสเดียวกันที่เขียนขึ้นสำหรับ PSX สำหรับ PS4 เช่นแฟรนไชส์เกมส่วนใหญ่ที่มีอายุการใช้งานยาวนาน ส่วนใหญ่มาจากพื้นดินสำหรับฮาร์ดแวร์ใหม่ล่าสุด
ด้วย codebase ที่มีอายุสั้นทำให้เวลาการบำรุงรักษามี จำกัด (เช่นเวลาที่ จำกัด ซึ่งจะต้องแก้ไขรหัส) ด้วยระยะเวลาที่ จำกัด สำหรับรหัสที่จะเปลี่ยนซึ่งไม่ครอบคลุมระยะเวลาหลายปีกับขอบเขตของเครื่องยนต์ที่เพิ่มขึ้นและใหญ่ขึ้นในการอัพเกรดแต่ละครั้งและเมื่อรวมกับความจริงที่ว่าเกมไม่มีความใกล้เคียงกับภารกิจสำคัญมาก จำเป็นอย่างยิ่งที่จะต้องใช้การทดสอบหน่วยที่ครบถ้วนสมบูรณ์ที่สุดและการรวมเข้าด้วยกัน ไม่มีประโยชน์ในการทำเช่นนั้นในการตรวจสอบความสมบูรณ์ของการเปลี่ยนแปลงในอนาคตหากการเปลี่ยนแปลงในอนาคตจะไม่เกิดขึ้นและการทดสอบและการปรับโครงสร้างหน่วยของรหัสดั้งเดิมนั้นไม่เกี่ยวข้องโดยธรรมชาติหากไม่มี "มรดก" ในตอนแรก
อีกเกมหนึ่งที่ไม่เกี่ยวข้องกันเสมอไปคือเกมอาจกำหนดเป้าหมายเฉพาะช่วงฮาร์ดแวร์ที่แคบมากโดยไม่มีพอร์ตเดสก์ท็อป ในกรณีเหล่านี้แหล่งที่มาของความผิดพลาดที่คาดเดาไม่ได้ในบริบทเหล่านี้ซึ่งผู้ใช้ที่ใช้งานซอฟต์แวร์ที่มีฮาร์ดแวร์และไดรเวอร์ที่แตกต่างกันจะถูกกำจัด
ที่กล่าวว่าการทดสอบการรวมที่ระดับสูงสุด / coarsest ระดับมีแนวโน้มที่จะมีประโยชน์มากขึ้นทันที ตัวอย่างเช่นเกมหลายเกมอาจใช้วิธีการบันทึกวิธีการเปลี่ยนแปลงสถานะของเกมเมื่อเวลาผ่านไปสำหรับ "ไกล" คุณสมบัติการเล่นซ้ำดังกล่าวสามารถทำให้มั่นใจได้ว่าเกมนั้นสามารถกำหนดได้และยังสามารถใช้เป็นเครื่องมือทดสอบด้วยตัวเองเพื่อเล่นซ้ำเกมที่บันทึกโดยบุคคลอื่นก่อนหน้านี้
ฉันยังได้พบกับ gamedevs ที่ทำงานในสตูดิโอขนาดเล็กที่ทำสิ่งต่าง ๆ เช่นเขียนบ็อตสำหรับเกมของพวกเขาและให้บอทเล่นเกมด้วยความเร็วสูงสุดและรันการจำลองนั้นโดยเริ่มแรกพบการผิดพลาดที่คลุมเครือหลังจากหนึ่งหรือสองวัน ดำเนินการจำลองอีกครั้งและทำซ้ำจนกว่าจะไม่มีข้อขัดข้องในการแสดงอีกต่อไปแม้หลังจากใช้งานเป็นเวลาหลายสัปดาห์เมื่อสิ้นสุด มีวิธีการปฏิบัติที่น่าสนใจหลายอย่างเช่นที่ฉันเคยเห็นจาก gamedevs ไปจนถึงการทดสอบซอฟต์แวร์ของพวกเขา แต่บ่อยครั้งในวิธีที่คล้ายกับการทดสอบการรวมเข้าด้วยกันที่ยากขึ้นที่สุดและการจำลองสิ่งต่าง ๆ อย่างใกล้ชิดกับวิธีที่ผู้เล่นโต้ตอบกับเกม
ในที่สุดเอนจิ้นเกม AAA ขนาดใหญ่เหล่านี้ก็เริ่มคล้ายกับสัตว์ร้ายประเภทต่าง ๆ : อายุการใช้งานที่ยาวนานขึ้นสามารถทำให้ฮาร์ดแวร์ดีขึ้นเล็กน้อยโดยมีรหัสเบสที่ใหญ่ขึ้นและช่วงการบำรุงรักษาที่ยาวนานขึ้นขณะที่บรรณาธิการระดับเริ่ม ฉันนึกภาพเครื่องยนต์ขนาดใหญ่เหล่านั้นอาจเรียกร้องให้มีขั้นตอนการทดสอบอย่างละเอียดยิ่งขึ้น ยังมีสตูดิโอเกมจำนวนมากที่ไม่ได้เขียนเอนจิ้นเกม AAA ขนาดใหญ่: พวกเขาอนุญาตหรือพัฒนาเอนจิ้นเล็ก ๆ ที่มีขนาดเล็กและไม่ได้รับการดูแลเป็นเวลาหลายปี