Skip to content

Repository files navigation

UBass3D

A playable, single-player 3D bass fishing tournament for the browser, inspired by Ularn3D's miniature world and low-poly scenery.

Play

Start an eight-minute tournament, cruise to fishing cover, choose a suitable lure, and compete against four computer anglers. Your five heaviest bass count at the automatic weigh-in. First place earns $200; tournament earnings carry into the next round.

  • Click/tap water to cruise; WASD or arrow keys steer directly. Touch steering is available on narrow screens.
  • Choose lures with 1–4 or the tackle bar. Press Space / Cast to cast, then press again when a bass bites.
  • Hold Space / Reel to retrieve. Release before tension reaches red, then reel again.
  • Approach a dock and press E / click the dock prompt to shop. Marina: all supplies; fuel dock: fuel; kitchen: food; tackle shop: lures.
  • M opens the chart. Escape pauses. Scroll or pinch zooms; right-drag rotates the camera.
  • The tow service costs up to $20 and 25 tournament seconds and prevents running out of resources from ending your run.

Three lakes include Pinewater Lake, Copper Canyon, and Cypress Bayou. Their cover favors different lures. Catching repeatedly in one place creates pressure, which fades while you fish elsewhere. Rivals use the same dock stocks; supply boats replenish one unit per interval. Shops and menus pause the clock, including restock timers. Leaving a tab also pauses the tournament.

Progress and sound preferences are stored locally on the current browser/device. There is no account, online multiplayer, cross-device sync, or real-money purchase. Local storage must be available for progress to persist. WebGL is required.

Develop

Requires Node.js 22.12+ and npm.

npm ci
npm run dev
npm test
npm run build

Browser verification, with the development server running on port 5173:

npx playwright install chromium
npm run test:e2e

Production smoke: TEST_URL=https://ubass3d.vercel.app npm run test:e2e. Deterministic fixture tests are development-only and skipped in production. Three.js and fonts are bundled in the build; gameplay uses no external API.

Deploy

The Vite build is configured for Vercel in vercel.json. Link only this project, then deploy:

npx vercel link
npx vercel --prod

The app is a static HTML/CSS/JavaScript build. No secrets or database are required. Keep .env*, .vercel, and node_modules out of source control.

Structure

  • src/game.js: deterministic simulation, fish/AI/economy, navigation, save validation.
  • src/world.js: Three.js scenery, boats, water, camera, pointer controls.
  • src/main.js: game HUD, input, dialogs, local persistence, animation loop.
  • src/style.css: responsive game interface.
  • src/audio.js: user-initiated synthesized sound cues.
  • tests/game.test.js: simulation and edge-case tests.
  • tests/e2e.spec.js: real browser gameplay and persistence tests.

This is an original playable browser game. No EA affiliation or external certification is claimed.

ubass3d

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages