Nightfire Open is an open source reboot of James Bond 007: Nightfire as a Half Life mod, which runs on Windows and Linux.
The latest downloads for the game and dedicated server can be found on the releases page, or on the ModDB page. As this repo is a refresh after the game content was moved elsewhere (see Note Regarding Game Content), releases up to v6 are available only on ModDB.
Note that at present the game is in a relatively minimal playable state, so the experience may not be representative of what is planned for the future.
To run the game:
- Run
bond.exeon Windows - Run
bondon Linux.
The game's binary content and assets (maps, models, textures, etc.) is hosted in a private repository. This is because something (likely AI crawlers) was hitting the repo very regularly and exhausing all the Git LFS bandwidth. Until those robots can learn to play nice, the content will not be accessible publicly.
If you require access to the game content for development, please get in touch to discuss. Otherwise, the game should be buildable without access to the content, and files from an existing release of the game may be placed manually alongside the build. The nfopen directory (which contains file such as gameinfo.txt) should be placed in the same directory as the main bond executable.
CMake 3.21 or greater is required to build the game. Compilation has been tested with Visual Studio 2022 on Windows, and GCC 11.4 on Ubuntu.
Vcpkg is used to manage dependencies. On Windows, all dependencies should be catered for already; on Ubuntu, you will need to additionally install the following packages on your system:
sudo apt install \
build-essential \
mesa-utils \
libsdl2-dev \
autoconf \
automake \
autoconf-archive \
libtool \
python3-jinja2For a basic debug build of the game client, follow these steps:
# Clone the repo to your hard drive and enter the directory.
# Note that without passing --recursive, vcpkg will not function
# properly on Windows. To fix this for an existing clone,
# run git submodule update --init --recursive
git clone --recursive https://github.com/noodlecollie/nightfire-open.git && cd nightfire-open
# Configure and run a build with CMake.
cmake -DCMAKE_INSTALL_PREFIX:STRING=install -S . -B build
cmake --build build --config Debug --target install -j 10The game will be placed in build/install. To run on Linux:
cd build/install/nightfire-open
./bondTo run on Windows:
cd build\install\nightfire-open
bond.exeIf vcpkg goes stale, dependencies may fail to download or build. To update vcpkg:
- Check https://github.com/microsoft/vcpkg/releases for the latest release.
- In the
vcpkgsubmodule directory, rungit checkout tags/<desired version>to update to the release tag you want to use. - Update the
builtin-baselinehash invcpkg.jsonto the commit hash for the release chosen above. - From the root of the repo, run
.\vcpkg\bootstrap-vcpkg.bat(for Windows), or./vcpkg/bootstrap-vcpkg.sh(for Linux) to ensure that thevcpkgexecutable is up to date. - Delete your build directory, and rebuild from scratch.
The primary purpose of this game is to recreate and improve the experience of the PC version of Nightfire, and to provide in the process an open source codebase that will allow for extension and refinement.
Nightfire Open is built with the Xash3D FWGS engine, an open source Goldsrc engine re-implementation. This is for a few reasons:
- The codebase is fully open, so can be adapted as required.
- It's smaller and simpler than the Source engine, its closest cousin.
- It's close in principle to the genuine PC Nightfire engine (itself a heavily modified version of GoldSrc).
- Developing on a more limited engine doesn't come with the expectation that the game will be photorealistic. I don't have the time or the energy as a single hobbyist to be working on some sort of HD photorealistic remake.
The original repo used for development was afterburner-game, but the objectives of this repo and the Xash3D repo became quite different, and were not well-aligned. Consequently, it was decided to take a hard fork of the Xash3D engine and migrate everything to this new CMake-based repository instead, for full control over the codebase.
Absolutely no content or first-party code in the game or its tools is created using generative AI. All maps, models, textures, other visual artwork and audio are either ported from the original game, or made purposely for the game by human developers and artists.
For the avoidance of doubt, no pull requests will be accepted into the codebase where any proportion of the code or content has been created using generative AI, including tests, workflows and placeholder art. Contributions produced using generative AI require little enough effort to be considered spam, and will be treated accordingly. Anyone who submits AI-generated code or content to the game's repositories, or whose accepted pull request is later found to have contained AI-generated code or content, will be removed from the contributors list and will be barred from contributing.
I have no control over whether third party code repositories and libraries contain AI-generated code, but where possible, this project prefers to use third party dependencies where this is not the case. The level editor will be transitioning from TrenchBroom to its related NextBroom fork whem time allows.
Many thanks to:
- Gearbox for the original game.
- The FWGS team for the Xash3D engine and Xash3D version of Half Life SDK.
- Boris Borisovich Godin for the Botrix multiplayer bot plugin for HL2DM, ported to this project by me.
- Developers of STB libraries.
- Developers of rapidjson library.
- Contributors to XeNTaX game reverse-engineering forums.
- ZapSplat.com for various free sound effects.
- Various Nightfire modders over the years whose tools and reverse-engineering have proven invaluable when developing this mod (specifically Tres, 009, Ford, UltimateSniper).

