Путешествие во времени — мод для GTA 5, созданный с помощью нейросети
Полный цикл разработки составил 47 промптов. Весь код ChatGPT писал сам.
Когда я работал главным редактором на LibertyCity, у нас была традиция придумывать розыгрыши на первое апреля. Последней такой шуткой стал анонс нейросети ModMader AI, которая в перспективе должна была заменить всех авторов на сайте и начать публиковать моды собственного производства.
Но в каждой шутке лишь доля шутки. ChatGPT уже умеет в программирование, и я решил узнать, как он справится с созданием модификации с нуля.
Начало работы
Даём ChatGPT задание написать мод для GTA 5 на языке C# с использованием библиотеки ScriptHookDotNet. Идею для мода нейросеть пусть выбирает сама, нам нужен полностью готовый результат.
Придумай необычный мод для GTA 5 и напиши его на языке C#, используя библиотеку ScriptHookDotNet 3
Звучит многообещающе, но на деле нейросеть сделала мод, который просто меняет время суток (это в дальнейшем мы добьём промптами). Код в целом верен, но кое-что ИИ всё-таки забыл. Например, отсутствуют некоторые директивы. Кроме того, ChatGPT пишет на устаревшей версии ScriptHookDotNet, что тоже придётся исправлять.
Дальнейший процесс создания мода
Я дал нейросети 46 правок, прежде чем получить нужный мне результат. Всё это можно было исправить самостоятельно в разы быстрее, но мне очень хотелось, чтобы всю работу над модификацией проделал искусственный интеллект, пусть и под моим чутким надзором.
Весь цикл разработки я описывать здесь не буду, его я опубликовал в отдельном репозитории на GitHub. Если коротко, то чаще всего ChatGPT допускал следующие ошибки:
- Использовал неправильные или устаревшие названия функций;
- «Забывал» ранее внесённые правки. Приходилось каждый раз перепроверять присланный код, либо просить прислать только отдельный кусок, в который вносились изменения;
- Путал игровые понятия. Например, первое время он никак не мог понять отличия 3D маркера портала от иконки на игровой карте.
Чуть реже допускались логические ошибки. Например, ИИ мог пропустить одну переменную, которая в корне ломала написанный им же алгоритм работы.
Что по итогу
Как и было заявлено нейросетью, мод позволяет создать временной портал и переместиться через него в любой год, который вы сами выберите. Изначально ИИ написал банальную смену времени суток, что по сути никак не могло перенести игрока в условное «прошлое». Благодаря моим подсказкам ChatGPT изменил эту систему, и теперь в игре действительно меняется год, месяц и день недели.
Проблема в том, что эта внутриигровая система счёта времени визуально не отражается на геймплее. Зато вы можете использовать этот мод, например, для быстрой окупаемости ваших бизнесов и получения прибыли.
А вот от путешествия в прошлое толку мало. Чтобы хоть немного создать эффект реального временного перемещения, ИИ по моей просьбе добавил маленькую пасхалку: если вбить 2004 год, играя за Майкла, он переместится в Северный Янктон.
Скачать финальную версию можно на GitHub. Для работы потребуется ScriptHookV и ScriptHookDotNet.
Мои впечатления от работы ИИ
ChatGPT хорошо справился с поставленной задачей. Если вносить правки в код самостоятельно, не указывая нейросети на каждую отдельную ошибку, можно значительно ускорить разработку. Теперь я хочу использовать ИИ в создании новых алгоритмов спавна автомобилей для своего мода по переносу автопарка из GTA Online в сюжетный режим GTA 5. Думаю, совместными усилиями мы сможем придумать что-то очень крутое.