Чи використовує ігрова індустрія автоматизоване тестування для візуальних частин ігор / візуалізації? Як?


10

Деякі частини гри легко перевірити автоматизовано (логіка, математика, обробка введеннями); але є також багато, що суто візуально і не легко перевірити.

Я був би здивований, якби ігрова індустрія залишила все це для ручного тестування; Є в ньому достатньо грошей, на що я б здогадався, що було докладено зусиль, щоб можна було тестувати регресію хоча б деяким візуальним аспектом ігор.

Це правда? Якщо так, то які можливі способи перевірки ігор можна перевірити? Захоплення вихідних даних і порівняння зображень (це може бути надійним?)? Перехоплення даних із відеокарти на низькому рівні? Захоплення інформації про вершину (тощо) на шляху до відеокарти? Здається, існує багато можливостей; але я не можу знайти інформацію про це :(

Примітка: Це питання було позначено як простак з цього один , але я не питаю про конкретні технологій / рамки / інструменти про те , як це зробити, але в більш широкому сенсі ідеї навколо цієї практики, і що фактична ігрової індустрії робити (якщо вони взагалі роблять).


Я б сказав, що, ймовірно, вони просто використовують добре перевірену графічну бібліотеку (або сторонні, або розроблені вдома). Коли вони приступають до проектування ігрового рівня, вони не перевіряють, чи кожен об'єкт знаходиться точно за координатами X, Y, Z, чи правильна перспектива, але більш прості речі, як забезпечення того, що об’єкти знаходяться там, а не перегороджуються стінами тощо. І якщо графічна бібліотека розроблена вдома, тести автоматизовані та більш базові.
SJuan76

@ SJuan76 Я думаю, якщо ви будуєте над двигуном, питання стосується тестування двигуна
Danny Tuppeny,

Чи не є це питання дещо ширшим за обсягом, ніж питання, яке було позначене як дублікат? ОП не згадувало C ++ або OpenGL. Ігрова індустрія більша за це.
toniedzwiedz

Напевно, простіше офіційно довести, що код правильний, враховуючи, що графічні API не містять помилок, ніж це перевірити, що апаратне забезпечення виконує свою роботу. Оскільки драйвери AMD та NVidia є власником, я уявляю, що будь-який протокол, що бере участь у спілкуванні з відеокартою, є 1) власницьким, 2) може змінюватися, і 3) змінюється від картки до картки. Крім того, навіть якщо дані, надіслані на відеокарту, є правильними, як ви знаєте, що відеокарта не має апаратних недоліків?
Doval

2
Я спробував повторно відкрити це, оскільки ціль дупа стосувалася стратегій автоматизованого тестування графіки OpenGL. Це не моя спеціальність, але я довіряю відгуку інших, хто добре знає ігрову індустрію, тому я хочу дати їй ще один шанс. Для посилання на подібне питання див. Тут: programmers.stackexchange.com/questions/150688/…
maple_shaft

Відповіді:


1

Будь-яка компанія буде робити по-різному, навіть різні ігри будуть перевірені по-різному.

  • Можливо, брак інформації про графіку полягає в тому, що візуалізація дійсно є "повторюваною" (не можу думати кращого слова, вибачте), і в типовій складній сцені буде достатньо примітивних комбінацій, тому більшість людей зазвичай легко бачать більшість глюків ( за винятком менш використовуваних шейдерів, але можна використовувати спеціальний рівень / демонстрацію стресових шейдерів). Пам'ятайте, що люди були мисливцями тисячі років :), тому, ймовірно, ми спроектовані, щоб побачити глюки.
  • Крім того, свобода пересування, що присутня в більшості ігор, і рандомізація інших елементів типової гри, яка змушує відчувати її як "більш реалістичною", як правило, є кошмаром для застосування автоматичних тестів: насправді тестер людини знайде швидше і більше помилки, ніж будь-який автоматизований тест. Ви можете кодувати логіку для хронометражу запису, статистики та позицій / кутів / інших змінних, коли грає тестер ... так що навіть на неавтоматизованих тестах у вас з'являться відгуки на зразок автоматизованих тестів. Зазвичай корисно мати можливість відтворювати будь-який сеанс, записаний бета-тестером (і зазвичай це хороша функція і для фінальної гри).
  • Про статистику візуалізації, наприклад, ви можете отримати: статистику зворотного дзвінка для кожного з шейдерів (так як ви будете робити дзвінки, достатньо підтримувати кілька лічильників), кількість завантажень (те саме, ви контролюватимете, коли Буфери gpu оновлюються), таймінги (не тільки fps, також пропуски між кожним викликом) тощо. Якщо потрібно (але я вважаю, що це не рекомендується, за винятком випадків, коли ви шукаєте певну помилку), ви можете отримати статистику з самої відеокарти. (наприклад, ви можете отримати показники заповнення та інші за допомогою запитів оклюзії).
  • Нарешті, інша причина використовувати бета-тестери - це те, що різні графічні карти матимуть, мабуть, різну поведінку ... можливо, вам доведеться мати ферму тестових машин o_O. Улюблені людські бета-тестери пом'якшать увесь цей безлад.

Сподіваюся, що це допомагає!

Відмова від відповідальності: Я не бетастерист, я розробник XDDD.


Я повністю погоджуюсь з тим, що люди розроблені навколо того, щоб бачити візерунки, глюки, ... Ми справді візуальні істоти.
Триларіон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.