Як я налаштовував контент Unreal Engine з IDE, але без редактора — експеримент із ШІ
Вітаю, спільното! Я — Кирило Свідерський, Unreal Engine Gameplay Developer і паралельно займаюсь викладанням. У геймдеві з 2017 року, працював із різними проєктами — від маленьких внутрішніх проектів до ААА шутерів. Хочу поділитися цікавим експериментом з ШІ, який, спойлер, вдався.
ask rider to fill lines, crazy
Не секрет, що вимоги до новачків зростають. Тому від своїх менті вимагаю кращої роботи, ніж раніше. А відповідно, маю змінюватися і сам і ретельніше планувати заняття і завдання, бо планка якості в розробці задається не словами, а тим, що показуєш на практиці. Є невеличка група, яка на цьому тижні робить завдання по ШІ в іграх, конкретніше, Behavior Trees. Треба реалізувати дерево поведінки для міньйончика з типової МОБА гри. Паралельно, хочу підготувати приклад роботи із StateTree.
У роботі ШІ — звичайний інструмент, якщо це не суперечить політикам безпеки. У навчанні ж намагаюся залишати простір для власного мислення. В підготовці використовую той самий підхід, щоб зрозуміти, з чим люди зіштовхнуться: важливі речі принципово «вивчаю руками», а менш значущі або ті, що «вважаю вивченими», можна віддати ШІ.
Відповідно, написав з другом Junie (AI-асистентом у Rider) систему для лайнів. І захотілося випробувати можливості агентів. Тому і народився промпт зі скріна вище.
Що знала система на момент промпту? Власне, про щойно написану сабсистему, що є окремі áктори WayPoints, є áктор-інфо, який зберігає налаштування ліній, є теги, що визначають лінії (чому теги — у деяких моба-іграх, як HotS, конфігурації ліній можуть бути дуже різними і навіть динамічними).
Натиснув ентер, і... після continue-oriented development отримав CallInEditor метод, що мав заповнити лайни. Перший запуск вийшов умовно вдалим, бо ШІшка всі вейпоінти поклала в мід-лайн. І тут я зрозумів головне: я можу налаштовувати контент, не відкриваючи Editor — прямо з IDE. Тому, прокрастинуємо від основної задачі підготувати матеріал і добиваємо цю іграшку)
Далі було намагання донести мінімально можливим чином, як би могла робити менш технічна людина, про існування трьох ліній із назвами і відсилкою на ДОТА. ШІ народив евристику, що після запуску редактора і виклику методу приємно вразила!
Second iteration of moba lines generation
Прикро, що про трон доведеться розповісти окремо. Що ж, пускаю в хід маленький трюк, дописую в кінці промпту «Ask additional questions if needed».

Цікаво було б прикрутити сюди ML, щоб воно навчилось визначати/пропонувати лайни, але поки що до такого рівня не доріс. Вейпоінти замість сплайнів використані свідомо — щоб бути максимально близьким до даного падаванам завдання.
Тулзовики чи тех-артісти можуть відновлювати пошкоджений контент, якщо едітор крашить раніше. На великих проєктах для левел-дизайнера білюю є час завантаження рушія — якщо щось можна зробити без цього очікування, також плюс.
Чотири роки тому ніхто не сприймав ШІ всерйоз для написання коду, а зараз вчимося писати для нього плейбуки. Тож починаю вірити, що менеджмент контенту за рахунок ШІ в ДОРЕЧНИХ ситуаціях також стане у нагоді. Звичайно, це не заміна Editor’у, а ще один рівень автоматизації для певних задач.
3 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівЛюди діляться на 2 табори, тих хто не вміє писати промти і тих хто обожнює ШІ. По суті це такий надпотужний автокомпліт тому так і треба до нього ставитись. Написавши в нього «зроби по гру по типу доти» будь яка модель захлинеться і нагалюцинує купу сміття. Інша справа попросити певну фічу, з повним розумінням як воно приблизно буде виглядати. Чат за чатом і можна буде писати щось за місяці а не роки, як це зазвичай буває у інді розробників.
Ви хочете сказати що є люди які «не вміють писати промпт»?
Не смішіть — це може зробити навіть неграмотний через voicepill.
І таки ви хочете сказать що всі грамотні люди обожнюють чатгопоту?
Перекручування таке перекручування.
Нормальні люди користуються Claude Code