Dynamic Real Water (DRW) is a high-performance, fully modular AAA-quality C++ plugin for Unreal Engine 5: compute-shader FFT wave simulation, per-shape async buoyancy physics, drivable vessels, and dynamic water interactions with 100% multiplayer support in a single unified system.
Overview
Buoyancy and vessels are full physics simulations, not animated approximations. Every floating object is driven by per-shape force calculations against the live wave surface, and the entire stack is replication-ready out of the box: waves, buoyancy, vessels, water interactions, and underwater effects all work in multiplayer with no extra wiring.
Vessels
- Five hull types (Displacement, Semi-Displacement, Planing, Hydrofoil, Multihull), four movement regimes (Displacement, Transition, Planing, Foiling), and four seat types for multi-crew ships, all without extra wiring.
- Build a speedboat, sailboat, or kayak by swapping sub-assets on a
VesselDataAsset. - Three reference vessels ship: Dinghy, Runabout, TallShip.
- Vessel-attached camera with horizon stabilization, speed-based FOV, position lag, and world collision; Enhanced Input with analog smoothing and quantized replication.
Ocean & water bodies
- Energy-preserving wave blending across Phillips, Pierson-Moskowitz, and JONSWAP spectra, large amplitude swaps don’t spike.
- Runtime preset blending with easing curves and an
OnDRWReadydelegate. - Massive 256×256-tile coverage (~16 km / 10 mi) with LOD-aware grid streaming.
- Discrete water bodies; pools (Global Distance Field clipping for curved basins/harbour walls) and free-form lakes with automatic buoyancy transitions and per-body visuals.
- Fully data-driven: every tunable surface is backed by a Data Asset, so a “stormy ocean” or “calm pool” is a one-click swap.
Visuals & interaction
- Foam: physically motivated, driven by Jacobian wave data so it appears in breaking-wave regions, accumulates, decays over a configurable lifetime, and advects with the flow so trails persist behind moving peaks.
- Caustics: physically based, with chromatic aberration through wave peaks, and interaction-coupled a boat’s wake casts moving light patterns.
- Water interaction layer: a camera-following render target for ripples, wakes, splashes, and foam. Buoyancy reads the same layer, so a vessel’s wake physically pushes nearby floating objects. Physics bodies register themselves automatically gameplay code does nothing.
- Dynamically responsive underwater system, async waterline, and skeletal-mesh buoyancy.
- Niagara-driven spray system for strong wave impacts (Experimental API may shift).
Networking & performance
- Fixed-timestep buoyancy with a configurable calculation rate (1–120 Hz) to match your replication.
- Dedicated smooth-replication component that never alters the authoritative simulation.
- Distance-prioritized task subsystem and multi-instance buoyant-actor optimization for crowded scenes.
- Asynchronous GPU read-back; high-quality mode costs ~2.7 ms on a 3060 Ti in-editor.
Tooling
- Categorized debug subsystem with per-shape force arrows (in Newtons), velocity vectors, and shape visualization for hull tuning.
- One-node Blueprint Library for water-state queries and runtime control.
- Drag-and-drop setup with a
BP_Dronecontrol pawn that has vessel possession and seat occupation pre wired, drop into a level and play immediately. - Sequencer support.
Details
- Engine: UE 5.4 / 5.5 / 5.6 / 5.7 / 5.8
- Fab: Dynamic Real Water | Fab
- Full docs (concepts, guides, API reference, changelog, roadmap): Dynamic Real Water | Natural Level Game Studio
- Discord: Natural Level Game Studio
Happy to answer technical questions in the thread, buoyancy model, multiplayer architecture, hull tuning etc. The roadmap is public and continuously developed, so feature requests are welcome.



