Endless Sea

Endless Sea is a small browser survival game built with HTML5 canvas, jQuery, and plain JavaScript. You guide a fish through an underwater bullet-hell style field, avoid incoming hazards, and collect diamonds to trigger temporary power-ups.

Play

How To Play

  • Move the mouse to steer the fish.
  • Avoid every flying object except diamonds.
  • Collect diamonds to gain temporary bonuses.
  • Press Space, Enter, or P to pause and resume.
  • Use headphones if you want the full audio experience.

Power-Ups

Diamonds can trigger one of several effects:

  • Score bonus
  • Speed Down
  • 1 UP
  • Superfish invincibility
  • Big Bomb screen clear
  • Small World size reduction

Running Locally

This project is static and does not require a build step.

  1. Clone or download the repository.
  2. Open index.html in a modern browser.

If your browser blocks autoplay audio, start the game with a click so music playback can begin normally.

Desktop Build

The project now includes a Tauri desktop wrapper.

Requirements:

  • Rust and Cargo
  • Bun
  • Linux desktop build dependencies required by Tauri on your distribution

Useful commands:

bun install
bun run build:web
bun run tauri:build

Build artifacts are generated under src-tauri/target/release/bundle/.

CI:

  • A Gitea Actions workflow now lives in .gitea/workflows/desktop-builds.yml.
  • Linux runners build native Linux bundles and cross-compile the Windows release target.

Project Notes

  • Most visible game elements are generated dynamically in JavaScript.
  • All game graphics are drawn in code with canvas rather than external image assets.
  • Audio files are included in the repository under music/.

Credits

Developers:

  • Bobwei Zhou
  • Yangmei Lin

Original development period:

  • July 12, 2014 to July 16, 2014
Description
Game.
Readme 4.7 MiB
Languages
JavaScript 91.1%
CSS 6.6%
Rust 1.6%
HTML 0.7%