Skip to content

Kaos599/mini-metro-js

Repository files navigation

Mini Metro

🚇 Mini Metro in JS!

A fan-made tribute and minimalist subway strategy game inspired by the original Mini Metro.

React TypeScript Vite License

AboutFeaturesHow to PlayInstallationRoadmap


📖 About

Metro Mini is a faithful re-implementation of the critically acclaimed minimalist subway strategy game, Mini Metro. Built from scratch using TypeScript, React 19, and HTML5 Canvas, this project brings the addictive transit-building experience to your browser with high-performance 60fps pathfinding and rendering.

The goal is to recreate the elegant simplicity of the original game designing efficient subway networks for a rapidly growing city. As stations pop up, you must redraw your lines, manage locomotives, and deploy resources like tunnels and carriages to keep the city moving.

Features

image

Authentic Mini Metro Experience

  • Draw-to-Connect Gameplay: Intuitively create and modify metro lines just like in the original game.
  • Procedural City Growth: Dynamic station spawning ensures every session presents a new logistical challenge.
  • Shape-Based Routing: Passengers find their own way through your network based on their destination shape.
  • Weekly Upgrades: Survive the week to choose between vital assets new lines, locomotives, carriages, or tunnels.

Game Modes

Mode Description
Normal The classic Mini Metro experience. Balance efficiency and overcrowding.
Extreme Once a line is placed, it's permanent. True strategic planning.
Endless A zen-like sandbox mode. Build your dream network without the risk of game over.

Technical Highlights

  • 60FPS Canvas Engine: Optimized rendering loop for smooth train movement and UI interactions.
  • React 19 & TypeScript: A modern codebase showcasing how to build complex simulations in a web environment.
  • Touch-First Design: Fully responsive and playable on mobile devices with intuitive touch controls.

How to Play

  1. Connect Stations: Click or touch and drag between geometric stations (Circle, Triangle, Square) to create a metro line.
  2. Assign Trains: Locomotives automatically run on your lines to transport passengers.
  3. Optimize Routes: Drag line ends to extend your network or rewire existing paths as the city expands.
  4. Manage Overcrowding: Keep an eye on the red indicators! If a station stays overcrowded for too long, the network fails.
  5. Upgrade: Every Sunday, choose a new asset to help your network keep up with the city's growth.

Installation

Run this Mini Metro re-implementation locally:

# Clone the repository
git clone https://github.com/yourusername/metro-mini.git

# Navigate to the project directory
cd metro-mini

# Install dependencies
npm install

# Start the development server
npm run dev

Open http://localhost:3000 in your browser to start building.

Roadmap

  • City Presets: Play on maps inspired by real-world cities like London and Paris.
  • Advanced Upgrades: Interchange stations and multi-track support.
  • Soundscape: Minimalist ambient audio to match the original game's atmosphere.

License

Distributed under the Apache 2.0 License. See LICENSE for more information.


Disclaimer: This is a non-commercial fan project and a technical re-implementation. All credits for the original game concept and design go to Dinosaur Polo Club.

Made with ❤️ and TypeScript

About

A minimalist subway strategy game re-implementation of Mini Metro. Built from scratch using TypeScript, React 19, and HTML5 Canvas.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors