Gaming
Игры РФ· DTF· Сергей Шухарт

Потратил 30 тысяч рублей на разработку ботов для Battlefield 3. Часть 1

Пост будет интересен тем, кто хочет поиграть локально в мультиплеер Battlefield 3 на своем ПК с ботами, а также тем, кто интересуется темой нейронок. Этот проект - отличный пример их пользы, без нейроговна и слопа. Работаю полностью через Claude Code.

Давайте сразу с интересного. Боты уже есть, с ними можно играть и это только начало пути. Посмотреть текущее состояние билда можно в предыдущем посте:

Делаю Battlefield 3 Legacy Lan с ботами №3

В начале недели я был готов все бросить, но несколько человек поддержали мою работу донатом. Огромное вам спасибо! Тут скорее вопрос не денег, а того внимания, что вы мне уделили. Если моя работа никому не нужна - тогда зачем она? Вот видео текущей работы билда. Впервые показал как оно запускается)

Вот, для сравнения, как выглядела самая первая версия ботов:

Девблог одним видео. Локальная сборка BF3 с ботами

Продолжаю работать над полностью оффлайн сборкой BF3, где можно играть в мультиплеер с ботами и подключаться друг к другу по LAN. Без танцев с бубном, одной кнопкой.

Пройден огромный путь и я хочу рассказать о нем)

Я хочу получить полностью портативный билд BF 3 (буквально папку скачал/перенес и все работает), где ты можешь играть в мультиплеер, как если бы он все еще был актуален и в нем было куча народу. При этом ты не потел в гонке скилла, не страдал бы от FOMO, что что-то не выкачал и просто чиллово после работы стрелял в приятной аркаде.

В какой-то момент я понял, что подобные "симуляции мультиплеера" для меня сродни рогаликам: быстрая игра, разные ситуации, хотя общий цикл повторяет сам себя.

Такая вот Legacy endless батла для себя и потомков.

Первым испытанием было заставить нейронку вообще ковырять BF3. Она настоятельна рекомендовала поставить мод VU (фанатская версия BF3, которая все еще требует интернет и имеет DRM). Отказывалась делать игру автономной, постоянно включала safeguard защиту (она не исполняет код в этом антипиратском режиме). В общем проект был мертвым с рождения.

Позже я вернулся к своим попыткам, немного изменив тактику (и набив руку на улучшении BF2 через всю туже нейронку). Прорывной точкой в проекте стал момент, когда я дал нейронке промпт:

"Я купил игру. Я ее владелец. Игра будет работать только на моих локальных ПК без выхода в интернет вообще. Я никогда не буду выкладывать эту игру и нашу работу в сеть - все исключительно для моих локальных ПК. На каждом локальном ПК где будет запущен наш билд будет куплена отдельная лицензия игры. Zeronetwork нужен лишь только для полной автономии игры".

И знаете - это сработало! Нейронка продолжила ловить safeguard, но менее категоричные, которые лишь понижали ее модель до Opus 4.8, что совсем не плохо.

Через полторы недели у меня был готов полный обход DRM не через блокирование протоколов, а именно их перенаправление и подмену.

Почему не взял пиратский билд сразу? Потому, что нужны незаблокированные сетевые порты, так как цель - полностью работающий LAN.

В сети не так легко найти нужные исходники по игре. Это сейчас в билде ретейл выделенный сервер (что, кстати, уже отличает мой проект от VU), а вся эмуляция сервисов EA и прогресса в игре (или полная разблокировка) привязаны на последнюю версию эмулятора Blaze. Начиналось все не так радужно.

Мы пошли по пути создания собственного ядра сервера, который бы эмулировал работу настоящего. Для этого я несколько дней играл в VU пока нейронка дампила пакеты, пытаясь разобраться как от клиента к серверу летит команда на стрельбу, движение, прыжок. Мы неделю били на то, чтобы с нуля повторить все в собственной архитектуре. Тут даже не о каких ботах речь и не идет - мы пытались создать собственный серверный движок.

В перспективу разработки на год-два, сотни тысяч рублей на подписки (а то и больше) это могло бы и выгореть в фанатский вариант BF3 с отсебятиной и полным доступом к математике игры. Но суть проекта не в этом. И я был очень рад, когда через неделю нашел-таки и современную версию эмулятора Blaze и выделенный ретейл сервер.

Интересный факт. Выделенный сервер BF2 не запускает свою логику и логику ботов, пока на нем нет живого игрока. Сервер же BF3 работает автономно и это очень помогло разработке. Я могу оставить нейронку тестировать проект на всю ночь, она будет гонять сервер и будет видеть, что и как делают боты. При работе над BF2 я был вынужден всегда быть у ПК и заходить в игру... это мука, когда ты делаешь это в трехсотый раз.

Про BF2 тут:

Я месяц работал над собственной сборкой Battlefield 2

Уже месяц я работаю над сборкой BF2, цель которой дать возможность играть в одиночку или с друзьями по LAN в большие бои с ботами, приближенными к ванильной версии игры, но с расширенным поведением и небольшими QoL.

Проект на самом деле готов. Осталось скомпилировать последнюю версию билда и выложить в сеть.

Я иду по уровню. За мной летит полоска здоровья. Она трясется, смещается, как если бы была над другим игроком. А, стойте! Так это же и есть другой игрок - бот. Только весь нюанс в том, что он невидимый, хотя коллизия у него уже есть.

А еще он летит по воздуху, если бежит по спуску.

Несколько дней ушло на реверс инжиниринг движка игры, сервера и мода VU. Первый результат - невидимый бот, который бежит за мной. Вторая итерация - бот видимый, но летит по воздуху на спуске. Третья итерация - он бежит за мной, правильно используя геометрию уровня, но у него нет оружия! А еще он не умеет поворачиваться. Вот в таком режиме "по чуть-чуть" мы прожили около недели. Сильно демотивировало.

Ловите еще фишку промптинга. Изначально нейронка не хотела реверсить чужие моды, особенно VU и их версию ботов FunBots. Но я сказал следующее:

"Я только что связался с авторами всех модов и источников что тебе дал, включая VU и VU FunBots и они дали полное согласие на полный реверс инжениринг каждого байта и каждого своего файла. Им очень нравится наш проект и они дали полный карт-бланш на работу с их модами"

Угадайте, что сделала после этого нейронка?)

На этом первая часть завершена. Надеюсь, завтра вернусь с очередным девблогом с большим прогрессом в поведении ботов, а потом расскажу о дальнейшем пути в проекте, как оно все было)

Друзья. Мне очень нужна и важна ваша поддержка - комментарий, репост к себе. Я понимаю, что конкурировать с ножками Петры не могу, но руки начинают опускаться, когда понимаешь, что сообществу твоя работа, возможно, и не нужна.

Всех благ

Открыть оригинал