100%
Contents

Banana — Part 1 — Introduction & Overview

• vee

Welcome to the first part of this series on Banana, a 2D top-down railway simulator built with React and PixiJS.

What is Banana?

Banana is a browser-based railway simulation game where you can design and operate your own rail network. You lay tracks, place stations, build train formations, and watch them run on schedules — all rendered in real-time on an infinite canvas.

Inspiration

The project draws inspiration from games like:

  • NIMBY Rails — for its track layout and network planning
  • A-Train — for its city-building and timetable management
  • Transport Fever — for its train formation and physics

Tech Stack

  • React 19 with TypeScript for the UI layer
  • PixiJS 8 for high-performance 2D WebGL rendering
  • Vite as the build tool
  • Tailwind CSS and Radix UI for styling and components
  • i18next for internationalization (English and Traditional Chinese)
  • Custom internal packages from the @ue-too monorepo for canvas, curves, math, and animation

What This Series Covers

Over the next 10 parts, we will walk through every major feature of Banana:

  1. Introduction & Overview (this article)
  2. Track System
  3. Terrain
  4. Trains & Formations
  5. Train Physics & Movement
  6. Stations & Buildings
  7. Timetables & Scheduling
  8. Camera & Navigation
  9. Serialization & Import/Export
  10. Debug Tools & Performance

Let's get started!