-
Notifications
You must be signed in to change notification settings - Fork 1
Installation Windows Runner
Use Runner (tools/runner) to download or build server binaries, configure infrastructure, and start or stop the full fb stack on Windows.
Parent guide: Windows Installation
Runner is a WPF launcher that manages the local development workflow:
| Feature | Description |
|---|---|
| Patch | Download prebuilt dist.zip and extract to build/dist/
|
| Build | Compile C++ and .NET locally into the same build/dist/ layout |
| Infrastructure checks | Verify repository, toolchain, native deps, and TCP connectivity |
| Setting tab | Configure working directory, MySQL / Redis / RabbitMQ, and server ports |
| Run / Stop | Generate configs under build/dist/config/ and launch all processes |
Both Patch and Build produce the same runtime layout under build/dist/:
-
gateway.exe,login.exe,game.exe -
internal/,write-back/,log/,marketplace/,admin-tool/ -
maps/,json/,scripts/
| Requirement | Notes |
|---|---|
| Windows 10 or later (64-bit) | |
| Git for Windows | Submodule support |
| .NET SDK | 8.0 or later — to build and run Runner |
| MySQL, Redis, RabbitMQ | Must be running before Run |
Cloned fb repository |
See Windows Installation — Clone |
| Requirement | Notes |
|---|---|
| CMake | 3.28 or later |
| Visual Studio | 2022 or later with Desktop development with C++ |
| Native dependencies | Run tools/update-modules.bat once (see Build from source) |
| Disk space |
10 GB or more free on the drive containing build/
|
Runner's Infrastructure status panel on the Home tab checks these automatically before allowing Build.
From the repository root:
cd tools\runner
dotnet publish -c Release -o binOr from the tools directory:
.\run.batThis publishes Runner and starts tools\runner\bin\runner.exe.
Open the Setting tab. The sidebar groups settings into General, Infrastructure, and Server sections.
| Field | Purpose |
|---|---|
| IP | External IP clients connect to (127.0.0.1 for local-only) |
| Working directory | Path to your fb repository root (must contain CMakeLists.txt and .git) |
Configure connection details for services that must be reachable before Run:
| Section | Default port |
|---|---|
| MySQL | 3306 |
| Redis | 6379 |
| RabbitMQ | 5672 |
Add one or more MySQL entries (unified + world databases). Runner verifies TCP connectivity to each entry when you click Run.
Configure ports and names for each service group:
| Section | Examples |
|---|---|
| Gateway | TCP port (default 3001) |
| Login | One or more login servers (name, description, port) |
| Game | One or more game servers (name, port, thread counts) |
| Internal | HTTP port (default 3000) |
| Marketplace | HTTP port |
| Admin Tool | HTTP port |
Settings are saved to tools/runner/settings.json.
[ 마지막 빌드: yyyy-MM-dd HH:mm:ss ] [ 빌드 ] [ 패치 ] [ 시작 ]
| Button | Action |
|---|---|
| 패치 (Patch) | Download and extract prebuilt binaries |
| 빌드 (Build) | Local CMake + dotnet build (requires full toolchain) |
| 시작 (Run) | Generate configs and start all services (toggles to 종료 when running) |
Patch, Build, and Run are mutually exclusive while a long operation is in progress.
The right sidebar shows a live checklist, for example:
- Working Directory, Git, Git submodules
- CMake 3.28+, MSVC (VS 2022+), .NET SDK 8.0+
- Disk space (10 GB+), Native dependencies (
dependency/) - MySQL, Redis, RabbitMQ (from Setting tab)
The summary footer shows pass/fail counts (e.g. 14/14 통과 or 12/14 통과 - 빌드 불가). Build is blocked until all required checks pass.
Checks run automatically when the Home tab loads. Build re-runs the full check before showing a confirmation dialog.
The main panel shows build/patch output. Use it to diagnose download, CMake, or dotnet publish failures.
Choose one of the following.
Best when you only need a running server and do not compile C++ locally.
- Set Working directory to your
fbrepo root. - Click 패치 (Patch).
- Runner downloads
dist.zip, extracts tobuild/dist/, then overlays local assets from the repo when present:-
server/game/json/→build/dist/json/ -
server/game/scripts/→build/dist/scripts/ -
server/game/maps/→build/dist/maps/(if present)
-
After Patch, refresh maps from the repo with 파일 → 업데이트 → 맵 (resources/maps/maps.zip → build/dist/maps/).
No Visual Studio or native dependency build is required for Patch.
Best when you changed C++ or .NET code and want binaries built on your machine.
- Complete native dependency setup once:
tools\update-modules.bat(see Build from source). - Ensure all infrastructure checks pass on the Home tab.
- Click 빌드 (Build) and confirm the dialog.
- Runner runs:
-
cmake -S . -B build(if no CMake cache) cmake --build build --config Debug-
dotnet publishfor Internal, Write-back, Log, Marketplace, Admin Tool - Copy maps, scripts, and JSON into
build/dist/
-
First run can take 30 minutes to 2+ hours (Boost and other native libs take longest on first update-modules.bat).
Build overwrites existing files in
build/dist/. Stop running servers before building.
After Patch or when working on game data, use 파일 → 업데이트:
| Menu | Source | Output |
|---|---|---|
| 맵 | resources/maps/maps.zip |
build/dist/maps/ |
| 데이터 | runs tools/update-data.bat
|
build/dist/json/, build/dist/internal/json/
|
| 스크립트 | server/game/scripts/ |
build/dist/scripts/ |
Run 데이터 after editing Excel tables in resources/table/.
- Start MySQL, Redis, and RabbitMQ.
- Verify infrastructure entries in the Setting tab match your running services.
- Ensure
build/dist/contains binaries (from Patch or Build). - Click 시작 (Run).
Runner:
- Pings MySQL, Redis, and RabbitMQ TCP ports
- Writes JSON configs to
build/dist/config/(login, gateway, game, and .NETappsettings) - Starts .NET services (Internal, Log, Write-back, Marketplace, Admin Tool)
- Starts C++ services (Gateway, Login, Game)
The server tree on the right shows process groups and status. Click 종료 to stop all processes.
Minimal stack for one world:
- Internal — applies DB migrations, central HTTP API
- Log — structured log pipeline (RabbitMQ consumer)
- Write-back — persists Redis cache to MySQL
- Marketplace — in-game marketplace API
- Admin Tool — web-based administration UI
- Gateway → Login → Game — client-facing TCP services
| Problem | Check |
|---|---|
| 빌드 불가 on Home tab | Open infrastructure panel; fix failed items (CMake, MSVC, dependency/, disk space) |
| Port not open on Run | MySQL / Redis / RabbitMQ not listening on configured host:port |
game.exe not found in build/dist
|
Run Patch or Build first |
| Build fails at cmake / C++ step | Run tools\update-modules.bat in Developer PowerShell for VS 2022
|
| Patch download fails | Network access to patch server; try Build instead |
| Korean text garbled in scripts | Source files are UTF-8; ensure editor and console use UTF-8 |
| Setting tab disabled | Stop all running servers first |
For manual CMake, Visual Studio, and CI-aligned steps, see Windows — Build from source.