Sysy's 694de9e2d6 Revamp README and add main menu image
Rewrite README to provide a project overview, features, live demo link, installation and local run instructions, gameplay guide, and tech stack. Add project header, badges, and screenshot embedding. Add web/assets/img/image_game.png and remove placeholder images (web/assets/img/fakeimg.img and web/assets/img/img_test_main_menu.png) to keep assets consistent with the new documentation.
2026-03-31 16:07:26 +02:00
2026-03-31 14:31:40 +02:00
2026-03-31 16:07:26 +02:00
2026-03-30 10:46:09 +02:00

MirrorGame

Browser puzzle game where you guide lasers with mirrors, tinted glass, doors, and triggers.

⚠️ Report Bug · 💡 Request Feature · 🎮 Play Online

MirrorGame main menu


🔍 Overview

MirrorGame is a small laser-reflection puzzle game built during a game jam format.

The goal is to route a laser beam through each level by rotating mirrors, using tinted glass to change beam color, and interacting with doors, buttons, captors, and other grid-based puzzle elements until the beam reaches the target.

The game is playable online and can also be run locally through the Rust server included in this repository.

Level progression is stored locally in your browser with localStorage.

Features

  • Laser puzzle gameplay: Redirect beams across handcrafted levels to activate targets.
  • Mirror rotation: Rotate mirrors directly on the board to change the laser path.
  • Colored glass placement: Drag and drop red, blue, and yellow glass tiles onto the grid.
  • Interactive mechanisms: Trigger doors, buttons, captors, and rotating mirror systems.
  • Multiple levels: Progress through several unlockable puzzle stages.
  • Browser save data: Unlocked levels are persisted between sessions with localStorage.
  • Rust-powered local server: Lightweight backend serves the HTML, CSS, JS, and assets.

🎮 Live Demo

Play here: MirrorGame

🖼️ Screenshot

Main menu:

MirrorGame

🧰 Requirements

  • Rust and Cargo
  • A modern desktop browser

🚀 Installation and usage

Option 1 — Play online

Option 2 — Run locally from source

  1. Install Rust using rustup.

  2. Clone or download this repository.

  3. Open a terminal in the backend folder.

  4. Start the local server:

    cargo run
    
  5. Open your browser at:

    http://127.0.0.1:3500
    

📖 How to play

  1. Launch the game

    • Open the online version or run the project locally.
    • Click Play from the main menu.
  2. Understand the goal

    • Each level starts with a laser source.
    • Your objective is to make the beam reach the target tile.
  3. Rotate mirrors

    • Click mirrors to rotate them and redirect the beam.
    • Some mirrors are controlled by puzzle mechanisms instead of direct input.
  4. Use tinted glass

    • Drag red, blue, or yellow glass from the toolbox onto empty cells.
    • Double-click a placed glass tile to remove it and get it back.
  5. Solve interactions

    • Red beams can activate buttons and captors.
    • Doors, rotators, and other level elements react depending on the puzzle setup.
  6. Progress through levels

    • Completing a level unlocks the next one.
    • Use the level menu to revisit unlocked stages.

🛠️ Tech Stack

  • Backend: Rust with axum and tower-http
  • Frontend: HTML, CSS, and vanilla JavaScript
Description
No description provided
Readme 1.1 MiB
Languages
JavaScript 39.5%
HTML 39.2%
CSS 17.6%
Rust 3.7%