Skip to content

Releases: chronic8000/ProjectDalian

Project Dalian v0.5.16-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 10 Jul 18:54

v0.5.16-alpha — Hawk mortar arc (up → over → down)

Download ProjectDalian-v0.5.16-alpha-win64.zip

Hawk / Car-SAM flight

v0.5.15 still lofted too horizontally, so rounds flew out toward terrain then steered in sideways.

Mortar profile now:

  1. Nearly straight up from the launcher
  2. High transit over the map mark
  3. Tip over and dive onto the target

Fuse still arms late and only near the ground on the dive.

Requirements

  • Windows 10/11 x64 + Battlefield 2 install (set BF2 path in Options)

Project Dalian v0.5.15-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 10 Jul 18:48

v0.5.15-alpha — Hawk / Car-SAM visible loft + dive

Download ProjectDalian-v0.5.15-alpha-win64.zip

Hawk missile flight

The round was launching, but a bad proximity fuse detonated it mid-air (within ~14m horizontally while still up to 35m above the mark), so the dive never showed. Flight was also too fast.

Now:

  • Ballistic climb (~2.4s), then guidance for the dive
  • Slower artillery arc (~58 m/s, softer boost)
  • Fuse arms after 1.6s and only near the ground while diving
  • Stronger loft + launch point raised off the rails

Click a map mark a few hundred metres away — you should see climb, coast, then drop.

Also in recent alphas

  • v0.5.14: LDR washout fix, sun tone-down, Hawk blast dial-back, OBS/Windows HDR notes
  • v0.5.13: Laptop LDR path / Compat Mode (green-magenta fix)

Requirements

  • Windows 10/11 x64 + Battlefield 2 install (set BF2 path in Options)

Project Dalian v0.5.14-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 10 Jul 18:20

v0.5.14-alpha — Colour / HDR audit, OBS SDR, Hawk blast dial-back

Download ProjectDalian-v0.5.14-alpha-win64.zip

Colour / HDR / brightness audit

Research (LearnOpenGL HDR/gamma, Narkowicz ACES): tonemap in linear, gamma only after ACES. Our textures are not sRGB→linear, so the LDR path must not apply pow(1/2.2).

Fixes:

  • HDR off: removed the mistaken display-gamma that washed the sun white; soft Reinhard highlight compression instead
  • Sun: slightly lower lighting gain + tighter/dimmer sky disc
  • Output Brightness slider (Options → Graphics) — leave at 1.0 unless capture needs a nudge
  • HDR on: still ACES + gamma (float path); label remains “HDR TONEMAP (float GPU)” — not Windows/monitor HDR

Recording for YouTube / OBS

Dark OBS files were usually Windows HDR capture, not missing in-game gamma.

  1. Turn Windows HDR / Auto HDR off while recording
  2. In-game: HDR off, Bloom off, Output Brightness 1.0
  3. OBS: SDR (NV12 / Rec.709 / Partial) — no HDR tonemap capture

Hawk / Car-SAM blast

Was dialed like a nuke (38m / 320 damage + oversized FX). Now 12m / 145 with sane VFX scale — still punchy, not map-clearing.

Laptop note (from v0.5.13)

Green/magenta on weak GPUs → Options → Laptop / Compat Mode, or BF2_COMPAT=1.

Requirements

  • Windows 10/11 x64 + Battlefield 2 install (set BF2 path in Options)

Project Dalian v0.5.13-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 10 Jul 16:44

v0.5.13-alpha — Laptop LDR fix, Compat Mode, Hawk polish

Download ProjectDalian-v0.5.13-alpha-win64.zip

Fix: green sky / purple world on weak laptops

This was not “monitor has no HDR.” The engine was always rendering the 3D scene into a float colour buffer (RGB16F), even when Options → HDR was off. Many Intel / old laptop GPUs corrupt that path → neon green sky, magenta terrain, scanline noise. The HUD stayed normal because UI is LDR.

v0.5.13:

  • HDR off = real LDR (RGBA8) scene + bloom buffers
  • Float buffers only when HDR tonemap is on and the GPU float-FBO probe passes
  • Automatic fallback to LDR if the float FBO is incomplete
  • Options label clarified: HDR TONEMAP (float GPU) — not Windows/display HDR

Laptop / Compat Mode

Options → Graphics → Laptop / Compat Mode (then Apply):

  • HDR / bloom / SSAO / MSAA off
  • Upscaling → Bilinear (safer than FSR on weak GPUs)
  • Lower render scale, shadows, aniso; grass off

Or set env BF2_COMPAT=1 before launch (overrides settings.cfg graphics).

Default upscaling is now Bilinear (was FSR 1.0).

Hawk SAM (Dalian Plant)

  • Orientation / ground sit fix (Z-up → Y-up)
  • Solid MTL colours so the launcher is not flat grey when textures fail
  • Relocated toward the solitary Chinese heli area (Z-8)
  • Bigger SAM explosion VFX + heavier sound

If colours are still wrong

  1. Options → Graphics → Laptop / Compat Mode → Apply
  2. Or: set BF2_COMPAT=1 then run project_dalian.exe
  3. Or delete %APPDATA%\ProjectDalian\ProjectDalian\settings.cfg

Requirements

  • Windows 10/11 x64 + Battlefield 2 install (set BF2 path in Options)

Project Dalian v0.5.12-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 10 Jul 16:05

v0.5.12-alpha — Performance, FSR 1.0, Hawk SAM, FPS counter

Download ProjectDalian-v0.5.12-alpha-win64.zip

Performance (HD textures / Dalian Plant)

  • Render Scale — draw the world below native resolution (biggest FPS lever)
  • FSR 1.0 (EASU + RCAS) — spatial upscaling that runs on every GPU (NVIDIA / AMD / Intel)
    • Options → Graphics → Upscaling: Bilinear / FSR 1.0 / Auto
    • FSR Sharpness (RCAS) slider
  • Mip LOD Bias, Shadow Distance, softer defaults (MSAA off, SSAO off, shadows 2048, aniso 4)
  • Grass on/off + distance
  • Vendor-agnostic upscaling facade ready for future DLSS / XeSS / FSR3 behind the same Auto option

MIM-23 Hawk emplacement (Dalian Plant 64 CQ)

  • Custom launcher OBJ on the Chinese airfield runway apron (near the jets), not south of the strip
  • Content pack is copied next to the exe / into the release zip (content/emplacements/...)
  • Scaled + ground-snapped so it is visible; orange minimap blip when ammo remains
  • Walk up → [E] / [F8] for map SAM fire (3 rounds)

UI / QoL

  • Show FPS toggle (Options → Video) — top-left overlay
  • Graphics options mouse-wheel scroll (list no longer overlaps APPLY / BF2 path)
  • Storm Shadow custom missile mesh path (Car-SAM)

Flight feel

  • Jet sweet-spot turn curve + mass-scaled thrust
  • Heli J-hook / slide tuning

Requirements

  • Windows 10/11 x64 + Battlefield 2 install (set BF2 path in Options)

v0.5.11-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 10 Jul 07:07

Project Dalian v0.5.11-alpha

Map browser — all mods, clear labels

  • Single-player Play and multiplayer Host setup list every map from every installed mod (no deduplication).
  • Each row shows MAP + MOD columns; mod tags are highlighted as [bf264], [64coop20YA], etc.
  • Selected-map detail panel shows mod folder and archive folder name.

Multiplayer UI

  • Faction / army list scrolls with the mouse wheel in host setup (wheel over the right panel scrolls armies; left panel scrolls maps).
  • Host disconnect: when the host leaves a match or lobby, clients see CONNECTION LOST / The host has ended the session and return to the main menu.

Tank tread rendering

  • BF2 treads scroll on the U texture axis (was V — caused smeared “radial” strips).
  • Tracked tanks: road-wheel pads use UV scroll; drive sprockets still rotate as geometry.
  • Wheeled APCs unchanged (tires spin, no tread UV scroll).

Includes all v0.5.10 fixes

  • Lobby syncs map_server_zip so joiners load the host's map
  • v0.5.9 snapshot interpolation, v0.5.8 MP vehicle sync

Both players should use the same build for multiplayer.

Project Dalian v0.5.10-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 09 Jul 23:19

Project Dalian v0.5.10-alpha

Multiplayer — joiners load the host's selected map

Symptoms in v0.5.9: when a second player joined, they always loaded Dalian Plant instead of the map the host picked. Both players were not on the same level.

Cause: the lobby only synced the map display name, not the server.zip path. If name lookup failed (manual IP join, case mismatch, etc.), the client fell back to maps[0] — the first map alphabetically (Dalian Plant).

Fix:

  • Lobby wire format now includes map_server_zip (authoritative path to the level archive)
  • Host publishes full map info when opening the lobby
  • Joiners resolve the map from server.zip path first, then display/folder name
  • Removed the silent fallback to map index 0; joiners wait for lobby sync instead

Both players must use this build.

Includes all v0.5.9 fixes

  • Snapshot interpolation netcode, input replication, measured velocity
  • v0.5.8 vehicle/animation MP sync, v0.5.7 viewport fix

Project Dalian v0.5.9-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 09 Jul 23:06

Project Dalian v0.5.9-alpha

Multiplayer netcode overhaul — snapshot interpolation + input replication

Symptoms in v0.5.8: second player still moved very slowly (host could lap them); remote soldiers looked orange/tan, small in the distance, with guns sticking out of shoulders and deformed arms.

Root cause: v0.5.8 added velocity and vehicle replication but still used exponential position smoothing (wrong model for fast movement). Remote facing used velocity instead of look yaw; team colour tints distorted appearance.

Fixes (industry-standard listen-server netcode):

Phase 1 — Movement sync

  • Snapshot interpolation (Gaffer model): 64-entry timestamped ring buffer per player; render ~100 ms in the past by lerping two known snapshots
  • Dead reckoning for short gaps (pos + vel × age, capped at 250 ms)
  • Hard snap if render position drifts >2 m from authoritative state
  • Immediate relay: host rebroadcasts on every client MSG_STATE / MSG_INPUT (not only host frame)
  • Fixed 60 Hz snapshot timer decoupled from host render FPS

Phase 2 — Visual fixes

  • Measured velocity from position delta each send (not just desired_velocity)
  • Remote facing = look yaw (matches local third-person; fixes gun-through-shoulder)
  • Neutral soldier tint (no orange/blue team wash on remotes)
  • Interpolated anim_time from snapshot buffer

Phase 3 — Input replication foundation

  • New NetInput + MSG_INPUT wire message (seq, move, yaw/pitch, buttons)
  • Sent every frame alongside state; stored server-side per player
  • Wire format v3 adds input_seq (backward compatible with v2)

Both players must use this build.

Includes all v0.5.8 fixes

  • Vehicle transform replication, spawn-locked unoccupied vehicles
  • v0.5.7 viewport fix, v0.5.6 UI/kill feed polish

Project Dalian v0.5.8-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 09 Jul 22:44

Project Dalian v0.5.8-alpha

Multiplayer sync — movement, animation, and vehicles

Symptoms in v0.5.7: the second player moved very slowly (host could run laps around them); remote soldiers slid with frozen legs; helicopters showed as a floating soldier with no vehicle model; parked vehicles could drift out of sync between clients.

Fixes:

  • Extended player replication with velocity, animation time, pose, and vehicle id/transform (backward-compatible wire format)
  • Faster remote smoothing with velocity extrapolation so other players keep up at run speed
  • Full soldier animation set for remote players (walk/run/crouch/prone via synced anim_time + pose)
  • Vehicle transform replication when driving — remotes see the actual helicopter/tank mesh, not a hovering body
  • Unoccupied vehicles lock to their map spawn point; spawn anchors stored at load time
  • Vehicle draw culling uses live position instead of stale spawn origin

Test with two clients on the same build: on-foot movement speed, crouch/prone visibility, helicopter pilot + observer, parked vehicles staying put.

Includes all v0.5.7 fixes

  • In-game viewport no longer stretched/skewed after shadow pass
  • v0.5.6 UI clipping, kill feed, join/leave toasts

Project Dalian v0.5.7-alpha

Choose a tag to compare

@chronic8000 chronic8000 released this 09 Jul 22:21

Project Dalian v0.5.7-alpha

Hotfix — in-game view stretched / skewed (v0.5.6 regression)

Symptoms in v0.5.6: menus looked fine, but the 3D battlefield appeared stretched or skewed; third-person showed only part of the soldier; walking forward (W) looked diagonal while strafe (A/D) felt normal.

Cause: after shadow-map rendering, OpenGL's viewport was left at shadow resolution (e.g. 4096×4096) while the 3D camera projection still used the window aspect ratio. The world was drawn into the wrong viewport, distorting everything in-game. UI overlays were unaffected because they reset the viewport separately.

Fix: restore the drawable viewport before the main 3D pass (begin_frame + explicit reset after shadow cascades).

Includes all v0.5.6 features

  • UI text clipping across menus and HUD
  • Kill feed with retail BF2 bot names
  • Join / leave toasts for human players