Разработчики из Facebook представили алгоритм, который генерирует миры для текстовых ролевых игр. Он состоит из нескольких частей, которые создают карту, прописывают персонажей, собирают мир в единое целое, а также генерируют новые описания для локаций и действующих лиц, предлагая играющему дополнить созданные миры. Для создания алгоритма разработчики использовали датасет из нескольких тысяч описаний составляющих текстовых квестов, который они собрали ранее. Препринт статьи опубликован на arXiv.org.
Некоторые игры (в основном, настольные) требуют создания мира с нуля: для этого необходимо прописать всех персонажей и окружающую игроков выдуманную реальность, а также список возможных в игре действий. Разумеется, часто в помощь игрокам идут своды правил, написанные специально для игры (как, например, для Dungeons & Dragons), но зачастую — от начала и до конца — приходится пользоваться собственной фантазией.
Для того, чтобы упростить задачу для игроков, разработчики из Facebook под руководством Джека Урбанека (Jack Urbaneck) в марте этого года создали датасет LIGHT — в нем содержатся описания 633 локаций, 1755 персонажей и 3462 объектов (разных оружий и других вещей), которые могут быть использованы при создании текстовой игры — все использованные описания были собраны с помощью краудсорсинга.
В своей новой работе исследователи решили использовать датасет для создания алгоритма, который будет генерировать текстовые игры с нуля. Система, которая для этого используется, состоит из нескольких алгоритмов, каждый из которых решает свою задачу — все из них входят в класс обучения ранжированию в обработке естественного языка.
Первый алгоритм создает карту, на которой расположены локации из датасета, их названия и описания: для этого в датасете предусмотрены «соседи» каждой из используемых локаций (всего — по три соседа), ранжирование которых делают благодаря им. Также разработчики предусмотрели 25 локаций-пустышка (например, чулан, в котором ничего нет), которые связывают локации и без соседей — для того, чтобы увеличить количество возможных карт. Следующий алгоритм сосредоточен на подборе отдельных предметов для персонажей и устроен похожим образом. Наконец, отдельный алгоритм на основе архитектуры нейросети Transformer создает новые игровые элементы, которые дополняют карты и персонажей из оригинального датасета, — для их создания исследователи использовали датасет из двух миллиардов комментариев на Reddit.
В результате создается целый игровой мир: для каждой локации и персонажа в нем доступно описание и предистория, а также для каждого персонажа — набор его подручных средств, которые далее можно использовать в игре. Всего исследователям удалось сгенерировать пять тысяч различных миров, некоторые из которых затем оценили люди — им также дали возможность использовать предложенные алгоритмом другие варианты персонажей и локаций, чтобы сделать игровой мир лучше. Несмотря на то, что большинство оценщиков не были полностью удовлетворены изначально созданными мирами и использовали предложенные модификации, в среднем они сошлись на том, что хотели бы поиграть в получившемся сеттинге (4 из 5 баллов).
В своей работе исследователи также предлагают псевдокод для генерирования игровых миров на основе предложенных ими алгоритмов самостоятельно, а всю необходимую для этого информацию можно найти на сайте проекта.
Источник: https://nplus1.ru/
Заглавная иллюстрация: https://ua.depositphotos.com/