Có phải ngành công nghiệp trò chơi sử dụng thử nghiệm tự động cho các phần trực quan của trò chơi / kết xuất? Làm sao?


10

Một số phần của trò chơi dễ dàng kiểm tra theo cách tự động (logic, toán học, xử lý đầu vào); nhưng cũng có rất nhiều thứ hoàn toàn trực quan và không dễ kiểm chứng.

Tôi sẽ ngạc nhiên nếu ngành công nghiệp trò chơi để lại tất cả những điều này để thử nghiệm thủ công; Có đủ tiền trong đó mà tôi đoán rằng nỗ lực đã được đưa vào để có thể kiểm tra hồi quy ít nhất là một số khía cạnh trực quan của trò chơi.

Điều này có đúng không? Nếu vậy, những cách có thể mà kết xuất trò chơi có thể được kiểm tra là gì? Chụp đầu ra và so sánh hình ảnh (điều này có đáng tin cậy không?)? Chặn dữ liệu từ card đồ họa ở mức thấp? Nắm bắt thông tin đỉnh (vv) trên đường đến card đồ họa? Có vẻ như có rất nhiều khả năng; nhưng tôi không thể tìm thấy bất kỳ thông tin nào về điều này :(

Lưu ý: Câu hỏi này được đánh dấu là một bản sao của câu hỏi này , nhưng tôi không hỏi về công nghệ / khung / công cụ cụ thể về cách thực hiện điều này, nhưng rộng hơn là các ý tưởng xung quanh thực tiễn này và ngành công nghiệp trò chơi thực tế làm gì (nếu họ làm gì cả).


Tôi có thể nói rằng có lẽ họ chỉ sử dụng một thư viện đồ họa được thử nghiệm tốt (hoặc là bên thứ ba hoặc được phát triển nội bộ). Khi họ thiết kế một cấp độ trò chơi, họ không kiểm tra xem mọi đối tượng có chính xác ở tọa độ X, Y, Z hay nếu phối cảnh đúng, nhưng những điều đơn giản hơn là đảm bảo rằng các đối tượng ở đó và không bị chặn bởi các bức tường, v.v. Và nếu thư viện đồ họa được phát triển, các bài kiểm tra sẽ tự động và cơ bản hơn.
SJuan76

@ SJuan76 Tôi đoán nếu bạn đang xây dựng trên một động cơ, câu hỏi áp dụng cho việc thử nghiệm động cơ
Danny Tuppeny

Không phải câu hỏi này có phạm vi rộng hơn một chút so với câu hỏi mà nó được đánh dấu là trùng lặp? OP đã không đề cập đến C ++ hoặc OpenGL. Ngành công nghiệp game lớn hơn thế.
toniedzwiedz

Có thể dễ dàng hơn để chứng minh rằng mã là chính xác nếu các API đồ họa không có lỗi hơn là để kiểm tra xem phần cứng có hoạt động không. Vì trình điều khiển của AMD và NVidia là độc quyền, tôi tưởng tượng bất kỳ giao thức nào liên quan đến giao tiếp với card đồ họa là 1) độc quyền, 2) có thể thay đổi và 3) thay đổi từ thẻ này sang thẻ khác. Ngoài ra, ngay cả khi dữ liệu được gửi đến card đồ họa là chính xác, làm thế nào để bạn biết card đồ họa không có lỗi phần cứng?
Doval

2
Tôi đã thử mở lại điều này vì mục tiêu dupe cụ thể hơn là về các chiến lược trong thử nghiệm tự động đồ họa OpenGL. Đây không phải là chuyên môn của tôi nhưng tôi tin tưởng phản hồi từ những người khác biết rất rõ về ngành công nghiệp trò chơi nên tôi muốn cho nó một cơ hội khác. Để tham khảo câu hỏi tương tự, hãy xem tại đây: lập trình
viên.stackexchange.com/questions/150688/iêu

Câu trả lời:


1

Bất kỳ công ty nào cũng sẽ làm theo những cách khác nhau, thậm chí các trò chơi khác nhau sẽ được thử nghiệm khác nhau.

  • Có thể thiếu thông tin về đồ họa là do kết xuất thực sự khá "lặp đi lặp lại" (tôi không thể nghĩ một từ tốt hơn, xin lỗi) và trong một cảnh phức tạp điển hình sẽ có đủ các kết hợp nguyên thủy để hầu hết mọi người thường có thể dễ dàng nhìn thấy hầu hết các trục trặc ( ngoại trừ các shader ít được sử dụng, nhưng có thể sử dụng mức độ / bản demo đặc biệt của shader-shader). Hãy nhớ rằng con người là thợ săn trong hàng ngàn năm :) vì vậy có lẽ chúng ta được thiết kế để nhìn thấy những trục trặc.
  • Ngoài ra, sự tự do di chuyển có mặt trong hầu hết các trò chơi và sự ngẫu nhiên của các yếu tố khác trên một trò chơi thông thường khiến nó cảm thấy "thực tế" hơn thường là một cơn ác mộng khi áp dụng các thử nghiệm tự động thuần túy: trên thực tế, một người thử nghiệm sẽ tìm thấy nhanh hơn và nhiều hơn nữa lỗi hơn bất kỳ kiểm tra tự động. Bạn có thể mã hóa logic cho thời gian ghi, số liệu thống kê và vị trí / góc / các biến khác bất cứ khi nào người kiểm tra đang chơi ... vì vậy ngay cả trong các bài kiểm tra không tự động, bạn sẽ có phản hồi như kiểm tra tự động. Nó thường hữu ích khi có khả năng phát lại bất kỳ phiên bản thử nghiệm beta nào (và thường là một tính năng tốt cho trò chơi cuối cùng).
  • Về kết xuất số liệu thống kê, ví dụ bạn có thể nhận được: số liệu thống kê số lần gọi cho mỗi một trong số các shader (vì bạn sẽ thực hiện các cuộc gọi, nó đủ để duy trì một số bộ đếm), số lần tải lên (tương tự, bạn sẽ kiểm soát khi Bộ đệm gpu được cập nhật), thời gian (không chỉ khung hình / giây, cả khoảng cách giữa mỗi cuộc gọi), v.v ... Nếu cần (nhưng tôi tin rằng không được đề xuất trừ khi tìm kiếm một lỗi cụ thể), bạn có thể lấy số liệu thống kê từ chính card đồ họa (ví dụ: bạn có thể nhận được tỷ lệ lấp đầy và các tỷ lệ khác bằng cách sử dụng truy vấn tắc).
  • Cuối cùng, lý do khác để sử dụng thử nghiệm beta là các card đồ họa khác nhau có thể có các hành vi khác nhau ... bạn có thể cần phải có một trang trại máy thử nghiệm o_O. Những người thử nghiệm beta con người yêu quý sẽ làm dịu đi tất cả những mớ hỗn độn đó.

Hy vọng rằng nó sẽ giúp!

Tuyên bố miễn trừ trách nhiệm: Tôi không phải là người phản bội, tôi là nhà phát triển XDDĐ.


Tôi hoàn toàn đồng ý với con người được thiết kế xung quanh việc nhìn thấy các mô hình, trục trặc, ... Chúng ta thực sự là những sinh vật trực quan.
Trilarion
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.