Unreal MCP
Unreal MCP — это, %username%, очередная НЁХ, призванная научить твой любимый (или ненавистный) Unreal Engine понимать человеческую речь. Ну, не совсем человеческую, а ту, что изрыгают модные нынче ИИ-помощники типа Cursor, Windsurf и десктопного Claude. Задумка проста как кирпич: ты, ленивый быдлокодер, бормочешь что-то вроде «Клод, запили мне куб в центре карты и покрась его в цвет поноса», а эта шайтан-машина через специальный Model Context Protocol (MCP) дёргает API Анрыла и — вуаля! — куб готов. Или не готов. Как повезёт.
СутьЪ[править]
За всем этим шапито стоит некий chongdashu, сумрачный гений с PhD из MIT, успевший поработать на EA и Improbable. Видимо, насмотревшись на эффективных менеджеров и их попытки управлять геймдевом с помощью модных словечек, решил автоматизировать хотя бы часть рутины. Идея, конечно, благая: вместо того чтобы часами дрочить блюпринты или ковырять C++, можно просто надиктовать команды роботу. Мечта любого студента и инди-разработчика с вечно горящими дедлайнами.
Однако, как водится, под капотом скрывается хтонический велосипед. В наличии:
- Собственно, плагин для Анрыла на C++, который слушает TCP порт 55557.
- Питонячий сервер (
unreal_mcp_server.py
), который принимает команды от ИИ-ассистента, парсит их и пересылает плюсовому плагину. - Куча JSON-конфигов, чтобы всё это хозяйство хоть как-то взлетело. Причём для каждого ИИ-клиента свой конфиг, хранимый в самых неожиданных местах (~/.config/).
- И вишенка на торте — сам протокол MCP, который, судя по всему, является надстройкой над JSON-RPC или чем-то подобным, но с блэкджеком и шлюхами в виде собственной сериализации.
И всё это богатство находится в статусе, как нежно указано в README:
⚠️ Experimental Status
This project is currently in an EXPERIMENTAL state. The API, functionality, and implementation details are subject to significant changes. […] Production use is not recommended at this time
Переводя на человеческий: оно может упасть, взорваться, отформатировать твой винчестер или просто не работать. Используй на свой страх и риск, а лучше — не используй вообще, если не готов к увлекательному дебагу. Требует Unreal Engine 5.5+ и Python 3.12+, так что если ты сидишь на старье, можешь проходить мимо.
Чому может научиться Скайнет?[править]
Возможности, заявленные автором, выглядят аппетитно, почти как Гарри Поттер, управляющий Хогвартсом заклинаниями:
- Актёрами вертеть: Создавать кубики, шарики, источники света и камеры (
create_actor
), удалять их (delete_actor
), двигать, вращать и масштабировать (set_actor_transform
). Можно даже спросить у движка, какие актёры вообще есть на уровне (get_actors_in_level
) или найти конкретного по имени (find_actors_by_name
). Почти бог из машины, только команды надо писать в JSON:
{
"command": "create_actor",
"params": {
"name": "MySuperCube",
"type": "CUBE",
"location": [0, 0, 100]
}
}
- Блюпринты колдовать: Можно создавать новые классы (
create_blueprint
), добавлять им компоненты (add_component_to_blueprint
), настраивать свойства этих компонентов (set_component_property
,set_static_mesh_properties
), задавать физику (set_physics_properties
), компилировать всё это добро (compile_blueprint
) и даже спавнить экземпляры созданного блюпринта в мир (spawn_blueprint_actor
). Лулз в том, что типы компонентов надо указывать без префикса U, видимо, для простоты.
- В графе ноды двигать: Самая мякотка для любителей визуального программирования. Можно добавлять ноды событий (BeginPlay, Tick, etc. —
add_blueprint_event_node
), ноды вызова функций (add_blueprint_function_node
), переменные (add_blueprint_variable
), ссылки на себя и компоненты (add_blueprint_self_reference
,add_blueprint_get_self_component_reference
) и, конечно же, соединять всё это спагетти линиями (connect_blueprint_nodes
). Скоро ИИ будет писать игры целиком, а ты будешь только говорить: «Сделай мне MMORPG с эльфийками и лутбоксами».
- Редактором рулить: Фокусировать камеру вьюпорта на объекте или точке (
focus_viewport
) и делать скриншоты (take_screenshot
). Функционал пока куцый, но обещают больше.
Талмуды с описанием всех команд прилагаются, если вдруг захочется понять, как именно твой ИИ-помощник будет насиловать Unreal Editor.
Зачем?[править]
ВОЗникает резонный вопрос: нахуя? Автор утверждает, что это для автоматизации рутины и ускорения прототипирования. Представь: ты лежишь на диване, лениво цедишь пиво и голосом командуешь: «Клод, добавь врагу компонент здоровья, сделай ему 100 хп и заставь патрулировать зону». Звучит как фантастика из киберпанка.
На практике же, учитывая «экспериментальный» статус и сложность настройки, это пока больше похоже на игрушка для гиков и демонстрацию возможностей ИИ. Прежде чем оно станет реально полезным инструментом, пройдёт немало итераций допиливания напильником. Да и не факт, что взлетит — сколько уже было подобных протоколов и фреймворков, канувших в Лету? Тем не менее, сама идея управления сложным софтом через естественный язык выглядит интригующе. Возможно, через пару лет мы действительно будем разговаривать с нашими IDE и игровыми движками. А пока что Unreal MCP — это скорее забавный артефакт эпохи хайпа вокруг ИИ, интересный для изучения, но страшно использовать в реальном продакшене. Годнота или очередное УГ? Покажет только время и количество багрепортов на GitHub.