Комп’ютерні ігри наділені спільними рисами з прикладним програмним забезпеченням, водночас, комп’ютерні ігри мають певні особливості і відрізняються призначенням, цільовою аудиторією, процесом розробки, ризиками. Сьогодні без застосування штучного інтелекту та технологій машинного навчання не здійснюється сучасна розробка комп’ютерних ігор. Оскільки машинне навчання використовує алгоритми, які можуть визначити значимість необроблених даних, без необхідності залучення експерта для інтерпретації даних, також ці алгоритми застосовуються до інтелектуальних агентів. У комп’ютерних іграх інтелектуальні агенти використовуються як самостійна програма, що може виконувати завдання користувача протягом відведеного часового проміжку. Існує можливість використати навчання з підкріпленням для підготовки інтелектуальних агентів щодо оцінки вартості дій у середовищі гри. Після навчання інтелектуальні агенти виконують дії в грі, які мають найбільшу цінність, без необхідності їх чіткого програмування. Дослідження технологій машинного навчання проведено на двовимірній грі. Комп’ютерна гра з використанням технологій машинного навчання реалізована як навчально-пізнавальна в жанрі космічного симулятора та наділена елементами жанру текстового квесту з розгалуженою сюжетною лінією. Жанр космічного симулятора найкраще підійшов для того, щоб наявно розкрити застосування деяких наукових принципів, законів, познайомитися у ігровому форматі з космічними тілами та їх структурою. Окрім того, космічна тематика має значну популярність і розрахована на масового користувача. Для програмної реалізації навчально-пізнавальної комп’ютерної гри в жанрі космічного симулятора використано ігровий двигун Unity, мову програмування C#, набір засобів розробки (Software Development Kit, SDK) Unity Machine Learning Agent toolkit (ML-Agents), інтегроване середовище розробки (Integrated Development Environment, IDE) Visual Studio 2019, графічний редактор Gimp, редактор звукових файлів Audacity. Наразі ігровий двигун Unity є популярним та потужним середовищем для розробки комп’ютерних ігор, що містить інструментарій машинного навчання - ML-Agents. ML-Agents - це набір засобів розробки, який дозволяє дослідникам та розробникам трансформувати ігри та імітації, створені за допомогою редактора Unity, в середовища в яких інтелектуальні агенти можуть навчатись за допомогою глибинного навчання та навчання з підкріпленням, еволюційних стратегій та інших методів машинного навчання за допомогою використання програмного інтерфейсу Python. Навчальне середовище Unity ML-Agents має три види об’єктів: агент (agent); мозок (brain); академія (academy). Агент наділений унікальним набором станів та спостережень, має можливість здійснювати унікальні дії в оточенні та отримувати унікальні винагороди за події всередині середовища. Дії агента визначаються мозком, з яким він пов’язаний. Мозок визначає конкретний простір стану та дій і несе відповідальність за вирішення того, які дії здійснює кожен з його пов’язаних агентів. Інструментарій ML-Agents надає можливість налаштування мозку на один з чотирьох режимів: зовнішній; внутрішній (експериментальний); гравця; евристичний. Академія в сцені містить усі мізки в середині середовища, яке містить єдину академію, що визначає сферу навколишнього середовища з точки зору конфігурації двигуна – швидкість і якість візуалізації ігрового двигуна в режимах тренувань і виводу; зміни кадрів – кількість кроків, які потрібно пропустити між кожним агентом, щоб прийняти нове рішення; тривалість епізоду, який визначає агентів налаштованих на виконання. Стани та спостереження за всіма агентами з мізками, які встановлені як зовнішні, збираються зовнішнім комунікатором та передаються програмним інтерфейсом Python для обробки за допомогою обраної бібліотеки ML-Agents. При встановленні декількох агентів в один мозок, є можливість вирішувати дії послідовно, відкриваючи можливість отримання переваг паралельних обчислень при їх підтримці. У деяких випадках легше демонструвати поведінку, яку необхідно виконати ігровому агенту, а не намагатися вивчити. Unity ML-Agents надає можливість записувати всю інформацію про стан/дію/винагороду для використання у контрольованих сценаріях навчання, таких як імітаційне навчання. При використанні імітаційного навчання гравець має можливість наводити демонстрації того, як агент повинен поводитись у навколишньому середовищі, а потім використовувати ці демонстрації для тренування агента самостійним способом, або як перший крок у процесі навчання з підкріпленням. Процес розробки комп’ютерної навчально-пізнавальної гри в жанрі космічного симулятора складається з наступних етапів: - проектування архітектури підсистем гри: діалогова, квестова, звукова, підсистема користувацького інтерфейсу; - проектування підсистеми штучного інтелекту; - проектування ігрового процесу, а саме ігрових механік (gameplay), які навчають та розважають гравця; - розробка анімацій та графічних елементів, за допомогою яких гра концентрує увагу гравця на потрібних елементах ігрового процесу; - створення механізму збереження досягнень користувача. Визначимо декомпозицію задач створення підсистем комп’ютерної гри, які відповідають за використання інтелектуальних агентів: - виділення механік гри, які найбільше підходять для використання штучного інтелекту; - опрацювання механіки таким чином, щоб машинне навчання додало логічне представлення ігровим механікам; - створення навчального середовища для обраних механік, тобто виділення агентів, створення так званого «мозку», а саме поведінки для кожної групи агентів та академію, яка містить поведінки усіх агентів; - навчання інтелектуальних агентів; - збереження моделі та додання до гри; - використання моделі, яка навчена до ігрових агентів; - тестування ігрових механік, які використовують інтелектуальні агенти. Виділено ігрові механіки, які мають можливість використовувати інтелектуальні агенти: «живий світ», «дрони/кораблі-розвідники», «аркадні бої». 1. «Живий світ». Ігрові персонажі реагують на різні події в ігровому світі та можуть виконувати непередбачувані дії, що здійснюють імітацію реальності подій. 2. Механіка «дрони/кораблі-розвідники». Гравець може відправити кораблі, які самостійно шукають тіла в планетній системі (планети, зірки, астероїди, станції та інші кораблі), сканувати/аналізувати їх та відправляти інформацію гравцю. Знайдена інформація зберігається у «книзі відкриттів» користувача. У гравця з’являється більше часу на взаємодію з ігровими механіками, а не їх пошук. 3. «Аркадні бої». Класична механіка двовимірного шутеру, в якому супротивники під управлінням штучного інтелекту на основі дій гравця пристосовуються для більш складної гри. Наступним етапом розроблення конфігурації навчального середовища для обраних механік є: - створення так званого «мозку», тобто це поведінка для кожної групи агентів (з урахуванням обраних механік створено три типи мізків); - створення групи агентів, де одна група відповідає одному типу поведінки – мозку; - створення академії, яка містить поведінки усіх агентів та є сполучною ланкою між навчальним середовищем та зовнішньою бібліотекою машинного навчання. З урахуванням вищеописаних механік розроблено конфігурацію навчального середовища. Архітектура має структуру, яка представлена на рис. 1. За замовчуванням ML-Agents SDK має скрипти з базовими функціями для сутностей агент, мозок, академія. Щоб зв’язати скрипти з ігровими об’єктами виконано наступні дії: 1. Створено новий ігровий об’єкт (game object) за допомогою редактора Unity. Додано до об’єкта скрипт, що відповідає академії. 2. Створено новий game object, додано до нього два скрипти: Behavior parameters та Basic Agent, які виконують роль сутностей (мозок та агент відповідно). Далі збережено створений об’єкт як об’єкт-шаблон для створення групи таких об’єктів. 3. Здійснено програмування доданих скриптів додатковим функціоналом, необхідним для обраних ігрових механік. Рисунок 1 – Архітектура конфігурації навчального середовища комп’ютерної гри в жанрі космічного симулятора. Після створення навчального середовища проведено навчання інтелектуальних агентів комп’ютерної гри.