5.5 KiB
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
- Live demo: https://zbww.github.io/EndlessSea
- Original source reference: https://github.com/zbww/EndlessSea/blob/master/js/main.js
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, orPto 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.
- Clone or download the repository.
- Open
index.htmlin a modern browser.
If your browser blocks autoplay audio, start the game with a click so music playback can begin normally.
Desktop Builds
This repository includes a Tauri desktop wrapper under src-tauri/. The frontend is copied into dist/ before each desktop build.
Build Overview
- Install Bun.
- Install Rust.
- Install the platform-specific Tauri dependencies for the OS you are building on.
- Run
bun install. - Run one of the build commands below.
Shared Project Setup
Install dependencies once per clone:
bun install
You can also stage the static frontend manually:
bun run build:web
That copies index.html, css/, js/, and music/ into dist/.
Linux Native Build
The Linux build has been verified on this repository and currently produces .deb and .rpm bundles.
Install Bun on Linux:
curl -fsSL https://bun.sh/install | bash
Install Rust on Linux:
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
If Bun or Rust are not on your shell PATH yet, restart the terminal before continuing.
Install the Tauri system packages for your distribution.
Debian or Ubuntu:
sudo apt update
sudo apt install \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf \
rpm
Fedora:
sudo dnf check-update
sudo dnf install \
webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
libappindicator-gtk3-devel \
librsvg2-devel \
libxdo-devel \
patchelf \
rpm-build
sudo dnf group install "c-development"
Build the Linux desktop packages:
bun install
bun run tauri:build:linux
Expected outputs:
src-tauri/target/release/bundle/deb/Endless Sea_0.1.0_amd64.debsrc-tauri/target/release/bundle/rpm/Endless Sea-0.1.0-1.x86_64.rpm
Windows Native Build
For a full Windows installer, build on a Windows machine. This is the most reliable path.
Install Bun in PowerShell:
irm bun.sh/install.ps1 | iex
Install Rust with the MSVC toolchain:
winget install --id Rustlang.Rustup
rustup default stable-msvc
Install the required Windows components:
- Install Microsoft C++ Build Tools.
- In the installer, enable
Desktop development with C++. - Make sure Microsoft Edge WebView2 Runtime is installed.
Build the Windows installer:
bun install
bun run tauri:build
Expected output:
src-tauri/target/release/bundle/nsis/Endless Sea_0.1.0_x64-setup.exe
Windows Cross-Build From Linux
If you are on Linux and only need a Windows .exe, you can cross-compile it without packaging an installer.
Install the extra cross-build tools:
sudo apt update
sudo apt install nsis lld llvm
rustup target add x86_64-pc-windows-msvc
cargo install --locked cargo-xwin
Build the Windows executable only:
bun install
bun run tauri:build:windows:exe
Expected output:
src-tauri/target/x86_64-pc-windows-msvc/release/endless-sea.exe
If you want to attempt a full NSIS installer from Linux, use:
bun install
bun run tauri:build:windows:cross
Important note:
- Cross-compiling the Windows installer from Linux is experimental in Tauri.
- On this machine, the executable build worked, but the NSIS installer step failed because
makensis.exewas not available in the Linux environment. - If you need a reliable signed installer, use a real Windows build machine.
Build Outputs
- Browser-ready static build:
dist/ - Linux desktop binary:
src-tauri/target/release/endless-sea - Linux bundles:
src-tauri/target/release/bundle/ - Windows cross-compiled binary:
src-tauri/target/x86_64-pc-windows-msvc/release/endless-sea.exe
Troubleshooting
- If
bunis not found after installation, restart the shell or add Bun to yourPATH. - If
cargoorrustupare not found, restart the shell so Cargo's environment is loaded. - If Linux packaging fails with missing GTK or WebKit packages, re-check the distro-specific dependency list above.
- If a Windows installer build fails on Linux around NSIS, fall back to the
.execross-build or build natively on Windows.
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