OpenBF2: открытая реконструкция движка Battlefield 2
Группа энтузиастов запустила проект OpenBF2 — открытую реконструкцию движка Battlefield 2 версии 1.50. Цель — вернуть классический шутер на современные системы с полной совместимостью с оригинальными ресурсами и улучшенной серверной частью.

Команда разработчиков и специалистов по обратной инженерии представила проект OpenBF2, посвящённый полному восстановлению движка сетевого шутера Battlefield 2 версии 1. 50. Исходный код создаётся на основе анализа оригинальных исполняемых файлов для Windows и Linux. Проект распространяется под свободной лицензией GPL-3. 0 и призван вернуть классический боевик на современные операционные системы в первозданном виде.
Цели и философия проекта
Главная задача OpenBF2 — создать стабильный и защищённый выделенный сервер, современный клиент для актуальных ОС и полноценный редактор. По словам ведущего разработчика Маттиаса Хосте, реконструкция должна быть неотличима от оригинального релиза и сохранять все его особенности. Авторы делают ставку на полную совместимость с оригинальными ресурсами: игроки смогут использовать существующие карты, анимации, пользовательские модификации и подключаться к серверам по классическому сетевому протоколу.
Серверная часть получит нативную поддержку 64-битных систем на базе Windows и Linux, что избавит сетевые баталии от давних ограничений по оперативной памяти. Основным языком проекта выступает C++, на который приходится свыше 95% кодовой базы репозитория. Разработка ведётся по строгим правилам: участники обязаны подтверждать каждую функцию через дизассемблеры IDA Pro или Ghidra, сверяя таблицы виртуальных методов, размеры структур и инструкции оригинальных библиотек. Правила строго запрещают заполнять неизвестные участки кода догадками или пустыми заглушками, а все предлагаемые изменения проходят обязательную ручную проверку авторами.
В ходе восстановления разработчики попутно избавляются от устаревших костылей середины 2000-х годов, включая менеджеры памяти Memory. dll и библиотеки MSVCR71. Команда уже восстановила логику клиентских звуков оружия, наладила работу интерфейса SwiffPlayer, устранив вечные зависания меню при отключении от матча, и исправила ошибку с повторным освобождением буферов дорог, которая в релизной версии приводила к вылетам.
Серьёзной модернизации подвергся и встроенный редактор уровней. Его интерфейс перевели на библиотеку Dear ImGui с манипуляторами ImGuizmo, добавив инструменты настройки интерфейса и генерации карт освещения. Кроме того, в редакторе появилась система безопасного сохранения уровней с автоматическим созданием резервных копий перед перезаписью файлов, что предотвращает повреждение пользовательских проектов при случайных сбоях.
Для выделенных серверов создатели внедрили консольную подсистему openbf2, позволяющую администраторам безопасно подгружать нативные плагины без риска исполнения вредоносного кода через скрипты сторонних карт. Исходный код проекта открыт для всех желающих на GitHub, а для локальной сборки тестового клиента требуется компилятор MSVC и пакет DirectX 9 SDK.




Обсуждение
Войдите, чтобы присоединиться к обсуждению.
Загружаем обсуждение…