Saltar al contenido
PORTSNATIVE.
InicioCatálogo
Juegos WebEmuladoresHerramientasNovedades
PORTSNATIVE.

Un catálogo para descubrir ports y proyectos relacionados. Enlazamos a las fuentes oficiales y no alojamos archivos de los juegos originales.

ExplorarCatálogoMi lista
InformaciónNosotrosProponer un portSoporteApoyo y donacionesAviso legal
© 2026 PortsNative
Volver al catálogo
The Lord of the Rings: The Battle for Middle-earth II (OpenBFME)
PORTSNATIVE

The Lord of the Rings: The Battle for Middle-earth II (OpenBFME)

PORT NATIVOLUCHA / COMBATEWINDOWSBETA

The Lord of the Rings: The Battle for Middle-earth II (OpenBFME)

The Lord of the Rings: The Battle for Middle-earth II

OrigenWindows

TecnologíaPort Nativo C/C++ (Reimplementación de Motor)

Disponible paraWindows

Ver proyecto oficial

Sobre el proyecto

El Señor de los Anillos: la batalla por la Tierra Media II es la segunda entrega de la serie de videojuegos La batalla por la Tierra Media, basada en la obra El Señor de los Anillos de J. R. R. Tolkien. Desarrollado por Electronic Arts en colaboración con Sage, este videojuego de estrategia en tiempo real permite a los jugadores controlar a diversas facciones en su lucha por la Tierra Media. Disponible para PC y Xbox 360, el juego ofrece tanto modos de un jugador como multijugador, donde los jugadores pueden participar en batallas épicas y experimentar la rica narrativa del universo de Tolkien

Información oficial del proyecto

README original del autor (en inglés)Abrir en GitHub ↗
<div align="center">

OpenBFME

The Battle for Middle-earth II: The Rise of the Witch-king 2.01, rebuilt in Godot.

Latest alpha build Licence: GPL-3.0 Godot 4.7 Platforms

<a href="https://github.com/Open-BFME/openbfme-godot/releases"><img alt="Download the alpha build (Windows / Linux)" src="https://img.shields.io/badge/Download-the%20alpha%20build%20for%20Windows%20%2F%20Linux-2ea44f?style=for-the-badge&logo=github"></a>

<sub>The newest alpha build is at the top of the releases page: one file per system, <code>openbfme-…-windows-x64.zip</code> or <code>openbfme-…-linux-x64.tar.gz</code>, with the game and the launcher in it.</sub>

Play it · Status · Where it's going · Build from source · Player guide · Roadmap

</div>

What it is

OpenBFME is built with AI assistance and is still being optimized. The Rise of the Witch-king has not been decompiled yet, so many features are reverse engineered from the game, and some use a stand-in until OpenBFME's RotWK decompilation project is complete.

OpenBFME is a faithful, fan-made recreation of The Rise of the Witch-king 2.01 that runs on the original game files from your own install. This repository contains no game assets: you bring your own copy of the game, or let the launcher download it (see Play it).

The game logic is C++ in a GDExtension (engine/). It is translated from EA's Command & Conquer Generals: Zero Hour source and the BFME decompiles, and checked against the RotWK program itself, keeping the original SAGE class and file names. Godot 4.7 (godot/) does the drawing, sound, input and windows. The previous codebase lives on in this repository's history (tag legacy-final).

flowchart LR
    A["Your RotWK 2.01 +<br/>BFME2 1.06 install"] -->|read only| B["OpenBFME engine<br/>(C++ GDExtension:<br/>the game's rules)"]
    B --> C["Godot 4.7<br/>(graphics, sound,<br/>input, windows)"]
    L["OpenBFME Launcher"] -->|installs, checks, starts| C

OpenBFME is unofficial. It is not made or endorsed by EA.

Play it

Alpha builds. These are early alpha builds for testers. Expect missing features and rough edges; see Status and the known issues in the player guide. Releases have plain numbers: Alpha 0.4.5, then 0.4.6 and so on, and the middle number goes up (0.5.0) when a big new feature lands. Your launcher updates to each one by itself.

Having trouble? See the troubleshooting guide for game folders, updates, crashes, logs and online errors on Windows, Linux and macOS.

You need The Rise of the Witch-king 2.01 and The Battle for Middle-earth II 1.06, in any language, and x86-64 Windows 10/11 or x86-64 Linux with GLIBC 2.28 or newer and Vulkan graphics (or Direct3D 12 on Windows).

  1. Download OpenBFME from GitHub Releases: openbfme-<version>-windows-x64.zip or openbfme-<version>-linux-x64.tar.gz. It is one file with the game and the launcher in it. Unpack it into a folder you can write to.
  2. Start the game or the launcher: OpenBFME.exe or OpenBFMELauncher.exe (on Linux ./OpenBFME.x86_64 or ./OpenBFMELauncher.x86_64). The game is ready to play, with no first download, and whichever one you start keeps OpenBFME up to date: a newer build is downloaded in the background, checked against the signed release, and used from your next start. On Windows, SmartScreen may say Windows protected your PC, because the files are not code-signed yet: choose More info, then Run anyway.
  3. Play. On the first start the game looks for your RotWK and BFME2 folders (the registry entries the original installers write, and on Linux also Wine, Proton, Lutris, Heroic and Bottles prefixes). Confirm them or choose them with Browse.... It checks every game file once (this can take a minute) and remembers the folders.

No games installed? The launcher shows Download the games: files from the All In One BFME Launcher service (BFME Foundation, Patch 2.22 team), about 8.6 GB, every file checked.

Logs. Every run writes a session log, with your user name and home folder removed:

Log folder
Windows%APPDATA%\Godot\app_userdata\OpenBFME\logs\
Linux~/.local/share/godot/app_userdata/OpenBFME/logs/

You never have to find it by hand: click Logs next to the version number in the menus, or Open log folder in any error or crash message. After a crash, the next start tells you which log to send.

Free camera. The launcher's Free camera setting (Settings > General) lets the camera zoom out to the whole map. This is an OpenBFME option, not part of the original game; in a game, Ctrl+Z switches it on and off. From the command line it is -- --free-camera.

Everything else (updates, hotkeys, troubleshooting) is in the player guide.

Status

What works today, in plain terms. "Partial" means you can use it but parts of the original are still missing.

AreaStatusNotes
Finding and checking your game files✅ Works2.01 / 1.06 installs in any language (the languages the All In One service lists are checked by MD5; others load with an in-game warning and a Copy details button so you can send them to us); the launcher's download picks the text and voice language
Skirmish, all 7 factions✅ WorksMen, Elves, Dwarves, Isengard, Mordor, Goblins and Angmar; scripted test players played 71 games through the real menus and controls in the latest full sweep, every faction, with no crash or stall
Combat, hordes, heroes, spell book✅ Workshorde formations, cavalry charges, sieges, powers; details are still being matched to the original
Team colours🟡 Partialunits and buildings show their player's colour, but how the colour is blended in is an educated guess, not yet checked against the original
Building, economy, upgrades✅ Worksbuilders, walls, castles, resources, upgrades and experience
Computer opponent🟡 Partialbuilds a base, trains armies and heroes, uses its spell book and most of its powers, attacks and finishes games; defending and expanding are not yet like the original
In-game interface✅ WorksPalantir, command bar, RotWK's radar and pings, health bars and levels, control groups, camera bookmarks, hotkeys, right-click orders as in the original
Main menu and options🟡 Partialreal menus with the original layout; the credits roll; the graphics detail level sets particles, texture quality and health bars, but shadows and the other detail rows are not drawn yet; OpenBFME's own settings inside Options
Sound and music🟡 Partialvoices, effects, music and the original stereo image; some sounds (damage sounds, scripted music, parts of the big-battle ambience) are missing
Movies✅ Worksthe start-up logos and intro, and the campaign movies (no subtitles)
Campaign🟡 Partialmissions start from the menu with their movies and narration; missions and campaign progress can be saved and loaded, including the between-mission menu and auto-save; saves are OpenBFME's own format and heroes do not carry over between missions yet
LAN multiplayer✅ WorksWindows and Linux players in one game, disconnect screen, every game recorded
Replays🟡 Partialevery game is recorded and can be watched from Load Replay; no saving under a name, no replay controls
Create-a-Hero✅ Worksthe hero builder, colours and saving; heroes can be fielded in skirmish and LAN
Save / load🟡 Partialskirmish and campaign missions save and load through the original Save / Load screens (OpenBFME's own save files, not the original game's)
War of the Ring❌ Not yet
Online multiplayer🟡 Test featureserver browser, rejoin and spectating through an OpenBFME lobby and relay; the launcher's Multiplayer screen supports sign-in, friends and invitations; the lobby is configurable (player guide)
Mods❌ Not yetdesigned in from the start; Edain is the first target

Faithful first. OpenBFME copies the original game's behaviour; it does not reinvent it. Where the evidence runs out and the team has to make an educated guess, that guess is not hidden: it is recorded as an acceptance stop in docs/STOPS.md, reported by the game at runtime and pinned by a test. There are 838 open stops today. Some are big (retail save files), most are small details waiting for better evidence. The plan to get to a 1:1 game is in docs/ROADMAP.md.

Latest version. The newest build and its patch notes are on the releases page; the history is in docs/CHANGELOG.md.

Where it's going

  1. Skirmish and multiplayer parity with the original: every faction, the computer opponent, LAN and online games, replays.
  2. The Rise of the Witch-king campaign.
  3. The Battle for Middle-earth II Good and Evil campaigns.
  4. War of the Ring.
  5. Mods, with Edain first.

The full plan, with what is done and what is next, is in docs/ROADMAP.md.

Game editions

The engine is growing two editions, each with its own rules: The Battle for Middle-earth II 1.06 and The Rise of the Witch-king 2.01. BFME2 is the base: its rules come from the clean BFME2 1.06 program (game.dat), with the Open-BFME-2 decompilation as the reading aid. RotWK is BFME2 plus its changes. Today every game still runs RotWK's rules; the BFME2 edition is being built behind a developer switch (see docs/EDITIONS.md). Mods will declare which edition they are for. BFME1 comes later.

Build from source

You need Git with Git LFS, CMake (3.17 or newer), Ninja, Python 3, a C++17 compiler and Godot 4.7. Clone with the godot-cpp submodule (POSIX shell on Linux/macOS; run from your parent source folder):

git clone --recursive https://github.com/Open-BFME/openbfme-godot
cd openbfme-godot

Linux (GCC or Clang, from the repository root). For MP3 fixture generation, put the reference LAME 3.100 and mpg123 on PATH; otherwise use the reference fixtures and -DOPENBFME_LAME=OFF as described below:

cmake -S engine -B engine/build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build engine/build --target openbfme openbfme_tests   # extension -> godot/bin/
export ROTWK_INSTALL=/path/to/RotWK BFME2_INSTALL=/path/to/BFME2
engine/build/openbfme_tests                                   # unit tests (retail tests skip without the two folders)
godot --path godot                                            # start the game

Windows only (Visual Studio C++ x64/x86 tools, CMake, Ninja, Python on PATH, reference MP3 tools or fixtures). Run from the repository root in an x64 Native Tools Command Prompt; install the LLVM 19+ AST-audit prerequisites in docs/WINDOWS.md first:

build.bat
set "ROTWK_INSTALL=C:\Games\RotWK"
set "BFME2_INSTALL=C:\Games\BFME2"
set "GODOT=C:\path\to\Godot_v4.7.2-stable_win64_console.exe"
run_tests.bat
"%GODOT%" --path godot

build.bat writes the extension to godot\bin and the tests to engine\build. run_tests.bat runs the unit tests, simulation AST audit, headless smoke test and windowed shader test. With the default required AST check, it exits 0 when all pass, 77 for a smoke/shader prerequisite skip, and 1 for a failure. Overriding SIM_AUDIT_ARGS=--ast=skip only warns and continues, so a final 0 with that override is not proof of an AST pass. Windows builds can also be cross-compiled from Linux with tools/release/build_windows.sh; see docs/WINDOWS.md. Packaging and releases are described in docs/RELEASE.md.

MP3 decoder tests use the reference-machine fixtures (LAME 3.100, matching engine/tests/data/audio/mp3_golden.tsv). Test-enabled configuration first checks <build>/audio_fixtures (or OPENBFME_AUDIO_FIXTURES). Valid reference streams need no encoder/decoder tools or extra flag, even if an incompatible LAME is on PATH. Otherwise generation requires LAME 3.100 and mpg123; other LAME versions are rejected explicitly. Missing fixtures/tools yield one configure warning, never a configure/build error; exactly the five MP3 test cases fail at test time with the reason and manual command. For standalone generation outside a CMake sandbox, run python3 tools/audio/gen_mp3_fixtures.py --out workspace/audio_fixtures from the repository root. See the MP3 test README for hash validation. -DOPENBFME_BUILD_TESTS=OFF removes the C++ test target and all MP3 fixture/tool checks for release-only builds. build.bat and build.bat Release build the extension, tests and test helpers without fixtures or audio tools; executing the five MP3 cases still requires verified fixtures.

Instead of the environment variables, the install folders can live in user://install-paths.cfg as KEY=VALUE lines (the game's first-run screen writes this file). Mounting checks every archive's size and MD5 against engine/data/retail-archives/ and stops on any unknown or changed file. The load order is documented in engine/src/Common/RetailArchivePolicy.h.

How it's made

The work is split into lanes, each porting one system from the RotWK 2.01 program, the Open-BFME decompiles and the Zero Hour source, citing the exact address or file it comes from. Every change is reviewed before it is merged, and gates run the real retail data: the unit tests, scripted skirmish and LAN games, replays that must match frame by frame, and Windows-vs-Linux lockstep games that must stay in sync. The standing rules are in docs/PLAN.md.

Devlogs

Video devlogs on the OpenBFME YouTube channel:

  • Devblog #1
  • Devblog #2
  • Devlog #3: You Asked, We Fixed

Feedback and bug reports

  • Bugs: open an issue on GitHub, or post in the OpenBFME Discord's #bug-reports forum (join from the YouTube channel page).
  • Always attach the session log of the run where it happened (see Logs), and say which version you played (it is shown in the top right corner of the menus) and what you did. On Windows, send the log file, not a copy of the console window.
  • Community reports and their state are tracked in the roadmap.
  • Pull requests are welcome: CONTRIBUTING.md says how they are checked, reviewed and merged with the next release (and that game files never go into the repository).

Behaviour references

  • RotWK 2.01 INI files: every number in the game.
  • EA's Command & Conquer Generals: Zero Hour source (GPL-3): the SAGE engine that BFME was built on.
  • Open-BFME-1 and Open-BFME-2: matching decompilations of BFME1 and BFME2.

Licence

GPL-3.0; see LICENSE and NOTICE (Zero Hour-derived parts and EA's terms).

Leer guía oficial
CALIFICACIÓN
—
Cargando votos…
Publicidad

FICHA DEL PROYECTO

Tipo de proyecto
PORT NATIVO
Género
Lucha / Combate
Estado
beta
Plataforma de origen
Windows
Tecnología
Port Nativo C/C++ (Reimplementación de Motor)
Versión
—
Actualización
19 oct 2026

Plataformas de destino 1

Windows
Ver en GitHub
Publicidad