|
Some checks failed
Build / build (push) Has been cancelled
Preload the LCP image (install.webp) from the HTML and add fetchpriority="high" so the browser discovers it before JS executes. Use a <main> landmark for the primary content container to satisfy the "document has a main landmark" accessibility audit. |
||
|---|---|---|
| .github/workflows | ||
| public | ||
| scripts | ||
| src | ||
| src-sw | ||
| .gitignore | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| svelte.config.js | ||
| vite.config.js | ||
| workbox-config.cjs | ||
isle.pizza Frontend
A custom web frontend for the Emscripten port of isle-portable, allowing LEGO Island to run directly in modern web browsers.
Requirements
Quick Start
-
Clone the repository:
git clone https://github.com/isledecomp/isle.pizza.git cd isle.pizza -
Install dependencies:
npm install -
Obtain the game files (
isle.jsandisle.wasm) by building the Emscripten version of isle-portable, then copy them to the project root. -
Set up the LEGO Island game assets:
npm run prepare:assetsThis will prompt you for the path to your LEGO Island installation or mounted ISO and create the necessary symlinks. You can also provide the path directly:
npm run prepare:assets -- -p /path/to/your/LEGO -
Start the development server:
npm run dev -
Open the URL shown in the terminal (usually
http://localhost:5173).
Scripts
| Command | Description |
|---|---|
npm run prepare:assets |
Set up LEGO Island game assets via symlinks |
npm run dev |
Start development server with hot reload |
npm run build |
Build for production (outputs to dist/) |
npm run preview |
Preview the production build locally |
Project Structure
isle.pizza/
├── src/
│ ├── App.svelte # Main application component
│ ├── app.css # Global styles
│ ├── stores.js # Svelte stores for state management
│ ├── core/ # Core modules (audio, OPFS, service worker, etc.)
│ └── lib/ # UI components
├── public/ # Static assets (images, fonts, PDFs)
├── scripts/ # Build scripts
├── src-sw/ # Service worker source
├── index.html # HTML entry point
├── isle.js # Emscripten JS (not in repo, build from isle-portable)
├── isle.wasm # Emscripten WASM (not in repo, build from isle-portable)
└── LEGO/ # Game data directory (not in repo)
Building the Game Files
The isle.js and isle.wasm files are not included in this repository. To obtain them:
- Follow the isle-portable build instructions for the Emscripten target
- Copy the resulting
isle.jsandisle.wasmto this project's root directory
Alternatively, a Docker image that bundles the runtime with this frontend is available.
Tech Stack
- Svelte 5 - UI framework
- Vite - Build tool and dev server
- Workbox - Service worker and offline support
License
See LICENSE for details.