= Darktide P2P :idprefix: :idseparator: :toc: macro :toclevels: 1 :!toc-title: :caution-caption: :fire: :important-caption: :exclamtion: :note-caption: :paperclip: :tip-caption: :bulb: :warning-caption: :warning: An engine plugin for Warhammer 40,000 Darktide that implements peer-to-peer networking. == Building > This assumes cross-compiling on a Linux build machine. > If you're on Windows, you're on your own. Shouldn't be too difficult, you're on native build anyways. === Prerequisites * A reasonably recent version of LLVM, lld & Clang ** A symlink `clang-cl` -> `clang` in `PATH` * cURL * Wine * Rust nightly toolchain, MSVC target and `rust-src`: ** `rustup toolchain install nightly` ** `rustup target add x86_64-pc-windows-msvc` ** `rustup component add rust-src` === Build You'll need to download the MSVC libraries once (their license forbids redistribution, even in something like a Docker image). With https://github.com/casey/just[just], simply run `just setup-msvc`, otherwise run the corresponding commands from `Justfile` manually. This will download the current Visual Studio Build Tools and corresponding libraries and headers into `./msvc`. Then run `just build`, which runs `cargo build` with the necessary toolchain variables set (see top of `Justfile`). The `.dll` in `target/x86_64-pc-windows-msvc/debug` can then be copied to the game's `binaries/plugins` folder. Remember to rename it so it has the required `_pluginw64_release.dll` suffix.