|
Some checks are pending
Build / build (push) Waiting to run
Enable the previously hidden Voices tab showing reactions from the original LEGO Island development team. Each quote card displays the team member's professional role and tagline. Improved card styling with gradient backgrounds, decorative quote marks, and gold hover accents. Added March 2026 changelog entry. |
||
|---|---|---|
| .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 -
Generate the save editor asset bundle (requires game assets from step 4):
npm run generate:save-editor-assetsThis extracts animations, sounds, textures, and character icons from the game files into
save-editor.bin, used by the save editor's 3D previews. -
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 generate:save-editor-assets |
Extract save editor assets (animations, sounds, textures, icons) into save-editor.bin |
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/
│ │ ├── formats/ # Binary file parsers/serializers (WDB, save games, animations, textures)
│ │ ├── rendering/ # Three.js renderers (BaseRenderer, VehiclePartRenderer, ActorRenderer, etc.)
│ │ ├── savegame/ # Save game constants, actor data, color tables
│ │ └── ... # Audio, OPFS, service worker, asset loading
│ └── lib/ # UI components and pages (save editor, configure, etc.)
├── public/
│ └── images/ # UI images (menu buttons, tab icons)
├── scripts/ # Build and asset generation 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)
├── save-editor.bin # Packed save editor assets: animations, sounds, textures, icons (not in repo, generated)
└── 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
- Three.js - 3D rendering for save editor previews
- Vite - Build tool and dev server
- Workbox - Service worker and offline support
License
See LICENSE for details.