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 — игра про рыбалку на острове, которая работает прямо в браузере: забрасывайте удочку с пирса, пляжа или собственной лодки, вываживайте рыбу, продавайте улов Джо и тратьте деньги на снасти получше в лавке Марты.
Это нативная игра или она просто запускается в браузере?Это чисто браузерная игра: она работает напрямую на WebGPU и шейдерах WGSL через собственный небольшой движок рендеринга, без каких-либо фреймворков и без установки.
Как начать играть?Откройте ссылку на игру из репозитория в свежем Chrome, Edge или Safari — каждый пуш в main автоматически разворачивается на GitHub Pages. Дальше: WASD для движения, мышь для обзора, E для взаимодействия.
Мой компьютер и браузер потянут её?Нужен браузер с поддержкой WebGPU (свежий Chrome, Edge или Safari) и достаточно мощная видеокарта. Цель — 60 fps при 2560×1267 на Apple M5 Pro, а на слабых машинах динамическое разрешение автоматически снижает качество картинки.
На что обратить внимание при первом запуске?При первой загрузке компилируются несколько сотен шейдеров, и это может занять минуту или больше; при следующих посещениях будет быстрее, потому что браузер их кэширует. Поддерживаются только Chrome, Edge и Safari.
Мой прогресс сохранится между игровыми сессиями?Прогресс — снасти, деньги, дневник рыбы — сохраняется в вашем браузере, так что он остаётся между визитами, и аккаунт для этого не нужен.
Код открытый?MIT — можно свободно использовать, изменять и распространять. Сторонние ассеты (аудио под CC0, сканы Poly Haven, персонажи Rocketbox, шрифты OFL/Apache) указаны отдельно в CREDITS.md.
Как вообще устроена рыбалка?Вы забрасываете удочку левой кнопкой мыши, подсекаете, когда поплавок ныряет, а затем держите натяжение лески в зелёной зоне, ослабляя её, когда рыба рвётся. На мелководье, у пирса, у рифа, в бухте и на глубине водятся разные рыбы — 18 карибских видов, — а некоторые клюют только на рассвете, в сумерках или ночью. Продавайте улов Джо и улучшайте снасти у Марты.
Кроме рыбалки есть что-нибудь ещё?Да: можно плавать среди кораллового рифа, уйти на лодке в открытое море (она расходует дизель, который вы заправляете в лавке) и посмотреть, как горбатый кит выпрыгивает из воды. Есть также ночная рыбалка с прожекторами на палубе, подводный фонарик, свободная камера и фото-режим.
Насколько серьёзно там сделана симуляция воды?Вполне серьёзно: океан на основе четырёхкаскадного FFT по спектрам Тессендорфа с пеной и барашками, волны, учитывающие глубину и разбивающиеся о берег, симуляция наката на мелководье по песку, кильватерные следы лодки, каустики на морском дне и раздельная картинка под водой и над водой на уровне ватерлинии.
А если моя видеокарта не справляется — можно убавить эффекты?Да. Панель настроек (H) открывает доступ к состоянию моря, времени суток, положению солнца, облакам, дымке и постобработке, а URL-флаги вроде ?noClouds, ?noVeg или ?noSim отключают целые системы при загрузке.
Звук там есть?Да — позиционное аудио из настоящих записей под CC0: прибой, синхронизированный с каждой разбивающейся волной, ветер, птицы, мотор лодки, шаги в зависимости от поверхности, подводные звуки, песня кита, а также удилище и катушка. Клавиша M выключает звук.
Почему в описании написано «built with Opus 5.5»?В описании на GitHub указано, что прибрежный городок создала модель искусственного интеллекта Opus 5.5. Сам README описывает только готовую игру — возможности, системные требования и управление — и не рассказывает, как она делалась.
Creator
dgreenheck
Size
49.9 MB
Stars
1.3K
Updated
CommitSep 25
Age
23d
Commits · 90 Days