Built from zero.
Flown, driven, fought.
Project Dalian is an open-source C++20 engine that reads mesh, terrain, texture, and script data straight out of your own Battlefield 2 install and runs it through a modern OpenGL pipeline — skeletal hit detection, physical ballistics, 6-DoF FPV drones, PBR materials, cascaded shadows. No EA or DICE assets ship with it. You bring the game, we bring the engine.
Bring your own copy — read before deploying
This repository contains no EA or DICE assets. No meshes, textures, sounds, or archives from Battlefield 2 are committed anywhere in the source tree — only original engine code, a small permissively-licensed third-party stack, and a hand-authored test cube.
Project Dalian requires a legitimate installation of Battlefield 2 (or a compatible mod such as Project Reality). At runtime the engine reads assets directly from your local archives. This project is independent and non-commercial, and is not affiliated with or endorsed by EA or DICE.
What's live in the build
Every line here runs against real retail BF2 archives today. Status reflects how far each system has been hardened — not whether it works.
Format loaders verified byte-for-byte
.staticmesh, .bundledmesh, .skinnedmesh, .ske/.baf skeletal animation, .collisionmesh, .dds (DXT1/3/5), zip archive mounting, and the .con/.tweak interpreter — all reverse-engineered and checked against retail output.
PBR surface path + cascaded shadows
Cook-Torrance GGX shading, baked object lightmaps, GPU skinning, terrain colormap/detail splatting, water with Fresnel specular, undergrowth billboards with wind sway, and an offscreen-FBO pass for the drone feed.
Skeletal hit registration, physical ballistics
Two hot-swappable hit models — hitscan and physical projectiles with gravity, drag, and wind deflection — plus per-bone capsule colliders for head/torso/limb zones instead of one bounding box.
Ground vehicles, helicopters, fixed-wing jets
Terrain-following chassis tilt, BF2-style collective/cyclic/yaw helicopter flight, rotor RPM blur, and arcade jet flight with body-wing lift, afterburner, V1 rotation, and gear-tuck animation.
Guided and ballistic weapons
6-DoF FPV recon drone with per-rotor thrust simulation, a one-way FPV kamikaze loitering munition, and a vehicle-launched SAM with tactical-map targeting and lofted climb.
Host/join lobby, LAN + Tailscale discovery
Faction picker, ready states, kill feed, join/leave toasts, late-join, ticket-grace bleed pause, and auto round restart. Session sync over UDP with snapshot interpolation.
Conquest layer, enemy AI, deploy flow
Tickets, control-point capture, and voice cues; enemy AI with patrol, advance-to-contact, and reaction delay; full deploy screen with kit picker, faction, and spawn map.
Roadmap status
The foundational engine phases are closed out. What's left is depth — polish on the systems layered on top.
Get into a level
Pre-built Windows binaries, or compile it yourself. Either way, all it takes on top is a legitimate copy of Battlefield 2.
Windows — pre-built
- Grab the latest .zip from GitHub Releases
- Unzip anywhere
- Run
project_dalian.exe - Set Options → BF2 path to your retail install
Build from source
Needs CMake 3.24+, a C++20 compiler (MSVC 2022, Clang, or GCC/MinGW-w64), and Git.
# configure + build cmake --preset default cmake --build build # optional: run parser unit tests ctest --test-dir build
The engine needs hands
This is a hobby project moving fast on one contributor's time. Beta testers and code contributors both move it forward.
Break it, then tell us how
Run it against your own BF2 install, try maps outside Dalian Plant, push the vehicle and multiplayer code, and file what you find. Crash logs, half-working features, and "this map does something weird" reports are all useful.
Email to sign up →Pick a system, dig in
Jet flight polish, vehicle audio coverage, networking hardening, particle effects, and an in-engine editor are all open. The codebase is original C++20 with a small, permissively-licensed third-party stack.
Email to contribute →