Building from source
Compiling Quest Viva
Section titled “Compiling Quest Viva”This describes how to download and compile the Quest Viva source code.
Download
Section titled “Download”Clone the repository from GitHub:
https://github.com/textadventures/quest
You’ll also need the .NET 10 SDK. Any editor works - Visual Studio, VS Code, JetBrains Rider - or you can just use the dotnet CLI directly, which is what the examples below use.
Compiling
Section titled “Compiling”dotnet build --configuration ReleaseThis builds the whole solution (QuestViva.sln). To run the tests:
dotnet test --configuration ReleaseThere are around 200 tests across the various test projects (tests/EngineTests, tests/PlayerCoreTests, tests/EditorCoreTests, tests/LegacyTests, tests/WebPlayerTests) - they should all pass.
To run a single test project, or filter to a specific test:
dotnet test tests/EngineTestsdotnet test tests/EngineTests --filter "FullyQualifiedName~TestMethodName"Running the players
Section titled “Running the players”WebPlayer
Section titled “WebPlayer”docker compose up --buildThis runs WebPlayer at http://localhost:8080. Alternatively, run it directly from source:
dotnet run --project src/WebPlayer/WebPlayer.csprojSee WebPlayer for configuration options.
WasmPlayer
Section titled “WasmPlayer”dotnet build src/WasmPlayer/WasmPlayer.csprojnode src/WasmPlayer/dev-server.mjsThen open http://localhost:5175/?url=/examples/simple.aslx. For a faster AOT-compiled build closer to what actually ships, add --configuration Release to the build command and --release to the dev server command instead.
Running the editor (AppShell)
Section titled “Running the editor (AppShell)”The editor is a SvelteKit app (src/AppShell/) that talks to the engine through a WASM bridge (src/WasmEditor/). The quickest way to get both running together is the root-level dev script:
./dev.shThis builds WasmEditor and WasmPlayer, then starts the AppShell dev server (http://localhost:5174) alongside the WasmPlayer dev server it uses for Preview. See docs/appshell-wasm-svelte.md in the repository for more on how the pieces fit together.