Есть много тем о том, как работает процедурная генерация, но я не смог найти никакой информации о том, как тестировать и - что более важно - как сообщать об ошибках, которые могут возникнуть на процедурно генерируемых уровнях. Как лучше всего описать ошибку, например, связанную с дизайном уровня, на карте, которая будет выглядеть по-разному каждый раз, когда вы играете в новую игру? Какую информацию следует включить в отчет об ошибках, чтобы ее воспроизведение было проще для дизайнера уровней, художника уровней и т. Д., А также во время процесса регрессии?
РЕДАКТИРОВАТЬ: Стоит отметить, что игра, которую я готовлю к тестированию, находится на очень ранней стадии разработки и постоянно меняется вместе с системами, отвечающими за генерацию уровней. Цель этого исследования - научиться описывать ошибки (какую информацию включать в отчет), чтобы регрессия в изменяющейся среде была как можно менее трудоемкой и максимально эффективной.
Ответы:
Это также может быть очень полезно, когда ваш алгоритм генерации карты детерминирован и повторяется на основе начального начального значения. Поэтому, когда вы вводите то же самое начальное значение, вы получаете ту же карту. Это может быть легче реализовать, чем вы думаете. Большинство API генерации случайных чисел можно инициализировать начальным значением, а затем всегда генерировать одну и ту же последовательность случайных чисел для одного и того же начального числа. Если вы используете одну из немногих платформ, где это не так (например, JavaScript на основе браузера), вы можете реализовать свой собственный генератор случайных чисел. Существует множество алгоритмов, которые не очень сложны в реализации и обычно всегда требуют начального значения.
Затем ваши тестеры могут упомянуть семя карты в своих отчетах об ошибках. Отчеты об ошибках типа «Деревья растут посреди озера» могут содержать инструкцию по воспроизведению «Создайте карту с семенами a4f6dd32 и перейдите в положение 4321500: 1269100». После того, как вы проверили это, вы можете установить условную точку останова отладчика в алгоритме генерации карты, которая сработает на затронутом фрагменте карты и точно выяснит, что происходит.
Детерминированный алгоритм генерации карт также позволяет реализовать автоматизированный тест. У вас могут быть различные начальные значения тестов с известными выходными данными, а затем ваши автоматические тесты проверят, остается ли этот вывод тем же после того, как вы сделали некоторые улучшения производительности в своем алгоритме генерации.
источник