게임 산업은 게임 / 렌더링의 시각적 부분에 대해 자동 테스트를 사용합니까? 어떻게?


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

모든 회사는 다른 방식으로 할 것이며 심지어 다른 게임도 다르게 테스트 될 것입니다.

  • 그래픽에 대한 정보가 부족한 것은 렌더링이 실제로 "반복적"이기 때문에 (더 나은 단어는 생각할 수없고, 죄송합니다) 전형적인 복잡한 장면에는 충분한 기본 조합이있어 대부분의 사람들이 일반적으로 대부분의 글리치를 쉽게 볼 수 있습니다 ( 덜 사용되는 쉐이더를 제외하고 스트레스 쉐이더 특수 레벨 / 데모를 사용할 수 있습니다). 인간은 수천 년 동안 사냥꾼 이었다는 것을 기억하십시오 :) 아마도 우리는 결함을 보도록 설계되었습니다.
  • 또한 대부분의 게임에 존재하는 움직임의 자유와 일반적인 게임에서 다른 요소를 무작위 화하여보다 "현실적인"느낌을주는 것은 일반적으로 순수한 자동화 테스트를 적용하는 데 악몽입니다. ​​실제로 인간 테스터는 더 빠르고 더 많이 발견 할 것입니다 자동 테스트보다 오류가 발생했습니다. 테스터가 플레이 할 때마다 레코드 타이밍, 통계 및 위치 / 각도 / 기타 변수에 대한 논리를 코딩 할 수 있습니다. 따라서 자동화되지 않은 테스트에서도 자동화 된 테스트와 같은 피드백이 제공됩니다. 일반적으로 베타 테스터 기록 된 세션을 재생할 수있는 것이 유용합니다 (일반적으로 최종 게임에도 좋은 기능입니다).
  • 예를 들어, 렌더링 통계에 대해 다음과 같은 정보를 얻을 수 있습니다. 쉐이더 각각에 대한 드로우 콜 수 통계 (호출 할 때 일부 카운터를 유지하기에 충분 함), 업로드 수 (동일한 경우 GPU 버퍼가 업데이트 됨), 타이밍 (fps뿐만 아니라 각 호출 사이의 경과) 등. 필요한 경우 (그러나 특정 오류를 찾을 때를 제외하고는 권장되지 않는다고 생각합니다) 그래픽 카드 자체에서 통계를 얻을 수 있습니다 (예를 들어 폐색 쿼리를 사용하여 유효 노출 률 및 기타를 얻을 수 있습니다).
  • 마지막으로 베타 테스터를 사용하는 다른 이유는 그래픽 카드마다 동작이 다를 수 있기 때문입니다. 테스트 머신 o_O가 필요합니다. 사랑하는 인간 베타 테스터는 그 모든 혼란을 완화시킬 것입니다.

그것이 도움이되기를 바랍니다!

Disclaimmer : 저는 베 테스터가 아니며 개발자 XDDD입니다.


나는 인간이 패턴, 결함을 보는 것을 중심으로 설계되었다는 것에 전적으로 동의합니다. ... 우리는 실제로 시각적 인 존재입니다.
Trilarion
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.