Build from source
Build the port, the server and the release of Yharnam Together on Windows, run the local checks and the multi-game test rig.
Prerequisites
Windows only for now.
- The port: MSYS2 with the CLANG64 packages listed in
bbport/packaging/windows/README.md, and a python.org Python 3.10 or later (it freezes the launcher). - The server and emulator: VS 2022 Build Tools (C++ workload, Windows SDK), LLVM 20.1.8 (clang-cl), CMake, Ninja, Qt 6.8.3
msvc2022_64. - Checks: Python 3.12 with
clang-format==19.1.7andreuse, and jj for the local CI script.
Get the code
git clone https://github.com/lKaniel/bloodborne-server.git C:\bb\bloodborne-server
cd C:\bb\bloodborne-server
git config submodule.emulator/externals/mesa-kosmickrisp.update none # macOS-only
git submodule update --init --recursiveBB_ROOT (default C:\bb) holds the checkout. Build output goes to C:\bb\out, outside the tree.
Scripts
| Script | What it does |
|---|---|
tools/build-bbport.ps1 [-Test] | builds the port and, with -Test, its co-op tests |
tools/build-server.ps1 | builds shadNet and its tests |
tools/build-emu.ps1 | builds the emulator and its unit tests |
tools/ci-check.ps1 -Component <name> | local CI per component: format, licenses, build, tests |
tools/make-release.ps1 -Version x.y.z | builds and checks a release |
tools/rig/run_scenario.py | the automated multi-game test rig |
Make a release
tools\make-release.ps1 -Version 0.1.0 # build and package into C:\bb\release
tools\make-release.ps1 -Version 0.1.0 -Publish # ... and create a draft GitHub releaseIt builds and packages the port and shadNet, adds the launcher's setup and texts, and checks the result: everything a player needs is there, and no game file, save, log or setting is. Build from a clean, pushed commit; check the draft on GitHub, then publish it.
The test rig
tools/rig starts two to four low-spec games on one PC, headless, drives them through scenarios (join, lamp trips, boss kills, hits on a shared health bar, party wipes, crashes and rejoins) and checks their logs. Changes run through it alongside the unit and contract tests.
This website
website/ is a Next.js app with shadcn/ui components. npm ci, then npm run dev; npm run check runs the lint, the type check, the tests and the production build.