Play the chart
What you need
Section titled “What you need”- Rust 1.98.1.
rust-toolchain.tomlpins it, andcargowill install that toolchain. That pin builds the simulation and the Godot extension. - Godot 4.7.2, the official build. Linux CI uses that editor. A Windows build of the extension has been run. A macOS build has not.
The Godot CI job sets RUSTUP_TOOLCHAIN=stable, which overrides the pin for that job only. The editor version in CI is still 4.7.2.
Build and open
Section titled “Build and open”From the repository root, run Godot’s headless asset import once on a fresh clone before opening the chart:
cargo build -p portlight-godotgodot --headless --path godot --import --quitgodot --path godotThe extension looks for the debug library under target/debug/. A release-only build does not satisfy the editor. There is no export preset in this release, so you play from the editor.
The first voyage
Section titled “The first voyage”New game. Choose The Merchant. Leave the name as Ada. That is the voyage in the screenshots: Porto Novo, then the lanes the chart will draw.
Sail uses the lane list. Days on the picker are the ship’s raw speed. Crew, morale, season, and captain modifiers are not in that estimate. A lane can be listed and then refused when you sail it. A rank gap of 1 is a warning. A gap of 2 or more is blocked. Both of those match the Python game. Leave them.
Save and load
Section titled “Save and load”Save sits with New game and writes a version-12 or version-13 slot (version 13 once a counting-house account is open). Load lists the captain and the day. A loaded custom captain keeps the name, the type, the silver, and the day. Saves do not store the custom template, so prices and voyage modifiers after a load are the merchant’s. That is the same limit as Python.
The chart writes saves/ under the working directory when you launch Godot from this checkout. That folder is gitignored.
If the window is empty
Section titled “If the window is empty”Headless Godot cannot draw. A screenshot needs a real GL context. On Linux CI that is llvmpipe under Xvfb. Do not treat a headless run that says the viewport was empty as a broken chart.
