Custom frontend for the Emscripten port of isle-portable
Go to file
Christian Semmler 5ce1b1ed69
Merge pull request #10 from isledecomp/svelte
Migrate frontend to Svelte 5
2026-01-25 10:08:08 -08:00
.github/workflows Skip service worker in dev mode and copy isle.js/isle.wasm on build 2026-01-11 20:59:55 -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 Improve development mode experience 2026-01-11 21:11:32 -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 Test CI 2026-01-11 19:50:20 -07:00
package.json Skip service worker in dev mode and copy isle.js/isle.wasm on build 2026-01-11 20:59:55 -07:00
README.md Update README.md 2026-01-12 03:16:30 +01:00
svelte.config.js Migrate frontend to Svelte 5 2026-01-11 19:10:16 -07:00
vite.config.js Improve development mode experience 2026-01-11 21:11:32 -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.

image

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 (not in repo)

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.