อุตสาหกรรมเกมใช้การทดสอบอัตโนมัติสำหรับส่วนภาพของเกม / การเรนเดอร์หรือไม่? อย่างไร?


10

บางส่วนของเกมนั้นง่ายต่อการทดสอบในวิธีอัตโนมัติ (ตรรกะ, คณิตศาสตร์, การจัดการอินพุต); แต่ยังมีอีกมากที่มองเห็นได้อย่างหมดจดและไม่สามารถทดสอบได้ง่าย

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

มันเป็นเรื่องจริงเหรอ? ถ้าเป็นเช่นนั้นจะมีวิธีใดบ้างที่การทดสอบการเรนเดอร์เกมสามารถทำได้? การจับภาพเอาต์พุตและภาพเปรียบเทียบ (สิ่งนี้จะเชื่อถือได้หรือไม่?) ดักข้อมูลจากการ์ดกราฟิกในระดับต่ำหรือไม่ บันทึกข้อมูลจุดสุดยอด (ฯลฯ ) ไปยังการ์ดกราฟิกหรือไม่ ดูเหมือนว่ามีความเป็นไปได้มากมาย แต่ฉันไม่สามารถหาข้อมูลเกี่ยวกับเรื่องนี้ :(

หมายเหตุ: คำถามนี้ถูกทำเครื่องหมายว่าเป็นดักฟังของคำถามนี้แต่ฉันไม่ได้ถามเกี่ยวกับเทคโนโลยี / กรอบ / เครื่องมือเฉพาะเกี่ยวกับวิธีการทำสิ่งนี้ แต่จะครอบคลุมแนวคิดเกี่ยวกับการปฏิบัตินี้และวงกว้างของอุตสาหกรรมเกมจริง (ถ้า พวกเขาทำเลย)


ฉันจะบอกว่าบางทีพวกเขาอาจใช้ไลบรารีกราฟิกที่ผ่านการทดสอบมาอย่างดี (ไม่ว่าจะเป็นบุคคลที่สามหรือพัฒนาเอง) เมื่อพวกเขาได้รับการออกแบบระดับเกมพวกเขาไม่ได้ตรวจสอบว่าวัตถุทุกอย่างอยู่ในพิกัด X, Y, Z หรือว่ามุมมองที่ถูกต้อง แต่สิ่งที่ง่ายกว่าเช่นการทำให้มั่นใจว่าวัตถุนั้นอยู่ที่นั่นและไม่มีกำแพงกั้นเป็นต้น และถ้าห้องสมุดกราฟิกนั้นได้รับการพัฒนาขึ้นเองการทดสอบก็จะเป็นแบบอัตโนมัติและเป็นพื้นฐานมากกว่า
SJuan76

@ SJuan76 ฉันเดาว่าถ้าคุณกำลังสร้างบนเครื่องยนต์คำถามที่ใช้กับการทดสอบของเครื่องยนต์
Danny Tuppeny

คำถามนี้ไม่ใช่ขอบเขตที่กว้างกว่าคำถามที่ถูกทำเครื่องหมายว่าซ้ำซ้อนใช่หรือไม่ OP ไม่ได้กล่าวถึง C ++ หรือ OpenGL อุตสาหกรรมเกมใหญ่กว่านั้น
toniedzwiedz

อาจพิสูจน์ได้ง่ายขึ้นว่ารหัสนั้นถูกต้องเนื่องจาก API ของกราฟิกนั้นไม่มีข้อบกพร่องมากกว่าการทดสอบว่าฮาร์ดแวร์ทำงานได้ดี ตั้งแต่ไดรเวอร์ของ AMD และ NVidia เป็นกรรมสิทธิ์ฉันคิดว่าโปรโตคอลใดที่เกี่ยวข้องกับการสื่อสารกับการ์ดกราฟิกคือ 1) กรรมสิทธิ์ 2) อาจมีการเปลี่ยนแปลงและ 3) แตกต่างกันไปในแต่ละการ์ด นอกจากนี้แม้ว่าข้อมูลที่ส่งไปยังการ์ดกราฟิกนั้นถูกต้องคุณจะรู้ได้อย่างไรว่าการ์ดกราฟิกนั้นไม่มีข้อบกพร่องของฮาร์ดแวร์
Doval

2
ฉันพยายามเปิดใหม่เนื่องจากเป้าหมายของ dupe นั้นเจาะจงมากขึ้นเกี่ยวกับกลยุทธ์ในการทดสอบกราฟิก OpenGL โดยอัตโนมัติ นี่ไม่ใช่ความพิเศษของฉัน แต่ฉันเชื่อมั่นในผลตอบรับจากคนอื่นที่รู้จักอุตสาหกรรมเกมเป็นอย่างดีดังนั้นฉันจึงต้องการให้โอกาสกับมันอีกครั้ง สำหรับการอ้างอิงถึงคำถามที่คล้ายกันดูได้ที่นี่: programmers.stackexchange.com/questions/150688/…
maple_shaft

คำตอบ:


1

บริษัท ใดจะทำในวิธีที่แตกต่างกันแม้กระทั่งเกมที่แตกต่างกันก็จะถูกทดสอบต่างกัน

  • บางทีการขาดข้อมูลเกี่ยวกับกราฟิกเป็นเพราะการแสดงผลค่อนข้าง "ซ้ำซาก" (ฉันไม่สามารถคิดคำที่ดีกว่าขอโทษ) และในฉากที่ซับซ้อนโดยทั่วไปจะมีการผสมผสานแบบดั้งเดิมมากพอดังนั้นคนส่วนใหญ่มักจะเห็นข้อบกพร่องส่วนใหญ่ได้ง่าย ด้วยข้อยกเว้นของเฉดที่ใช้น้อย แต่สามารถใช้ระดับพิเศษ / การสาธิตความเครียด - shader) จำไว้ว่ามนุษย์เป็นนักล่ามาหลายพันปี :) ดังนั้นเราอาจถูกออกแบบมาเพื่อดูความผิดพลาด
  • ยังมีอิสระในการเคลื่อนไหวในเกมส่วนใหญ่และการสุ่มองค์ประกอบอื่น ๆ ในเกมทั่วไปที่ทำให้รู้สึกว่า "สมจริง" มากกว่าปกติแล้วเป็นฝันร้ายสำหรับการใช้การทดสอบอัตโนมัติบริสุทธิ์: ในความเป็นจริงผู้ทดสอบมนุษย์จะพบได้เร็วขึ้นและมากขึ้น ข้อผิดพลาดกว่าการทดสอบอัตโนมัติ คุณสามารถเขียนโค้ดตรรกะสำหรับการกำหนดเวลาบันทึกสถิติและตำแหน่ง / มุม / ตัวแปรอื่น ๆ เมื่อใดก็ตามที่ผู้ทดสอบกำลังเล่น ... ดังนั้นแม้จะไม่มีการทดสอบอัตโนมัติคุณจะได้รับข้อเสนอแนะเช่นการทดสอบอัตโนมัติ โดยปกติแล้วจะมีประโยชน์ที่จะสามารถเล่นเซสชันทดสอบใด ๆ ที่บันทึกไว้ของเบต้า (และมักจะเป็นคุณสมบัติที่ดีสำหรับเกมสุดท้ายเช่นกัน)
  • เกี่ยวกับสถิติการเรนเดอร์ตัวอย่างเช่นคุณจะได้รับ: สถิติการนับจำนวนการโทรสำหรับผู้ที่มาจากแต่ละคน (ในขณะที่คุณทำการโทรมันก็เพียงพอที่จะรักษาเคาน์เตอร์บางตัว) การอัปโหลดนับ (เหมือนกันคุณจะควบคุมเวลา อัปเดตบัฟเฟอร์ gpu แล้ว) การกำหนดเวลา (ไม่เพียง แต่ fps รวมถึงการสิ้นสุดระหว่างการโทรแต่ละครั้ง) ฯลฯ หากจำเป็น (แต่ฉันเชื่อว่าไม่แนะนำให้ใช้ยกเว้นเมื่อค้นหาข้อผิดพลาดเฉพาะ) คุณสามารถรับสถิติจากการ์ดกราฟิกเอง (ตัวอย่างเช่นคุณสามารถรับอัตราการเติมและอื่น ๆ โดยใช้คำสั่งบดเคี้ยว)
  • ท้ายที่สุดเหตุผลอื่น ๆ ในการใช้เครื่องทดสอบเบต้าก็คือกราฟิกการ์ดที่แตกต่างกันอาจมีพฤติกรรมที่แตกต่างกัน ... คุณอาจต้องมีฟาร์มของเครื่องทดสอบ o_O ผู้ทดสอบเบต้ามนุษย์ที่รักจะทำให้ทุกอย่างยุ่งเหยิง

หวังว่ามันจะช่วย!

ปฏิเสธความรับผิดชอบ: ฉันไม่ใช่นักพนันฉันเป็นนักพัฒนา XDDD


ฉันเห็นด้วยอย่างยิ่งกับมนุษย์ที่ถูกออกแบบมาเพื่อดูรูปแบบความผิดพลาด ... เราเป็นสิ่งมีชีวิตที่มองเห็นได้
Trilarion
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.