Custom frontend for the Emscripten port of isle-portable
Go to file
Christian Semmler 804a87e687
Migrate frontend to Svelte 5
- Replace vanilla JS with Svelte 5 components
- Add Vite build system with Terser optimization
- Reorganize assets into src/ and public/ directories
- Update README with setup instructions
2026-01-11 19:10:16 -07:00
public Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
scripts Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
src Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
src-sw Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
.gitignore Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
index.html Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
LICENSE Initial commit 2025-06-13 00:30:51 +02:00
package-lock.json Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
package.json Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
README.md Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
svelte.config.js Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
vite.config.js Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
workbox-config.cjs Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00

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

  1. Clone the repository:

    git clone https://github.com/isledecomp/isle.pizza.git
    cd isle.pizza
    
  2. Install dependencies:

    npm install
    
  3. Obtain the game files (isle.js and isle.wasm) by building the Emscripten version of isle-portable, then copy them to the project root.

  4. Start the development server:

    npm run dev
    
  5. Open the URL shown in the terminal (usually http://localhost:5173).

Scripts

Command Description
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

Building the Game Files

The isle.js and isle.wasm files are not included in this repository. To obtain them:

  1. Follow the isle-portable build instructions for the Emscripten target
  2. Copy the resulting isle.js and isle.wasm to 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.