Skip to content

Installation & Deployment

Michael Voitovich edited this page Jun 16, 2026 · 8 revisions

The Scanline Engine offers flexible deployment options: it can run as a local development server, be hosted as a static web application, or be compiled into a standalone native desktop executable.

Setting Up the Node.js Environment (Quick Start)

To run the engine locally for game development:

  • Ensure you have Node.js installed.
  • Clone the repository and open the project folder.
  • Run setup.cmd (on Windows). This script will automatically install dependencies and start the local Vite development server.
  • The game will open in your default browser at http://localhost:5173.

Hosting via Web Servers

To publish your game on a web server (such as Nginx or Apache):

  • Run npm run build to build the project for production.
  • This generates a dist directory containing the optimized static files.
  • Upload the contents of the dist directory to your web server's public folder.

Note: The integrated Scene Editor and Sprite Editor require a local backend to save JSON files directly to your local disk. These editor features will not work on static web hosting, but the compiled game itself is fully playable once assets are pre-built.

Building Native Desktop Applications using Tauri (Rust)

Scanline can be packaged as a native desktop application using the Tauri framework. The desktop wrapper leverages Rust for backend file operations instead of the Node.js development server. Prerequisites:

  • Install Rust and Cargo.
  • Install the Tauri CLI globally by running npm install -g @tauri-apps/cli.

Build Commands:

  • Development Build: Run npm run tauri:dev to smoke-test the desktop wrapper.
  • Production Release: Run npm run tauri:build from the project root. This command executes tsc -b && vite build, compiles the src-tauri directory in Rust release mode, and produces the standalone Windows executable (.exe) along with MSI and NSIS installers. The output files will be located in the src-tauri\target\release folder.

Note: Currently, the Rust command layer resolves paths relative to the process working directory. This may require an explicit workspace setup if you intend to use the built-in editor tools within the desktop build.

Clone this wiki locally