Skip to content

Repository files navigation

🚀 SIMULITE

A life among the stars. A Sims-style life simulation set aboard a trading spaceship, flying an Elite-style galaxy — rendered in isomorphic pixel art, written in TypeScript, running entirely in your browser.

Play

pnpm install
pnpm dev          # http://localhost:5173

Or build and serve:

pnpm build
pnpm preview

No assets, no backend, no downloads — every sprite, planet, starfield and interface is generated in code. Saves live in localStorage.

Playing from other machines on the tailnet

This machine is innsmouth on the tailnet (tail617a6). Any machine joined to that tailnet can play the game at:

http://innsmouth.tail617a6.ts.net:5173/

The dev server binds all interfaces and whitelists the tailnet hostname in vite.config.ts (server.allowedHosts), so the hostname resolves over MagicDNS and the game loads with no further setup. The server is started with:

pnpm dev          # now binds 0.0.0.0 (host + allowedHosts come from vite.config.ts)

Notes:

  • Clients need Tailscale running and logged into the same tailnet for the hostname to resolve.
  • localStorage saves are per-browser, so each machine keeps its own game.
  • Optional (requires sudo): a clean HTTPS URL without the port — sudo tailscale serve --bg 5173 proxies https://innsmouth.tail617a6.ts.net/ to the local server. Remove it later with sudo tailscale serve reset.
  • To stop the background dev server: kill $(ss -tlnp | grep 5173 ...) or find it with ps aux | grep vite.

The game

You are the captain of the freighter Starlight Rose, docked at the agricultural station of Kelem. Your crew — starting with just you — live aboard the ship. Watch them work, eat, sleep, shower and bicker. Keep them fed, rested and happy, or watch morale (and health) crumble.

Trading (the money loop)

  • Dock at stations, open the Market screen.
  • Each station's economy produces some goods and desperately needs others — buy where stock is high (green), sell where stock is low (red).
  • Goods take cargo space (m³) — upgrade the cargo bay to carry more.
  • ▲▼ arrows compare prices to your last visited station.
  • Haggle (charisma) for better prices. Fences (smuggler module or black markets) sell goods for +15% at the risk of getting caught.
  • Prices are locked per dock visit (like Elite) — undock and re-dock to see the market move. Station economies drift and suffer shocks every day.

The crew (the Sims loop)

Crew members have five stats and six needs. Hire them at station hiring halls (better reputation = better candidates); pay their wages at midnight.

Decorating the ship

The Market's Decoration Shop sells furnishings such as bioluminescent ferns, lounge benches, holo tables, display crates and decorative consoles. Buy them, return to the Ship screen, click Decorate, and drag the outlined pieces to any open deck tile. The freighter is larger than the initial view: scroll the mouse wheel, or hold Shift while dragging, to pan around the ship. Use middle-mouse drag as an alternative pan control.

  • Engineering — fix breakdowns, keep systems alive, salvage wrecks
  • Science — away missions, surveys, artifact hunts
  • Charisma — haggling, bribing officials, talking down pirates, stowaways
  • Combat — pirates, patrols, hostile fauna
  • Piloting — dodging asteroids, escaping raiders, cheaper fuel

Assign roles (engineer, medic, scientist, trader, pilot, security) and give orders — or just watch them manage themselves. Traits (Workaholic, Gourmand, Insomniac, Smooth...) change how each crew member behaves.

The galaxy (the Elite loop)

Open the Map, plot a course, pay fuel, and fly. Journeys bring random encounters: pirates, breakdowns, asteroid fields, ion storms, distress signals, space whales... and the occasional stowaway who might just join your crew.

Missions & away missions

The mission board offers cargo runs, surveys, salvage ops, patrols, delicate bribes, medical relief and artifact hunts. Away missions take up to three crew to a planet's surface — each step tests one of their stats, and failure means injury. Dead crew stay dead.

Goals

  • Survive. Keep the ship in one piece and the crew breathing.
  • Get rich: earn 150,000 cr and reach Legendary reputation (95+) to retire as a Trade Baron.
  • Or just wander the void, trading and telling stories.

Controls

  • Click crew in the ship view to select them — orders and roles appear in the panel on the right.
  • Click furniture (bunks, table, airlock, engine...) for context actions.
  • Decorate enables placement mode for purchased furnishings. Drag outlined decorations to move them; use mouse-wheel or Shift/middle drag to pan.
  • HUD buttons: ⏸ ▶ ▶▶ ▶▶▶ time speed · Ship / Map / Market / Crew / Missions screens · Decorate · 💾 save · ? help.

Project layout

src/
  core/        — pure TypeScript simulation (no DOM): state, economy, crew AI,
                 travel, missions, save — fully unit-testable in Node
  gfx/         — canvas rendering: isomorphic ship view, star map, space travel,
                 procedural pixel sprites and planets
  ui/          — DOM interface: HUD, screens (market/crew/missions), modals
  game.ts      — the Game orchestrator (loop, input, screens, events)
  main.ts      — entry point
scripts/
  browsertest.ts — headless-Chromium end-to-end test (Playwright)
src/core/__selftest.ts — headless simulation test (30 simulated days)

Tests

pnpm test                                  # headless 30-day simulation
node --experimental-strip-types scripts/browsertest.ts   # browser E2E

Controls & balance notes

  • Time runs at 4 game-minutes per real second (1×). A day is ~6 minutes.
  • The sim pauses on events (breakdowns, encounters, missions) so you can decide.
  • Starvation and suffocation are real. Buy food rations. Keep an engineer.

About

AI Slopped merger of a popular life simulation game and a classic space trading game. Doing neither well

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages