tidewater README

The project's README from github.com/dgreenheck/tidewater. As one markdown file: README.md.

Tidewater

An island fishing game for the browser. Cast from the pier, the beach or your own boat, fight the fish, sell your catch to Joe at the fish stand, and spend it on better gear at Marta's chandlery. Around it is a real-time tropical island and ocean: swim the reef, drive the boat out to deep water, and watch a humpback breach. It runs directly on WebGPU and WGSL with its own small rendering engine, no framework.

Play it: https://dgreenheck.github.io/tidewater/

Fishing off the pier at golden hour

The beach in the late afternoon

Requirements

Features

Fishing

Ocean

Sky

World

Lighting and post

Audio

Controls

Key Action
W A S D Move
Mouse Look (click to capture the mouse, Esc to release)
Shift Sprint / boat boost
Space Jump / swim up
C Crouch / dive
E Interact: board the boat, take or leave the helm, step ashore, trade with the fish buyer or the chandlery
V Boat camera at the helm (1st / 3rd person)
R Take out / put away the fishing rod
Left mouse Hold to wind up, release to cast · strike when a fish takes the bait · hold to reel
Right mouse Reel an empty line in
I or Tab Cooler / fish hold and the fish log
F Free camera
L Flashlight
T Pause time
M Mute
H Settings panel
P Photo mode
F1 or ? All controls

Fishing

Walk the deck of the boat while it drifts, or fish from the pier and the beach. Cast, wait for the bobber to dip and strike when it's pulled under, then play the fish: keep the line tension in the green band, ease off when it runs. Different water holds different fish (the shallows, the pier, the reef, the bay and deep water offshore), and some bite best at dawn, dusk or night. Sell your catch to Joe at the fish stand on the beach by the pier, and spend it at Marta's chandlery by the boathouse: stronger line, a faster reel, a longer rod, a bigger fish hold, a larger fuel tank, a rebuilt engine, a fish finder and deck floodlights for night fishing. The boat burns diesel at the helm; fill up at the chandlery. Progress is saved in the browser.

The settings panel (H) exposes the sea state, time of day, sun azimuth, clouds, haze, post-processing and more.

URL options

Add these to the URL, for example ?fly&noAudio:

Option Effect
fly Start in the free camera
noAudio Disable sound
noClouds Skip the volumetric clouds
noHaze Skip the haze and sun shafts
noCaustics Skip caustics
noVeg Skip vegetation
noSim Skip the swash (shallow-water) simulation

Running locally

npm install
npm run dev      # http://127.0.0.1:5189
npm run build    # static build in dist/

Every push to main deploys to GitHub Pages through .github/workflows/deploy.yml.

Project layout

Folder Contents
src/game/ The fishing game: rod, bites, the fight, catch card, cooler and log, vendors and stalls, guide, minimap, HUD
src/engine/ The rendering engine: math, scene graph and geometry, GPU resources, WGSL shader composition, materials, lighting and shadows
src/ocean/ FFT ocean, water surface and material, shore waves, breakers, swash, wake, caustics, underwater lighting
src/sky/ Atmosphere, clouds, sky and environment
src/world/ Terrain, village, pier, reef, fish, vegetation, rocks, debris, wildlife, whale, boat
src/post/ Post chain: AO, underwater composite, haze, TAAU, motion blur, bloom, lens flare, droplets
src/materials/ Shared lighting: shadow filtering, bounce light, contact shadows, local lights, LOD fades
src/player/ Walking, swimming, the boat and the free camera
src/audio/ The sample-based soundscape
src/ui/ Settings panel, loading screen and HUD
tools/ Scripts that fetch and convert the characters, stall props and fishing sounds
test/ Headless engine smoke test and game-logic tests (npm test), and HUD / loader dev pages

Credits and license

The code is released under the MIT license; see LICENSE. Third-party assets (CC0 audio from Freesound, CC0 scans from Poly Haven, MIT characters from Microsoft Rocketbox, OFL / Apache fonts) and technique references are listed in CREDITS.md.

tidewater (dgreenheck/tidewater)

Searching Database…

这是什么?Tidewater 是一款直接在浏览器里运行的海岛钓鱼游戏:在码头、海滩或自己的船上抛竿,和鱼搏斗,把渔获卖给 Joe,再到 Marta 的渔具店升级装备。
它是原生游戏还是只在浏览器里运行?它是一款纯浏览器游戏:通过自带的小型渲染引擎直接运行在 WebGPU 和 WGSL 着色器上,不用任何框架,也无需安装。
我怎么开始玩?在较新版本的 Chrome、Edge 或 Safari 中打开仓库里的游戏链接即可——每次推送到 main 分支都会自动部署到 GitHub Pages。然后用 WASD 移动,鼠标转视角,E 键互动。
我的电脑和浏览器带得动吗?需要一个支持 WebGPU 的浏览器(较新版本的 Chrome、Edge 或 Safari)和一块性能不错的显卡。目标是在 Apple M5 Pro 上以 2560×1267 分辨率达到 60 fps,机器较慢时会通过动态分辨率自动降低渲染画质。
第一次打开有什么需要注意的?首次加载要编译几百个着色器,可能需要一两分钟;之后浏览器会缓存它们,再打开就快了。官方列出的支持浏览器只有 Chrome、Edge 和 Safari。
我的进度在两次游玩之间会保留吗?进度——装备、金钱、钓鱼日志——都保存在你的浏览器里,不用注册账号,下次打开还在。
代码是开源的吗?是 MIT 协议——可以自由使用、修改和再分发。第三方素材(CC0 音频、Poly Haven 扫描素材、Rocketbox 角色、OFL/Apache 字体)在 CREDITS.md 中单独署名。
钓鱼到底是怎么玩的?用鼠标左键抛竿,浮标下沉时提竿,然后让鱼线张力保持在绿色区间内,鱼挣扎跑线时就适当放松。浅滩、码头、礁石、海湾和深水区有不同的鱼——共 18 种加勒比海鱼种——有些只在清晨、黄昏或夜里咬钩。把渔获卖给 Joe,再到 Marta 那里升级装备。
除了钓鱼还有别的可玩吗?有:你可以潜到珊瑚礁里游泳,开船去深水区(船烧柴油,得回渔具店补充),还能看到座头鲸跃出水面。另外还有开探照灯的夜钓、水下手电筒、自由相机和拍照模式。
水面模拟做得有多认真?相当认真:基于 Tessendorf 海浪谱的四层级联 FFT 海洋,带泡沫和白浪,能感知水深的碎浪,沙滩上有浅水冲浪模拟,还有船只尾迹、海底焦散,以及水面处水上水下分屏的画面。
要是我的显卡吃不消,能把特效调低吗?可以。设置面板(按 H)可以调整海况、时间、太阳方位角、云、雾霾和后期处理,还可以用 ?noClouds、?noVeg、?noSim 这类 URL 参数在加载时直接跳过整个系统。
有声音吗?有——基于真实 CC0 环境录音的空间音效:随每道碎浪起伏的涛声、风声、鸟鸣、船引擎声、随地面材质变化的脚步声、水下环境音、鲸歌,还有钓竿和渔轮的声音。按 M 静音。
为什么简介里写着'由 Opus 5.5 打造'?GitHub 简介把海滨小镇归功于 AI 模型 Opus 5.5。README 本身只记录了成品游戏——功能、配置要求和操作方式——并没有讲它是怎么开发出来的。
Creator
dgreenheck
Size
49.9 MB
Stars
1.3K
Updated
CommitSep 25
Age
26d
Commits · 90 Days