尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Slow Tide: a peaceful little fishing game in the browser. Row a wooden boat, find a hidden cove, fish as the sun goes down.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Play it: https://fishing-game-weld.vercel.app
A small, peaceful fishing adventure that runs in the browser. You start in a little wooden boat on Willow Bay, step ashore at a landing, walk up to your camp, and fish a freshwater lake and a clear trout stream. Beyond the bay lies a whole coast: the Wend estuary with its sandbanks and saltings, Longmere (a big inland lake with a boathouse), Gannet Isle with its lighthouse and kelp reefs, a long offshore shoal, and the deep Blue Water where tuna chase the sprat shoals and blue sharks, makos and albacore roam. Eight boats get you about: the rowing boat, a motor skiff, a quiet kayak, a bass boat, a little cabin boat, a sailing boat, a fast centre-console boat and a sea-going sport-fishing yacht; and for the fun of it, a windsurf board and a jet ski. On the bay's north shore is Willowhaven, a little harbour with a quay, a pontoon with berths for the bigger boats, a chandlery, a notice board, a fish market and an inn, The Lobster Pot; round the shore from it lie a rocky headland, a secluded beach and, under a buoy offshore, an old wreck. Up the lane above Shell Strand is home: a cottage and a garage with a workbench for planning an outing, your rods and camping gear, and a car on the drive to take you to the coast. You choose your rods and tackle, cook what you catch, pitch your own camp wherever the ground allows, sleep in a tent (or your own bed) until the hour you like, and keep a handwritten journal, a photo album and a map of it all.
The water is a living place: weed beds, rocks, lily pads, drowned trees, reefs, sandy flats, channels, deep water and running pools, home to some two thousand fish, cephalopods and eels of 57 kinds: 47 real species of the Atlantic coast from Royan to Cádiz to catch (the blue shark, the mako and the albacore of the Blue Water among them), nine freshwater fish, and the European eel, protected, to watch. Across the open Atlantic to the south lies Las Brasas, a volcanic island in the trade wind with clear blue water and nineteen kinds of its own, marlin, sailfish and wahoo among them: sail (or motor) there yourself, the whole way, or take the fast passage. They school, cruise, feed, rest by cover, hunt, hold station in the current and scatter when startled. Fresh water, brackish water and the sea each have their own. Wind, swell and currents shape the water you fish, gently in the bays and more out on the open coast. Rings, flashes, jumps, fizzing bubbles, boiling water and diving seabirds on the surface come from real fish below. You can look underwater, follow your bait or lure, and use a fish finder. The fish that takes your bait is one you could have watched swimming there.
It's a static website: plain JavaScript modules, with no framework or bundler. Everything it needs ships in this folder, including three.js and the fonts, so it makes no requests to other sites. It installs as an app and plays offline (see Offline play). The only server code is one small optional function for cloud saves, which stay switched off until you set them up (see Cloud saves).
python3 serve.py
Then open http://localhost:8642. serve.py is a tiny static server with caching turned off, so a browser refresh always picks up your edits. It also answers the game's cloud-save question with "not set up", so locally you always play as a guest. On localhost the game skips its offline cache so your edits always show; add ?sw to the address (http://localhost:8642/?sw) to try offline play locally. Any static server works too.
node --import ./tests/setup.mjs --test 'tests/*.test.mjs'
Node 22 or newer, nothing to install (on Node 20, leave out the quotes around the pattern). The tests check saves (version upgrades including the move to four boats, the backup and unreadable copies, a newer save never written over, full storage, junk cleaned up, combining two saves, the explored map and catch positions), the fight (careful play lands big carp at every difficulty and with every rod's own stiffness, the creak is a real warning on Standard, winding through surges breaks the line, locked drags, pike teeth, weed), fish behaviour and the line (every fish has its own build, the same every time; each kind answers the current, the weather, the light and a disturbance its own way, and says why it turned away; Relaxed forgives a dragging fly or a thick line that Demanding doesn't; a hooked fish turns, tires and is beaten; side pressure tires it sooner and a soft rod cushions a surge; a leaping fish never throws the hook on Relaxed but can on a slack line on Demanding; a light hold tears free only under a drag set too tight; slack line sags and lies on the water and drifts with the current, tight line runs straight; the rod bends towards the line; the setting and the reel's volume are kept), tackle (every ready-made setup is castable and complete, impossible rigs are refused with a reason, every kind of fish can be caught with some setup), the world (every species lives somewhere, fresh water fish stay in fresh water and sea fish in the sea), the backpack's pictures (every rod, reel, line, rig, leader, bait, lure, fly and jig has its own model, drawn from its data), the map's memory of where you've been, the field guide and species register (every species has a recommended setup the tackle rules accept; all 62 catchable sea species bite on theirs in the headless ecosystem and can be landed with it; the reference models carry the anatomy that tells them apart; every species in the game is accounted for; the protected eel ignores every bait; every register entry is sourced and says what each regional status rests on; and src/registerData.js is what the research compiles to), the "why nothing's biting" advice (only reasons the simulation plays by: the wrong bait, water or depth, a lure worked too slowly for a fish that wants it fast), planning a trip (it leads to water that suits the fish, never to a fish, and counts what the trip brought), storms (a gale and big seas that build and die away, peaked seas at the same sea level, the bay a refuge and the shallows calm, boats thrown about but never over, lightning with its thunder later the further off, no flashes with reduced motion, a storm kept in the save), sailing (no drive in irons, luffing and stalling, fastest across the wind and never far past hull speed, pushed to leeward, a boat that heels, tacks with her boom coming across, rows with the sail down, and keeps her sail in the save; wind lines only when there's wind and you want them), wind, waves and currents (sheltered water is calmer, the sea changes smoothly, nothing jumps at an invisible line, currents run where they should and turn with a tide, the water you see is the water boats float on, a drifting boat goes the same way at 15, 30 and 120 frames a second, no wave tips a boat, an anchored boat stays put), the graphics levels (Ultra and Cinematic draw more than High, Auto never picks them, the choice survives a save and reload, the finishing pass bows out where WebGL 2 is missing), the quiet places' own fish (in the water, in homes their own rules allow, taking nobody from anywhere else, caught on the field guide's tackle), diving (how long a breath and a tank last, the turn mark, what may be speared, a shot meeting the first fish on its line and the head versus the tail, a diver who can't leave the water or swim up the beach, fish that bolt from a diver rushing them and gather round one waiting still, the Kittiwake's bell, and a dive's catches and records in the save), the fell and the Coldwater (the path can be walked all the way, never too steep and never wet, and takes a quarter of an hour; it's trodden into the hillside; the places up the river are found in order walking up it; the river keeps to its bed at every height; the tarn and pools stand at their own levels; the tidal stretch is deep enough to paddle up; the land has no walls where one shape meets another and fades out before its edge; the footbridge and the bothy; every fish already in the world is exactly where it was, and the river's own fish live in water that suits them; a map from before the sheet grew keeps everything you'd seen), Las Brasas (a volcanic island far to the south with a peak and a crater, a harbour basin deep enough for any boat and its quay at the waterfront's level, a beach, an islet and a drop-off; its waters all salt, calm in the harbour and the lee and rough to windward, the current south-west and the trade wind from the north-east; its fish on homes of their own, in its waters, none of its own kinds at home and nothing at home moved; a boat lies at its quay and isn't pulled back towards home; a game left there is kept with its own chart; its places are found only there; El Bajón, its house reef, a short row from the harbour with its pinnacles a few metres under a buoy and the island's own reef fish living on it), how you feel (colder at night, in rain and up the fell and warm at Las Brasas; clothes that help and a raincoat too hot in the sun; rain that soaks and sun, fire and a roof that dry; thirst that builds slowly; the bottle and the rolls; effects only when a need is very low and only on Gentle; the figure dressed to match; the record and the setting kept in the save), boats and harbours (the sailing boat's outboard drives her about six knots in a calm, comes down with the sail and burns its own small tank; the pumps on Puerto Brasa quay and Willowhaven's pontoon reach the berths; each pontoon can be walked down its gangway and onto every finger with no step too high, over water deep enough; its fingers have room for several cruisers; the yacht is big, quick and slow to turn at speed, with a cabin you can stand up in and her own berth; she needs enough fuel aboard for the crossing, and she's kept in the save), the big game (ten species of the open ocean, every one on the big-game rod with the field guide's lure; billfish only at Las Brasas, the blue shark, mako and albacore in both seas, all in deep water; the trolling notch on the yacht and the console; a trolled lure raising them from far off; the fighting chair; big fish shown alongside; billfish and sharks released; a marlin outlasting a tuna, and a tuna a dorado), sea life to watch (dolphins racing in to ride a brisk boat's bow wave and leaving when it stops; a whale surfacing to breathe and blow a few times, then down for minutes; the sperm whale's flukes lifted as it dives; gannets plunging onto a shoal near the surface by day, never at night; seals hauled out on dry rock and a curious one coming to look at a quiet boat; the sea glowing at night where it's stirred, in salt water only, some nights brighter than others; the record in the save), the sport-fishing boats (the yacht's twin inboards under her stern, about twenty knots and handy when slow; the centre console's twin outboards, about twenty-seven knots, its berth, lever and tank; on both you stand at the wheel and step back into the cockpit, or the console's bow, turned to face your line, so a cast goes straight off the stern, while in the other boats the rod comes no further round than your side), a livelier sea (a breeze most days and a sea breeze in the afternoon, a lighter wind at night, the trade wind at Las Brasas; a wind sea that grows longer and bigger waves as the wind freshens; swell that grows and steepens in the shallows and is spent once it breaks; a gybe never stops the game), water sports (the windsurf board ploughs in light air and planes in a breeze, held when it's trimmed and catapulting you in when it's hauled in hard in a strong wind, back up in a moment; no anchor and no fishing; the jet ski quick and steered by its jet, leaving the crests in a lively sea and skimming a calm one; both kept in the save), the crossing to Las Brasas (one sea from home to the island, deep the whole way; no edge current along it, only to either side; about twenty minutes across in the yacht held to her seakindly speed in the swell and about half an hour in the sailing boat, timed by a helmsman steering the real boats in the real wind; the wind coming round through the north into the trade, the sea breeze the coast's; what's met along the way the same for the same day and different another, the warm-water ones in the south; the crossing's own fish to troll for; a crossing kept in the save mid-ocean; the day book's pages), Willowhaven's buildings (the chandlery and the inn level, in by the door and nowhere else, everything inside within reach of someone your size, the roof and the near wall lifting away while you're inside), Las Brasas' life (its five dive sites at their depths with the life they're known for, its hunters driving its own shoals up and the birds coming, the harbour full of fish, shearwaters over a shoal and rafting at dusk, a loggerhead turtle, the dolphins noticing a boat from further off), and that lists every file for offline play. loads three.js from so the game's own modules run as they are.
Two tuning tools play the real game code headless: node --import ./tests/setup.mjs tools/fightsim.mjs plays thousands of fights per species, rod, difficulty and player style; node --import ./tests/setup.mjs tools/ecosim.mjs fishes the living ecosystem with a chosen rig in a chosen spot and reports which species come and how soon they bite (tools/ecosim.mjs guide:seabass,octopus fishes species with the field guide's own recommendation).
Vercel (what the live game uses): the project is imported from GitHub with the framework preset Other. vercel.json tells Vercel to run node tools/build-sw.mjs on every deploy (it writes the list of game files, and a version made from their contents, into sw.js for offline play) and to serve the repository root. Every push to main redeploys the site, and every other branch gets its own preview address, so you can try a branch before merging it. No environment variables are needed, unless you want cloud saves. The api/ folder holds the one optional function for those; Vercel picks it up by itself.
Any other static host works too. Run node tools/build-sw.mjs first (so offline play picks up your changes), then upload these files and folders, keeping the layout as it is:
index.html style.css manifest.webmanifest sw.js src/ vendor/ assets/
serve.py, README.md, tools/, research/, supabase/ and .claude/ are for working locally and don't need to go up. api/ only works on Vercel; elsewhere the game simply stays guest-only. Some other easy hosts:
main branch, root folder.node tools/build-sw.mjs && zip -r slow-tide.zip index.html style.css manifest.webmanifest sw.js src vendor assets
Link previews: the og:url and og:image lines in index.html point at the Vercel address. If you move the game to another site, change them to the new full address; most social sites ignore relative image paths.
Privacy: the game loads nothing from other sites, uses no cookies and no analytics. Progress is kept in the player's own browser (local storage) and never leaves their device. If you switch on cloud saves and a player chooses to sign in, their save (and email address) is also stored in your own Supabase project, where only they can read it.
With a keyboard and mouse (every key below can be changed in Settings → Controls & comfort; keys are shown as printed on your keyboard, so W A S D is Z Q S D on AZERTY):
| Key | Does |
|---|---|
| W A S D or arrows | Row or paddle (W forward, S back, A/D turn), drive a motorboat (W/S move the throttle lever a notch at a time, and it stays where you leave it; A/D steer), or walk on shore (relative to the camera) |
| Shift (hold) | Jog on shore. Trout feel heavy footsteps, so walk near the stream |
| Drag / scroll | Look around / zoom (in every view). The view turns right round you or your boat; drag upwards and it sinks below the waterline to look beneath the surface, down again and it comes back up |
| Space (hold) | Aim and load the cast: the landing ring and the arc of the cast move out the longer you hold |
| A / D while aiming | Swing the cast left or right (in first person, turn your head and the cast with it) |
| Release Space | Cast to the ring |
| Esc or right-click while aiming | Put the cast down without casting |
| W / S with the line out | Float rod: bait shallower / deeper. Lures: reel slower / faster |
| Space (tap) with the line out | Twitch the bait or lure, or dart a squid jig up |
| Space (hold) with the line out | Reel in (or wind in a bottom rig, or strip in fly line). Let go to pause a lure |
| Space when a fish takes | Set the hook (strike). A carp running with a hair rig, or a fish grabbing a lure as you reel, hooks itself |
| Space (hold) while a fish is on | Reel. Ease off for the surge at the start of each run (a flick on the surface warns you; a creak means the line is at its limit), then hold again |
| W / S while a fish is on | Tighten / loosen the reel's drag |
| K on the catch card | Keep the fish for the pot (it goes in your creel). Space lets it go |
| E | Step ashore · get in a boat · step across between boats · open camp or a tackle box · get in the car or open its boot · use the bed, desk, wall or workbench at home · look closer (when a prompt appears) |
| B or I | Backpack: rods, line, rigs, tackle, setups and creel (with a tackle box or a boat locker in reach, the box too) |
| Q | Next bait, lure, fly or jig in your backpack for the rod in hand |
| 1 / 2 | Switch between the two rods you carry |
| G | Throw a pouch of loose bait around a carp rig |
In the car, the same keys drive: W/S go and reverse (pushing against the way you're rolling brakes first), A/D steer, Space (held) brakes, C changes between the view behind the car and the driver's seat (V too), and R resets the camera. Stop, then E to get out or go somewhere (Q: where to?). Opening a menu while you drive puts the brake on, and the movement keys do nothing until it's closed. If the car is ever stuck, E puts it back on the lane.
While you're choosing where to pitch a camp, only its own keys work: walk and look to move the outline, Q/E turn it, the mouse wheel brings it nearer or further, Space pitches and Esc cancels (nothing casts, steers a boat or opens other panels until you do).
On a phone or tablet the controls appear on screen. Drag on the left half to row, paddle, drive or walk (a stick appears under your thumb; in a motorboat, push it up or down and let go to move the throttle a notch, across to steer), drag on the right half to look around (drag up to sink the view under the water), and pinch to zoom. At the helm the throttle lever sits above the round button: tap a notch or drag the handle, and Stop knocks it into neutral. While a fish is on, stick up/down sets the drag. The round button on the right does all the fishing: hold to aim and let go to cast, tap to strike, hold to reel. Its label tells you what it will do next. Prompts such as Step ashore or Camp are buttons: tap them. The buttons along the top open the fish finder, backpack, views, journal, map and settings, and the hourglass lets time drift while you hold it.
With a controller (an Xbox controller, or any the browser recognises; plug it in or pair it, then press any button). It never replaces the other controls: whichever you used last is what the hints, prompts and the title screen describe.
| Left stick | walk, row, paddle, steer (at a motorboat's helm, push it up or down and let go to move the throttle a notch; across steers) · L3 jogs until you stop |
| Right stick | look around (push up to sink the view under the water) |
| At the helm | B stops (throttle to neutral), L3 lowers or raises the kayak's motor; with a line out the D-pad ↑/↓ moves the throttle a notch |
| RT | hold to aim, let go to cast; strike; hold to reel |
| A / B | whatever the prompt says / cancel a cast, reel in, back out of a menu |
| Y · View · D-pad ↑ · Menu | backpack · map · journal · settings |
| LB / RB | the other rod / the next bait or lure (with a line out: why aren't they biting? / loose bait) |
| X · LT | the mooring prompt (anchor, tie up, cast off, let go a tow) · let time drift (hold) |
| D-pad ← / → / ↓, R3 | next view / photo mode / fish finder, reset the camera |
| A fish on | RT reels, LT eases the drag, left stick up/down sets it |
| Catch card | A let it go, X keep it, Y photograph it |
| Driving | RT go, LT brake (hold to reverse), left stick steers, A get out, X where to? |
| Menus | D-pad or left stick moves, A chooses, B goes back, LB/RB change tabs, right stick scrolls |
Settings → Controls & comfort lists them all, and turns the controller's vibration on bites and runs on or off. If the browser doesn't recognise a controller's layout, the game says so: its buttons may not match the hints.
Nothing can go wrong. A missed bite just means another will come; a snapped line only loses that fish (and the game tells you why it broke); and you can never starve.
A new game begins at home, in front of the cottage with the car on the drive, and offers a short guide to a first outing (you can say no, end it whenever you like, and start it again from the journal, under Memories). A small card in the corner shows one step at a time, in the words of whatever controls you're using, and a marker points the way:
Each step is done when it actually happens, never on a timer, and doing a later one first is fine: skip the workbench and just drive off, and the guide catches up.
The coast is big: the far places are one to three minutes away by motor skiff, and you find them by going there. The map (M) fills in as you explore and marks every place you've found.
Across the open Atlantic to the south lies Las Brasas, a volcanic island in the trade wind, like the Canaries (an invented island, not a real one). It's in the same world as home, and the sea between is real: you can make the crossing at the helm the whole way, or take the fast passage.
Who can go. The sailing boat and the sport-fishing yacht. Out on open water in either (past the bay), or standing beside her at her berth, press E and choose the crossing south. A card says what it takes before you set out: about twenty-five minutes at the helm in the sailing boat (twenty in the yacht) across four and a half kilometres of open sea from Gannet Light to the island, a day and more going by on the clock, through a night; the wind you'll have; the yacht's fuel (she needs 90 L aboard, and burns about 55 L across with the lever down); water and stores (taken aboard as you set out, and you eat and drink from them on the way); a gale due before you'd be across; and which way to steer. Anything smaller (the skiff, the console boat, the jet ski) is turned back at the edge of the home chart, with a word why. Sail a fit boat out past the edge without setting out and the card is offered; until you choose, she goes no further.
At the helm. A marker shows where to steer for (Las Brasas, then Punta del Faro, then Puerto Brasa, the way round into the harbour on the island's south side), with the distance; the map (M) has a chart of its own for the open sea, both coasts on its edges and the route across, with you on it. The wind comes round as you go, from home's own weather through the north into the island's north-east trade, fresh and on the quarter going south; the coast's afternoon sea breeze fades away out there. Mid-ocean the long Atlantic swell runs bigger, and a motor boat can't be driven flat out in it: the yacht slams above about six knots, so she's held there. The sailing boat's speed is the wind's: about twenty-five minutes in a fresh trade wind, more in light airs or beating home into it.
On the way, different every day you set out and the same for the same day: a big pod of common dolphins racing in to ride the bow, a fin whale blowing in the cooler northern half or a sperm whale in the warm southern half, birds working over tuna driving bait to the top (gannets, then Cory's shearwaters; troll a lure past the edge of it: the fish there are real, on the finder and on the hook), flying fish gliding away from the bow in the warm blue water, a loggerhead turtle up for a breath, a squall of rain and gusts, rafts of floating sargassum weed with dorado under them; and quiet water between. Pico Brasa comes up over the horizon dead ahead, a cloud caught on its top, about two thirds of the way over.
If the weather turns (a gale due, or blowing up), you choose: the sail (or ease the yacht back) and carry on, slower and easier; while you're less than halfway; or and let it pass, the hours going by.
The island has its own chart: open the map (M) there and it shows Las Brasas, filling in as you explore, as the home chart does at home. (Your camps, home, the car and the far camps are across the open sea: only the crossing takes you there.)
A path runs from the landing to Willowhaven and on round the shore. Each place has its own landmark, sound and fish, and something to find.
Your backpack carries a camping kit: a tent and bedroll, a lantern on a pole, a camp chair, a little stove, a tackle box and a cool box. Open the backpack (B), choose Pitch a camp…, and an outline of the camp follows the ground in front of you. It turns green on a good spot and red on a bad one, with the reason (in the water or where the waves reach, too steep to sleep on, a tree, rock or building in the way, across a path, in front of a doorway, on a jetty, too close to a camp, beyond the edge of the world), and warns you about low, exposed ground. The whole footprint is checked, not just the middle, and gentle slopes are fine: if the spot is nearly right the camp settles a step away where it fits. Confirm, give it a name (or keep the one offered), and it's pitched. Cancelling leaves the kit as it was.
At your camp, press E by the door:
The cool box keeps six fish on ice and the stove holds four cooked ones. Moving a camp keeps its name, contents and history (it takes a little time). Packing up puts the tent back on your pack; if the cool box holds more than your creel can take, you choose which fish come with you and which go back into the water, and nothing goes without you saying so. You have one camping kit, so one camp of your own at a time, alongside the fixed camps. The backpack's Head back to list and the map's camp list both take you straight to it, and when you come back it's just as you left it.
Saved camps are checked when you load: if one somehow ends up somewhere it couldn't be pitched (after an update changed the ground, say), it's moved to the nearest good spot and the game tells you where and why.
The camping gear is three pieces, each in one place at a time: the tent & bedroll (with the lantern, chair and the camp's bits), the stove & pans and the cool box. You need the tent to pitch (if it's in the car close by, you fetch it); the stove and cool box come out of your backpack when you pitch, and a camp without them can't cook or keep fish on ice (its sheet says where they are, and sets them up when you bring them). Packing up, everything goes into your backpack.
Home is a cottage and its garage on the east arm, up the lane above Shell Strand. Players who were already playing are offered it once (Go home now or Later) and otherwise carry on wherever they were; new games begin there. The map and the backpack's Head back to list take you there whenever you like.
While you're indoors the roof lifts away (and the wall between you and the camera), so you can see what you're doing; in first person it stays put.
The workbench plans an outing, step by step but in any order: what for (fishing, for a fish you've met or a way of fishing; camping overnight; exploring and photographs), where (Willowhaven, Shell Strand and Cove Head by the lanes, Wend Quay and the Mere Boathouse by road), about it (a map, the ground and the way in, the water and the fish that actually live there and how busy they are at this hour, your boats, the camping, the weather right now, which is never presented as a forecast), gear (setups that suit, from the field guide's own recommendations, packed into your backpack or loaded as spare tackle in the car; the camping gear between the garage, the car and your backpack), the packing list with a short check, and off you go. Places you haven't been yet keep their fish to themselves. Nothing has to be planned: "same again" takes last time's place and packing, loadouts of your own (six) are saved by name, and you can always just get in the car.
Where things are: everything you own is yours already (nothing is bought). What you carry is your backpack (two rods and eight baits or lures, as ever). The car's boot holds four more rods and twelve more tackle, and the camping gear. Everything else is on the tackle wall at home, and at the tackle boxes round the coast as before. Moving something never copies it: a rod in the car isn't on the wall, and packing a setup takes its pieces out of the car. At the boot you can swap tackle with your backpack, move the camping gear, and at home unload it all into the garage. Saved loadouts only name things: using one moves what it can and says what it can't (a tent still pitched at a camp, a car that isn't here).
The check before you leave looks at the plan and what you're taking: a rod with nothing it can fish, tackle for the wrong water, nothing that suits the fish you're after, the tent still in the garage when you're camping, a tent already pitched where you're going (no need to take it), the stove or cool box left behind. It never stops you going, and Pack the essentials fixes what it can from what you own.
Driving is real but small: the lanes run from home down to the coast path and along it to Willowhaven, Shell Strand and Cove Head, each ending in a car park with room to turn. The car won't go into the sea, up anything too steep or through trees, rocks and walls (it stops, and you can always back out), and Back on the lane rescues it if it's stuck. Driving yourself, the clock runs as it always does. You can also let the drive go by from the workbench or the driver's seat: a short fade, the car parked at the car park, you beside it, and the time the drive takes gone by (a few minutes along the lanes, about forty to Wend Quay and the Mere Boathouse, which are only reached that way). Heading home from the map with the car close by takes it home with you; without it, you make your way home and the car waits where it is (the map can take you back to it). Your boats and your camp always stay exactly where they are: a camp left pitched is there, with everything in it, when you come back.
Small stories round the cove, each with a clue, somewhere to go, and a modest reward. Clues come from the Willowhaven notice board, or from a page you find lying about. Nothing is timed and nothing needs doing twice: if you've already done part of one before you find its clue, it's recognised and counted.
Rewards are keepsakes (in the journal's Memories pages), map marks and that deckchair: nothing that changes how fish bite.
Press P (or Take a photograph in the backpack or the album on a phone) for photo mode: the interface steps aside, drag to look and scroll or pinch to zoom, and press again to take the picture. You see it straight away, can give it a title, and keep or discard it. On a catch card, Photograph takes a picture of the fish in your hands. The game notes what's in each picture (the fish in view, the places, gulls diving).
The journal's Memories pages hold your album (48 photographs; download any one as a JPEG, or the whole album as a single web page), the adventures you've come across and their keepsakes, your map marks, your camp, and the places you've found, each with what you've caught there, your best fish and the tackle that worked. Photographs are stored in your browser's own database, not in the save file, so the save stays small: a downloaded save or a cloud save keeps the list of your photographs but not the pictures, so download the album if you want to keep them elsewhere.
On the map, Mark a spot (or Mark where you are) adds a mark with a title, a note, and a star for favourites; the Memories pages list what you've caught near each one.
Camps you've found are listed beside the map: Go there takes you to any of them in a short fade (a little time passes, more for further camps), and Go there by your boat takes you back aboard. Your boats stay where you left them.
The rod decides how you fish; what you tie on decides which fish come. (Strike times below are for Standard difficulty.)
Stop over water a couple of metres deep or more (in a boat, or standing on a jetty, the rocks or a steep beach) and Go diving comes up on the prompt. Choose:
You swim where you look: W/S forward and back, A/D turn, drag to look all round, E up and Q down, hold Shift to kick hard (faster, but it costs breath and scares fish). Space fires the speargun or takes a photograph; C switches between the view through your mask and the view just behind you. On a controller: the left stick swims, the right stick looks, A/RB up, LB down, RT shoots. On a phone: the stick swims, drag to look, ▲ ▼ up and down, and the round button shoots. At the surface by a boat, a jetty or a beach, the prompt climbs you out.
Spearfishing. Fish swim off if you rush at them (a wary kind sooner, and kicking hard sooner still); drift past slowly and they let you close. Settle near the bottom and keep still, and the curious ones (the sea breams, wrasse, bass, pollack) come over and circle you to look: the old way, waiting rather than chasing. The sights show what's in front of you (its name once you've caught or seen one, and roughly how long it is) and turn green when a shot would hit. The shaft is sure at about three metres. Aim just behind the head: a clean shot holds the fish; a tail shot can tear free. The gun won't fire at a fish you shouldn't take: never in fresh water (banned), never a protected fish (the eel), never bluefin tuna, and small fish (the smallest fifth of the sizes each kind grows to here) are let grow. Speared fish go in your creel to cook at camp, and in the journal as Spearfishing, so take only what you'll eat.
The Kittiwake's bell. A card on the notice board: her bell lies in the sand by her bow, nine metres down. Dive to her (on one breath, or a tank), photograph the bell and leave it where it lies.
Dive sites. Five places on the home coast are worth going down at, each different, each with a landmark to find and fish of its own (they go on the map as a red diver-down flag when you pass over them, with a tick once you've dived them; the yellow buoys show you where):
| Site | Depth | What's down there |
|---|---|---|
| Skerries Reef, south-west of the Skerries | 3–9 m | Boulders and gullies, kelp on their tops, and a rock arch you can swim through. Wrasse, pollack, black bream, salema and an octopus; jewel and dahlia anemones, urchins, starfish, a lobster at the arch's foot. |
| The Kelp Forest, off Gannet Isle's west shore | 4–10 m | Tall kelp standing like trees, streaming with the tide, red weed under it. Pollack among the stalks, cuttlefish, bream and bogue; a big boulder in a clearing with a lost lobster pot against it. |
| The Kittiwake, off Shell Strand | 8–10 m | The wooden drifter, her boiler now grown over with plumose anemones and dead man's fingers, a lobster in its mouth; a conger, pollack and a shoal of bogue. |
| Anchor Sands, south of Long Shoal | about 17 m | Open sand rippled by the tide, and an old Admiralty anchor with its chain. Plaice, turbot and sole lie in the sand, gurnards walk it, cuttlefish hunt it; burrowing anemones and sea pens stand up out of it. |
| The Hound, beyond Gannet Light | 10–30 m | A rock pinnacle standing from the seabed at thirty metres to ten, with its little Pup beside it, at the foot of the Gannet Drop. Pink sea fans and sheets of jewel anemones down its walls, dead man's fingers and plumose anemones on its ledges, kelp on its top; pollack hanging off it right down, conger, red porgy and dentex at its foot, mackerel and scad over it. The tide runs hard across it: dive it at slack water (high or low water, on the notice board), on a full tank. The fish finder shows its top under you. |
And five more at Las Brasas, in water clear enough to see the whole reef from its top (see Las Brasas): El Bajón (3–20 m), Los Arcos (4–16 m), El Veril (20–40 m), El Sebadal (8–14 m) and Las Coladas (4–14 m), each with the life it's known for at its depths.
You can't swim through the rock (the Hound, the arch's piers, the boulders), but you can swim under the arch. The first time you're down at a site a note tells you what it is; your journal keeps how often you've dived each and the deepest you've been there. And wherever you dive, the seabed is never bare: shells and scallops, starfish and brittlestars, hermit crabs, worm casts, burrowing anemones and sea pens deeper down, urchins and anemones on the rock, stones and mussels in fresh water.
Alerts are gentle and never repeat: a nibble on a float is silent, a strike-worthy bite rings a soft bell once (Bite — strike!), a carp or a lure fish that has hooked itself rings a three-note bell (Fish on!). The bite-alert bell has its own volume in Settings, and the master mute silences it like everything else. The camera never jumps on a bite or a hooked fish.
Every fish in the water is an individual: its length, and its own build (lean, in good condition, or fat and deep-bodied for its length, so two fish of the same length can weigh quite differently), how much fight it has in it, and whether it's bold or shy. The catch card gives its own weight and condition.
Each kind answers the water in its own way: trout, grayling and sea bass hold in a current that carp, tench and mullet keep out of; bass hunt in the surf when it's rough; most fish go deeper and shyer under a bright midday sun and feed better at dawn, dusk or under cloud; a storm puts most of them down; and splashes, a motor, or casting at the same spot over and over leave the water wary for a minute or two.
You can watch a fish make up its mind: it notices the rig (Something is curious…), follows a lure or rises under a fly, looks it over, and then takes it or turns away. When it turns away the game says why, in a way you can do something about: the lure's too big for this one, it saw the line, too fast for it: slow the retrieve, the bait's too far above it: fish it deeper, the fly was dragging, this water's been disturbed lately. The field guide's Why aren't they biting? uses the same reasons.
How a fish takes depends on what you offer and how you work it: a float bait goes under, a carp runs with a boilie, a trout sips a dry fly, a predator slams a lure that's moving well; a lure crawled slowly, twitched or paused often gets just a tap (a fish nipping at its tail): strike at once, it's gone in a moment.
A hooked fish rests and runs in turns. When it rests, hold Space to wind it in. Just before each run it flicks on the surface: ease off for the first moment of the run (the surge), then hold again to keep the rod up and the pressure on, which tires it. The outer ring by the rod shows how close it is; the inner ring is the line's tension, and the small dot on it is where your reel's drag starts to give line.
The flick is hard to miss: a splash and a sound where the fish is, the rod tip nods, the ring pulses amber and reads flick! (on a phone the button says Easy, and phones that can will buzz). The jolt of a surge builds over its first moment, so letting go as soon as you notice the run is usually still in time; holding on through it is not.
Each kind fights in its own way, and the prompt says what it's doing: carp, tench and wrasse plod off on long, heavy runs; trout, perch, mackerel, mullet and sea bass dart this way and that; pike and largemouth bass shake their heads at the surface; flatfish flatten themselves on the bottom; squid jet backwards in short pulses; tuna sound deep and circle below the boat; marlin, sailfish and spearfish greyhound away across the top, leaping as they go; sharks bore away deep, shaking their heads; a wahoo's first run strips line off the reel in a scream. Each fish fights as itself, too: a big one in fine condition runs longer and harder than a lean little one. On a run it turns now and then (a swirl where it swings round), and the jumpy kinds (trout, sea bass, garfish, bluefish, mackerel) leap clear of the water a moment into a run: keep winding, rod up, so the line stays tight. As it tires its runs get shorter (tiring), and at the end it rolls on its side (beaten): wind it in gently.
Side pressure: while a fish is running, swing the rod low to the side against it (A or D, or the stick across): it turns the fish and tires it sooner. A current running away from you helps a fish that runs with it; one running towards you helps you. A soft rod (the float and fly rods) bends further and cushions a surge, but tires a fish more slowly; a stiff one (the boat and offshore rods) the other way round.
The line and the reel show you what's happening. The line runs from the reel up through the rod's rings to the tip and out to the fish: slack, it sags from the tip, lies on the water and drifts with the current (and bellies in the wind); under load it comes tight and straight, down into the water towards the fish. The rod bends towards the fish, deeper the harder it pulls, and springs back as the load comes off. When the fish takes line against the drag the spool turns and the drag clicks, slowly as it leans on it and in a buzzing scream on a long run (brighter and louder with the drag set tighter); the handle turns as you wind. Near the line's breaking strain the line glows orange and thrums, it sings (a thin rising whine), the tension ring flashes red and the meter says ease off!. Under the meter's word you see what the fish is doing and how much line is out. The reel and line have their own volume in Settings → Sound.
The drag is a clutch: when a fish pulls harder than the drag setting, the reel lets line go instead of the line breaking. W/S (or the stick) tightens or loosens it during a fight. A light drag is safe but slow; a firm drag tires fish faster but leaves less margin. Each rod starts with a sensible setting (light for fine lines), and the game remembers yours.
When a line does break, a note says exactly why:
On Natural and Demanding fish behaviour (below) a fish can also come off with the line whole: it threw the hook in a leap while the line hung slack (keep winding when it jumps), or a hook with only a light hold pulled free because the drag was set too tight for too long (a sensible drag never does it). On Relaxed, the default, a hooked fish never comes off this way.
Line strain builds up rather than snapping at once: when the line creaks, it's at its limit, and easing off right then saves it on Standard. A carp on the carp rod, played this way, is landed every time (about half a minute for a big one); a bluefin tuna on the offshore rod takes about forty seconds, a squid ten. The light float rod can land a carp too, with a light drag and patience, but a big one may reach the weed.
Settings (O, or the title screen) → Controls & comfort → Difficulty: Relaxed, Standard or Realistic. Change it whenever you like; nothing is lost.
| Relaxed | Standard | Realistic | |
|---|---|---|---|
| Time to strike after a bite | Longer (×1.6) | Normal | Shorter (×0.75) |
| How hard fish pull | Softer | Normal | Harder |
| Surges and line tension | Forgiving | Normal: the jolt builds over about a third of a second | Unforgiving: it builds fast |
| Warning flick before a run | Early | Normal | Late |
| Fish reaching weed on light line | Rarely | Sometimes | Often |
| Line strain before it breaks | Lots | A moment to react to the creak | Little |
| Wind and overloading on manual casts | Less | Normal | More |
The right rod, a sensible drag and easing off at the surge land fish at every level.
Settings → Controls & comfort → Fish behaviour decides how fussy the fish are, separately from the difficulty of the fight:
Played carefully (easing off at the surge, winding through a leap, a sensible drag), every fish can still be landed at every level.
Hold Space to load the rod: the ring on the water and the dotted arc of the cast move out at an even pace, so it's easy to stop where you want. Let go to cast. The rig flies along the arc you saw and lands on the ring: no dice, the same release always lands in the same place. Swing the aim with A/D (or by looking round) independently of where the boat or you face. Esc or right-click puts the cast down.
Two ways to cast (Settings → Controls & comfort → Casting):
Rods and tackle matter: each rod has a casting weight range (shown in the backpack). Heavy rigs fly far and hardly drift; light lures, floats and flies blow about in the wind, more on a long cast and in a stronger wind (never at random: the same wind and release land the same place); a lure too light for the rod won't load it and falls short; one far too heavy isn't allowed at all (the backpack says why). Banks, high ground and overhanging branches stop a cast where they meet it, and a cast that would land on dry land or in water too shallow to fish drops into the last good water along its way. A note after each cast says how it went: Right on the mark, 4 m short: the rod overloaded, 2 m wide right: the wind carried it, a branch caught it. Bottom rigs and leads sink and settle; floats cock at the depth you set; jigs sink at their own rate. The fly rod has its own rhythm: false casts that shoot out a little more line each stroke, delivered on the forward stroke.
The camera stays in the view you chose: casting, a bite and a hooked fish never switch it. It turns all the way round you or your boat (front, sides, behind), and tilts from high above right down past the waterline: below the surface the view becomes the underwater view by itself (the colour, the haze, the light coming down, the bubbles), looking up at the hull or your legs, and tilting back up brings it out again. Where the water's too shallow to dip into it skims along just above the ground or the surface instead, and it never passes through a hillside. V goes in or out of first person at any time (the rod in your hands, the line running out, the water in front of you; you can walk, row or drive in first person too). C steps through the views, including a fixed underwater view beneath the boat and one following your bait. R resets the camera behind you. Settings has camera sensitivity, inverted look and a reduced motion option that keeps the camera from swaying or turning by itself.
| Rod | Kind | Casts | Casting weight | Lines | Rigs and leaders |
|---|---|---|---|---|---|
| Willow float rod | Float, baits | 3–26 m | 2–12 g | 4, 6 or 8 lb mono | Stick float, waggler, margin float |
| Light spinning rod | Lures | 5–28 m | 2–8 g | 4 lb fluorocarbon, 6 lb mono | Straight through |
| Spinning rod | Lures | 8–40 m | 7–30 g | 10 or 20 lb braid | Wire trace (for pike), fluorocarbon leader, straight through |
| Carp rod | Bottom baits on an alarm | 10–50 m | 40–120 g | 12 or 15 lb mono | Hair rig with a 3 oz lead, method feeder (both self-hooking) |
| Fly rod | Flies | 5–20 m | — | Floating line, 3 or 5 lb tippet | Tapered leader |
| Coastal spinning rod | Sea lures | 12–60 m | 12–50 g | 20 or 30 lb braid | Fluorocarbon leader, straight through |
| Boat & bottom rod | Sea baits on the bottom | 4–34 m | 50–200 g | 20 lb mono | Flapper rig (5 oz), running ledger (3 oz) |
| Squid rod (egi) | Squid jigs | 8–42 m | 5–22 g | PE 0.8 braid, 10 lb leader | Fluorocarbon leader |
| Offshore rod | Big lures for tuna | 15–70 m | 40–160 g | 80 lb braid | 100 lb shock leader |
| Big-game trolling rod | Trolled lures for the big ocean fish | 6–32 m (let out astern) | 90–400 g | 50 or 80 lb mono | 200 lb wind-on leader, wire trace (for sharks and wahoo) |
Baits: garden worms, maggots, sweetcorn, bread flake, boilies, prawns, ragworm, lugworm, peeler crab, mackerel strip. Lures: trout spinner, silver spinner, trout spoon, mini minnow, shallow and deep crankbaits, jerkbait, paddle-tail shad, weedless creature bait, surface popper, soft sandeel, 25 g casting metal, 60 g offshore stickbait, 80 g metal jig, skirted trolling lure (Konahead), rigged ballyhoo. Flies: dry fly, nymph, streamer. Squid jigs: 1.8, 2.5 and 3.0.
Press B (or the pack button). The backpack opens like your tackle, in three parts:
Line, rig and what's tied on can be changed anywhere; rods and tackle are swapped (and whole setups packed or saved) only within reach of a tackle box: at a camp, or a motorboat's locker. Q and 1/2 still work with the backpack open, Esc closes it, and Tab, the arrow keys, Enter and Space move around and press things without casting or moving you. On a narrow screen the three parts become tabs. Impossible combinations aren't allowed and the panel says why (a fly on a spinning rod, a 60 g stickbait on the light rod); combinations that work but badly get a gentle warning.
All the pictures are drawn by the game itself from the tackle data (src/gearArt.js), photographed once by a small studio renderer (src/gearView.js) and kept for the session.
Ready-made setups pack everything in one go wherever there's a tackle box or a boat locker: Starter Carp, Float Fishing, Light Trout, Fly Fishing, Lake Predator, Coastal Spinning, Flatfish, Squid, Offshore and The Bay. Each one lands the fish it's named for. You can also save your own setups (up to six) and switch back to them later.
Gear matters: a lure too big for a fish's mouth is ignored by small fish (so bigger lures pick out bigger fish); trout and mullet shy away from thick line; a big fish on light line runs further and can reach the weed; a pike's teeth cut anything but wire; flatfish only find a bait lying on the bottom.
| Boat | Where it starts | Good for |
|---|---|---|
| Rowing boat | Willow Bay | Steady and roomy, quick enough under oars |
| Motor skiff | End of The Landing | The open coast and the far islands: about twice as fast as rowing |
| Kayak | Beside The Landing | Silent and floats in a hand's depth of water: creep into the shallows, the saltings and the reeds without spooking fish. Slower than the rowing boat |
| Bass boat | Longmere, at the boathouse jetty | A broad, steady casting platform with a locker for your tackle box. The first notches of throttle run a near-silent electric motor at the bow for creeping along weed beds and reeds; push on for the big outboard to cross the lake fast |
| Cabin boat | Alongside Willowhaven quay | Slow and steady, with a little cabin forward you can go into: a bunk and a galley stove. A camp that floats |
| Sailing boat | Alongside Willowhaven quay, the other side | Goes where the wind lets her; a little outboard for a calm; rows with the sail down. Makes the crossing south to Las Brasas |
| Windsurf board | Willowhaven's pontoon, the first finger west | Sailed standing up; planes and flies in a good breeze. For the sport of it: no fishing, no anchor |
| Jet ski | Willowhaven's pontoon, the first finger west | Very quick (over thirty knots), steered by its jet, jumps off the wave crests at speed. Runs on petrol. No fishing |
| Sport-fishing yacht | Willowhaven's pontoon, the first finger east | A sea-going boat of about thirty feet with twin inboard diesels: a cabin forward (bunks and a galley), the helm under a hardtop with outriggers, and an open cockpit aft with a fighting chair, where you stand to cast and fight a fish off the stern or either side. Quick (about twenty knots), steady in a sea. Makes the crossing south under power |
| Centre-console boat | Willowhaven's pontoon, the second finger east | Twin outboards, fast (about twenty-seven knots) and open all round: you drive it standing at the console under a T-top, and fish from the cockpit aft or up in the bow |
Walk up to a boat and press E to get in; step across between two boats side by side; step ashore at any bank, pier or jetty. In shallow water an outboard tips up and you can only creep. Fish hear an outboard (not the electric motors), so slow down near them.
Anchoring, tying up and towing. A second, smaller prompt above the main one (Z, X on a controller, or tap it) is always about holding the boat still, and says what it will do where you are:
Whether a boat is anchored (and where its anchor lies), tied up (and at which berth) or on a tow is kept with the save, so she's found exactly as you left her.
The throttle. The motor skiff, the bass boat, the cabin boat, the yacht, the centre console and the jet ski each have a throttle lever with notches (and the sailing boat's outboard a smaller one: R, N, 1, 2, F): R astern, N neutral, then 1 dead slow (about 1 m/s, for creeping round piers and moorings), 2 slow ahead (about 2 m/s, trolling speed), 3 half and F full ahead (on the bass boat the first two notches, E1 and E2, are its quiet electric motor). The lever is on screen at the bottom right while you're at the helm (above the round button on a touch screen): click or tap a notch, or drag the handle; the fill beside it shows what the motor is actually giving. W/S (or the left stick pushed and let go, or +/−) move it a notch at a time, and it stays where you leave it; held down, it steps on, pausing at neutral before going astern. X, B on a controller or the big Stop under the lever knock it into neutral: the motor idles and the boat coasts on, slowing gradually. The motor takes a moment to build up and to ease off (an electric one less), and changing between ahead and astern it goes through neutral and pauses while the gear changes. Steering (A/D, the stick across) is separate and works at any speed, best with a little way on.
Fishing under way. You can cast from a moving boat at up to about trolling speed. Going faster, starting a cast eases the throttle back to slow ahead for you (a word says so), and you aim while she slows. The rig leaves the rod with the boat's way on it and lands carried along in the direction you're going (the aiming ring shows it, and the note after the cast says how far). With a line out the motor keeps running: the boat tows your lure behind it on the line that's out (trolling), and it swims as if you were reeling it, so fish chase it. With a line out the throttle goes no higher than slow ahead (+ and −, the D-pad, or the lever change it; W/S are for the lure), and when a fish takes, you knock the motor into neutral: the boat coasts while you play it, and dead slow is the most you can give it until it's landed. Passing back over your line leaves it slack; it comes tight again astern. The rowing boat and the kayak drift on the wind and tide with a line out, and the line tows the rig along the same way.
The kayak's electric motor. The kayak carries a little electric motor on its stern. U (L3 on a controller, or Lower motor by the lever) lowers it into the water; then the throttle lever drives it (R, N, 1, 2, 3), up to about 1.6 m/s: slower than paddling (about 3.5 m/s), but silent and hands-free, for creeping up on fish or trolling a lure. Raise it again and you paddle. In very shallow water it kicks up out of harm's way. It runs on a battery of its own (shown in the hint), about a quarter of an hour flat out and far longer at dead slow; it charges while the kayak is tied up at a jetty or quay, and overnight. If it runs flat the motor comes up and you paddle on: the kayak is never stuck. Whether the motor is down, and the battery, keep with the save.
Sailing. The sailing boat is a little sloop with tan sails, tied up on the west side of Willowhaven quay (or have her brought round). Raise the sail with U (L3 on a controller, or Raise sail on the panel); with it down she rows. Under sail she goes where the wind lets her: W hauls the mainsheet in and S eases it out (it stays where you leave it), A/D steer with the tiller, which only bites with way on. The panel at the bottom right shows her from above with the wind as she feels it (bold) and as it truly blows (faint), the no-go zone either side of it, where the boom lies, the sheet with a mark where it would draw best, her speed in knots and what the sail is doing: luffing (it flaps: haul in), stalled (sheeted too tight for the wind: ease out), close-hauled, reaching, running, or in irons (head to wind, nothing drives her: bear away). The sail itself shows it too, bellying out when it draws and flapping when it luffs, with telltales on its luff and a flag at the masthead. She's fastest across the wind (four or five knots in a good breeze, never much past six), slower close-hauled and dead downwind, and makes nothing within about forty degrees of the wind: to go upwind, zigzag, and tack through the wind with speed on (the boom swings across). Turning the stern through the wind is a gybe: the boom slams over, so haul the sheet in a little first. She heels to leeward and, pressed too hard, slows and turns up into the wind: ease the sheet in the gusts. Wind lines, white streaks drifting through the air with the wind (gusts and all), show where it's coming from and how hard while you sail; Settings → Weather & sea shows them always or never instead, and Settings → Controls & comfort has Sail trim: Helped, which trims the sheet for you whenever you leave it alone. You can fish under sail: the sheet holds while the line is out, as a throttle does when trolling.
The sailing boat's outboard. For a calm (or to motor in and out of a harbour), the sailing boat carries a little outboard on a bracket on her quarter. L (or Outboard down on the sail panel; on a controller L3 goes sail, outboard, oars in turn) lowers it, and the sail comes down; then the throttle lever drives her, up to about six knots. L again (or raising the sail) tilts it up out of the water. It runs on petrol from a small tank of its own (12 L), and a word tells you where the nearest pump is when it runs dry.
Windsurfing. The windsurf board lies at Willowhaven's pontoon, on the first finger west. You sail it standing up, side-on, hanging off the wishbone: W sheets the sail in, S eases it out, A/D steer (you lean the rig), and the sail panel shows how it's drawing, as for the sailing boat. In light air it ploughs along at a walking pace; from a good breeze (about 25 km/h) on a reach it climbs up onto the plane and flies, fifteen to twenty knots and more. Hang on to too much power for too long (hauled in hard in a gust, or a near-gale in the sail) and you're catapulted in: a splash, and a few seconds later you climb back on and pull the rig up. Ease out in the gusts and you hold it; Settings → Controls & comfort → Sail trim: Helped trims it for you, easing out past its best to spill the gusts. It has no anchor (tie up at a pontoon or a jetty, or step ashore), and no fishing from it. The trade wind at Las Brasas is made for it.
The jet ski. It lies beside the board. It drives on the throttle lever like the motorboats (a light touch goes a long way: half ahead is already eight metres a second), up to about seventeen metres a second, over thirty knots. It steers by its jet, so it only turns with the throttle on. At speed it leaves the wave crests and flies a moment before landing with a smack, and it throws a plume of spray behind it; in a calm it skims flat. It runs on petrol (60 L; the fuel point is beside its berth). No fishing from it.
Your boats in either sea. At Willowhaven's quay head, or Puerto Brasa's harbour office (the white kiosk on the quay by the gangway), you can have any of your boats brought round to the pontoon or the quay; and one that's in the other sea goes on the supply ship overnight and is tied up at the pontoon here at eight the next morning (sleep, or rest a while). The bass boat stays on Longmere.
The yacht carries the board and the jet ski on her deck on the fast passage, if they're beside her when she sets off: they come off at Las Brasas beside her, and go back to their berths when she brings them home.
The pontoons. Willowhaven and Puerto Brasa each have a floating pontoon: a gangway of steps down from the quay, a walkway low on the water, and finger berths off it with room for the bigger boats. Tie up alongside a finger as at any quay (Z), and walk ashore up the gangway. Willowhaven's has a fuel point near its head; Puerto Brasa's pump is on the quay at the gangway's top, and reaches boats at the nearest fingers and alongside the quay.
The sport-fishing yacht. She lies at Willowhaven's pontoon, on the first finger east (or have her brought round). Beside her, E offers the helm, the cabin or the crossing. Two inboard diesels drive her (two propellers and two rudders under her stern, a deep twin throb), both on the one throttle lever like the other motorboats. You stand at the helm, to starboard under the hardtop, the wheel turning as you steer: quick once she's going (about twenty knots), slow to turn at speed and slow to stop, so give her room near the pontoon; slow, her twin screws bring her round handily. Her cabin works like the cabin boat's (below), with standing headroom, bunks and a galley; after dark a white light shows at her masthead. Above the helm, a rack of big-game rods and an outrigger either side; aft, a wide-open cockpit with a fighting chair, rods in the gunwale holders and a tuna door in the transom.
Big-game fishing. The great fish of the open ocean are trolled for: rig the big-game trolling rod (the Big Game setup packs it, with skirted lures and rigged ballyhoo), cast the lure out astern, and motor on. The yacht and the centre console have a trolling notch on the throttle (T, about seven knots), allowed with a line out; tow a skirted lure there for marlin, wahoo, dorado and tuna, or a ballyhoo at dead slow or slow ahead for sailfish, spearfish and sharks. Out in the blue water (the Blue Water off Willow Bay; past El Veril at Las Brasas) the big fish are raised by the wake from far off and come up behind the lure to look; when one hits, it hooks itself against the boat's way and the reel screams. The engines go into neutral, and on the yacht you fight it from the fighting chair, which swivels to follow the fish. Big-game fights are the longest in the game (a big marlin takes about a minute of careful play on Standard). A fish that size isn't lifted aboard: it lies alongside at the surface for a look and a photograph, and the billfish and the sharks all go back.
Fishing standing up. In the yacht and the centre console you don't sit to fish: cast as from any boat (aim where you look) and you step back into the cockpit and turn to face your line, whichever way it goes, straight off the stern as readily as either side, and you follow a fish round as it runs; a fish you let go goes back over the rail you're facing. When the line's in, you go back to the wheel. (In the other boats the rod comes round no further than your side.)
The centre console. It lies at Willowhaven's pontoon on the second finger east. Twin outboards, about twenty-seven knots flat out, and open all round: you drive it standing at the console under the T-top, leaning on the post behind you. Fishing, you step back into the cockpit, or, if you're facing forward as you cast, up into the bow. It runs on petrol (200 L; the fuel point is on the pontoon).
The cabin. With the cabin boat (or the yacht) still and made fast (anchored, or tied up alongside a quay), E at the helm takes you into the cabin, and from the quay the prompt offers the helm or straight into the cabin. (Tied up alongside, you make her fast with the anchor as you go in.) Inside, the roof lifts away and the view looks down into the cabin; V looks round it through your own eyes, roof on. W/S (or the stick) walk between the doorway, the galley and the bunk; E at the galley cooks and eats, at the bunk sleeps (you wake in the bunk), at the doorway takes you back out on deck; Esc (or B) goes straight back out. After dark the cabin lamp is lit. You can't go in while she's under way, and a save made inside puts you back at the helm. Every boat stays where you leave it, anchored or not, and boats reloaded from a save are checked: one that wouldn't float where it was goes back to its mooring. There's no damage to worry about, and fuel is light (below).
Only what has an engine needs it: the car, the motor skiff, the bass boat's outboard, the cabin boat, the sailing boat's little outboard, the centre console and the jet ski run on petrol (and the yacht's diesels on fuel from the same pumps), and the bass boat's and the kayak's electric motors each on a battery. The rowing boat (and the kayak's paddle) never need anything. The hints show what's in the tank while you drive or motor (fuel 31 of 45 L), with a word when it's down to a fifth.
Boats ride the water you see: they heave, pitch and roll on the swell and chop, gently, and no wave tips one over. A kayak bobs on every wavelet; the long rowing boat and skiff bridge short chop; the broad bass boat sits steadiest. Unanchored, a boat drifts with the current and is blown along by the wind (the high-sided bass boat most, the low kayak least), so on a breezy day in the estuary you'll drift down the channel while you fish. At anchor it lies a few metres down-wind and down-current of the anchor, bow to its rope.
You carry two rods and eight baits, lures, flies or jigs, plus a creel for the fish you keep. It holds them by weight: 15 kg, which is thirty-odd mackerel, a few good bass, or one big fish on its own (an empty creel always takes one fish, however heavy: a yellowfin tuna fills it, and then there's no room for anything else). A bigger creel from the chandlery's counter holds 25 or 40 kg. Lists of what's in it go kind by kind ("Atlantic Mackerel ×30"). Bluefin tuna always go back: in these waters anglers may only catch and release them; yellowfin and little tunny can be kept. Everything else waits in a tackle box: at camp, at Wend Quay, at the Mere Boathouse and at Puffin Cove, and in the lockers of the motor skiff and the bass boat. Open the backpack within reach of one to swap. Press Q to change tackle anywhere, and 1/2 to switch rods.
The top of the backpack has Head back to: Camp (the tent) · The boat · Another camp (map). Use it any time to return to a safe spot beside a tent or to climb back into your boat, keeping everything you carry and have caught. If you ever get stuck on foot, a Stuck? prompt appears that opens it for you. (It waits while a fish is on the line.)
At camp you can light the fire, grill a fish from your creel (it takes half an hour of game time, and the fire must be lit), eat it, or have an oatcake from the tin. Hunger is gentle (with warmth, wet clothes and thirst: see How you feel): you only get a little slower on your feet if you go a whole day without eating, and a cooked fish makes you well fed, which steadies your hands in a fight (the line tightens more slowly) for six hours. Sand smelt and anchovies are too small to keep one by one, a conger is far too big to bring aboard, and the protected eel is only ever watched.
Long days out leave a mark, gently. Your angler feels the weather and the trip, and a word or two by the clock says how you are (Chilly, Damp, Thirsty, Warm, Peckish, Well fed); nothing here ever stops you fishing or does you any harm.
Each of these comes from a real fish at that spot. Press C to look underwater and you'll find it there.
Reading them right. The signs you see are noted as you see them. Fish where one was, soon after, and catch the fish that made it, and you're told what it was: "The birds were right: a shoal of Atlantic mackerel under them. Where gulls and gannets dive, bait has been driven to the top, and something is driving it." The journal's Notes keep each sign: how often you've seen it, how often you've read it, and what you found under it.
The water's colour. Rain and a blow stir up the silt: the shallows go olive-green and you can't see the weed through them, and under the water it's murky. It settles over most of a day. The conditions panel says how it is (clear, a little colour in it, coloured, after the weather). It changes who's feeding: bass, conger and the flatfish hunt by smell and feel and come on in coloured water; the fish that hunt by sight (mackerel, garfish, wrasse, pollack, the breams, squid) do worse in it. The catch log notes it.
The grounds. The journal's Notes turn your own catches into local knowledge, place by place: what you've had there and, once there are three or more of a kind, when they came: "Atlantic mackerel: 14 (best 38 cm), mostly on the flood, at dawn, in summer; most on sabiki feathers." (the tide, the time of day, the season, coloured water, and the bait or lure that took most). Nothing you haven't found out yourself. The map's list of places says what you've had at each.
Field notes. The naturalist's pages: the life of the seabed, the reef and the wreck you've met up close while diving (starfish and brittlestars, urchins, scallops and hermit crabs, lugworm casts, burrowing anemones and sea pens, dahlia, jewel and plumose anemones, dead man's fingers, pink sea fans, sponges, kelp and the red weeds under it, the lobster, and the swan mussels in the lakes), each with its Latin name, a line on how it lives, and where you first met it; and the sea life you've seen from the boat.
Willowhaven is a working harbour, and a catch you keep can do more than go on the grill.
The harbour's people go about their days, by the clock, the weather and the fish. Walk up to one and press E to talk.
Favours. Now and then, when you stop for a word, someone asks you a small favour: Mags needs a good sole for her mother's eightieth, Ruth a big bass for a wedding party, Dougie two mackerel for bait or his pot buoy found (it's adrift at sea: an orange float with a flag, and your map gets a mark near where); Bert wants a box of hooks taken to Hettie, or his pike record beaten; Hettie bets you can't catch a squid off the quay after dark; Kit longs to hear about a whale; Ian about the fin whale; Paco needs a big vieja; Chano would love a photograph of the old grouper in El Bajón's cave. One at a time from each of them, three at most on the go, nothing timed: say Not now and they'll ask again another day. Mags, Ruth, Bert and Paco ask across the counter (in the market, inn, chandlery and bar screens); the rest when you walk up and press E. What they give back: a little money, a keepsake for the shelf at home (Bert's pike plug, Hettie's lucky sandeel, Kit's drawing, Chano's hook), a mark on your map only a local would know, or supper. The journal lists them under Memories → Favours.
They remember you. The first time you stop for a word each day, they may mention the good fish you had yesterday, the trip you've just come back from, or the place you've just found.
What they're up to (Dougie out at his pots, or not going out; what he landed; Hettie's mark and her best fish of the day; Kit on the quay; Ian out after the mackerel; the Puffin coming in or at anchor) is part of the talk at The Lobster Pot, and Chano's morning (and his catch) at Bar El Muelle. There are no seasons or tides in the game yet, so their days follow the clock, the weather and the fish.
You start with £20 in your purse; sold fish show as Sold in the catch log. The money is for small pleasures and helps, never a grind: nothing in the game needs it, and the chandlery's tackle stays free.
The year turns: spring, summer, autumn and winter, a week of days each (a short year, so the seasons come round while you play). A new game starts in mid-spring. The clock shows the season beside the time of day, the notice board gives the day's sunrise and sunset, and a word marks each season's turn.
The big storms off the Atlantic don't come out of nowhere: each gale is known a day ahead. The notice board gives the outlook for today and tomorrow ("Gale warning for today, from about 2:10 pm until 8:20 pm"), and they're rare: once in a couple of weeks in summer, two or three times a week in winter. A gale comes in over hours: the cloud thickens about seven hours before, the rain sets in, then heavy rain, then the storm itself (the wind at a gale, big breaking seas outside, thunder) for four to eight hours, and showers as it clears. You're warned six hours ahead (time to finish up and make for shelter) and again about an hour and a half before (if you're out past the bay, come in now); Bert's trip checklist flags one due within the next half day.
What to do with a gale day: the open sea goes dead and dangerous, but sheltered water fishes: the estuary, the coves, the bay, the lakes and rivers, where the fish feed hard in the blow and in the coloured water for hours after it. Or stay ashore: the inn, the market, the chandlery and the favours are all there, and the harbour's people (Dougie in the lee of the quay, Hettie on the sheltered side) are doing the same. Only Willow Bay's sea gets gales; Las Brasas' trade-wind weather hardly knows one. (Choosing a fixed sky in Settings turns them off.)
The sea rises and falls twice a day, high water coming about fifty minutes later each day, and over a fortnight the tides grow from small neaps to big springs and back (a range of about a metre at springs in the game, a third of that at neaps). The water creeps up the beaches and the slipway and the boats rise with it.
Not everything in the sea is for catching. Keep an eye out:
The journal keeps what you've seen, under Notes → Out on the water (and Memories → Sea life you've seen): first seen when and where, and how many times; the day book lists them on each day's page. When something worth watching happens near you (an otter eating on the bank, a seal following, a heron catching a fish, a tern diving, a cormorant drying its wings) a quiet word says so, one at a time. Photographs know the wildlife in them, and Ruth at the Lobster Pot would very much like to hear if you ever see an otter.
Press F for a small sonar screen. Drag its title bar to put it anywhere (it remembers the spot); double-click the title bar to put it back. The ⤢ button changes its size, and ? explains the colours. In the boat it reads the water under the hull; on shore it works like a castable sonar, reading the water around your rig once it's in. The right edge, marked now, is the latest reading; older readings slide to the left. It shows the real bottom (a thick, bright line is hard rock; a soft one silt or sand), weeds as green strands, your bait or lure as a blue diamond, and fish as echoes: arches whose size and colour hint at how big they are, specks and clouds for small fish, and a little clutter. It never tells you what kind of fish it is.
The sea holds 47 real species of the coast from Royan and the Gironde estuary to Cádiz, each where it really lives (estuary channels and flats, rocks and reefs, sand and mud, shoals and open water), with the habits, baits and fights of its kind. The field guide has a page for each, with its model, where to find it and how to catch it; here they are in brief.
| Where | Species |
|---|---|
| The Wend estuary (brackish) | European seabass, spotted seabass, meagre, thicklip grey mullet, gilthead seabream, European flounder, common sole, Senegalese sole, wedge sole |
| Rocks, reefs and weed | ballan wrasse, black, white, two-banded and redbanded seabream, red porgy, common pandora, common dentex, rubberlip grunt, bastard grunt, pollack, European conger |
| Sand, mud and the seabed | European plaice, sand sole, turbot, tub gurnard, striped seabream |
| Shoals and open water | Atlantic mackerel, Atlantic horse mackerel, European sprat, European sardine, European anchovy, sand smelt, bogue, salema, garfish, bluefish, pompano, Atlantic bonito, little tunny, bullet tuna, Atlantic bluefin tuna |
| The Blue Water's big game | blue shark and shortfin mako (both released, on a wire trace), albacore (schools in summer; marmitako for supper) |
| Not fish | European squid, common cuttlefish, common octopus |
| To watch, not to catch | European eel (critically endangered: it ignores every bait) |
A few to start with: two-banded seabream round the weed and rocks of Willow Bay by day (a worm under a float); sand smelt schooling over the shallow sand (bread, kept shallow); sea bass in the estuary channel at dawn and dusk (a soft sandeel); sardines and horse mackerel shoaling under a light after dark (sabiki feathers); soles on the flats at night (ragworm on the bottom); an octopus in the rocks at dusk (a crab on the bottom, and a steady lift: it clings).
Las Brasas, the volcanic island across the open sea to the south (see Las Brasas), has nineteen kinds of its own on top of the home coast's that live there too:
| At Las Brasas | Species |
|---|---|
| The shallow lava reef | parrotfish (the islands' favourite fish, “vieja”: a peeler crab on the bottom by day), ornate wrasse (bright, bold and a bait thief: let it go), blacktail comber (“cabrilla”: on every rock, it takes a prawn, a fish strip or a ragworm by the rocks; fried whole), grey triggerfish (a prawn; it picks, so wait for the tip to pull right round), Mediterranean moray (a fish strip on the bottom after dark; fried, a classic island dish) |
| El Veril, the drop-off | dusky grouper (in the caves of the wall and the arches off the Roque: catch and release, every one goes back, and never with the speargun), yellowmouth barracuda (shoals off the points at dawn and dusk: a soft sandeel on a wire trace), greater amberjack (the hardest-pulling fish in the game, on a metal jig with the offshore rod: let it go) |
| Shoals | Atlantic chub mackerel (the islands' mackerel: a small casting metal) |
| The blue water's big game | blue marlin, sailfish and longbill spearfish (all released), wahoo (“peto”, a fine supper), dorado (mahi-mahi), yellowfin tuna, smooth hammerhead (released); the blue shark, the mako and the albacore are here too |
| To watch, not to catch | Azores chromis (little dark damselfish in clouds over every reef, white tips to their tails), angelshark (critically endangered: a flat shark lying buried in the sand of El Sebadal, most about after dark), Atlantic trumpetfish (a long tube of a fish hanging head-down over the reef by day) |
The dusky grouper and the chub mackerel are in the Atlantic register; the other seventeen are fish of the warm eastern Atlantic islands outside it, listed in the field guide with their scientific names and where they live, like the freshwater fish.
Fresh water (Reedmere, Fernbeck and Longmere) keeps its own fish, outside the Atlantic catalogue: perch, pike, largemouth bass, mirror carp, tench, roach, rudd, brown trout and grayling, fished as before.
The five fish of Slow Tide's first version (glassminnow, sunperch, drizzlefin, duskfin and mossback) were invented. Real species have taken their places in the water (sand smelt, two-banded seabream, pollack, horse mackerel and conger), and the originals are retired: catches of them stay in your journal under their own names, and the field guide keeps their pages if you have them in your records.
Fish keep to their own waters: lake fish never turn up in the sea, nor sea fish in the lakes.
The places you fish from most have fish of their own, of the kinds that really haunt such places: at Willowhaven, grey mullet cruising the quay wall, gilthead and a conger in its stones, squid under the lamp after dark and sand smelt in the calm water inside; sand smelt and gilthead off the lake landing's pier; mullet and a bass or two at Wend Quay; perch, roach and a waiting pike under the Longmere boathouse. Every pool in Fernbeck holds trout or grayling (often both). None of them were taken from anywhere else: every other fish is where it always was.
Slow Tide is a Progressive Web App. The first time you open it online, it quietly stores the whole game on your device (scripts, styles, fonts, icons; the sounds and shaders are made by the code) and the title screen says Ready to play offline. After that it starts and plays with no connection at all: fishing, the journal and catch log, saving, and every place you've found. To add it to your home screen: on iPhone or iPad, Share → Add to Home Screen; on Android Chrome, ⋮ → Install app; on a computer, the install icon in the address bar.
While you're offline, Offline appears next to the clock, and the journal explains that everything keeps working and saving on this device. If you've switched on cloud saves and signed in, syncing pauses; your progress waits in the browser and goes up when the connection is back, combined with anything newer from your other devices (catches are matched by id, so nothing is counted twice).
New versions arrive safely. When a new version is deployed, the game downloads it in the background and keeps running the old one. On the title screen it switches straight away; during play it offers Update to the new version in the journal, and keeps your progress either way. Saves live in the browser's local storage, which updates never touch.
No account is needed. The game saves by itself in your browser: after every catch, release or kept fish, when you change rods or tackle, cook, eat, sleep, travel back to camp or the boat, every ten seconds while you play, and when you close or hide the page. Refresh or come back next week and you carry on where you were: the time of day and the weather, where you and each boat are, your gear, backpack, saved setups and creel, the camp fire and grill, your journal, catch log, the places you've found and the parts of the map you've explored, and your settings.
The journal's Your progress section shows when the game last saved and has three buttons:
.json file.Your camp, map marks, the list of your photographs, adventures and keepsakes are saved too, and (from save version 6) where each piece of your outing gear is, the car, your plan, loadouts and last trip, and what's on the wall at home. Older saves load as they were: your camping gear stays where it was (at your camp, or rolled up in your backpack), the car waits on the drive at home, and you carry on wherever you were. A drive under way when the game closes finishes when you next load, with you and the car at the car park and nothing packed lost or doubled.
Saves are careful. Each one carries a version number, so a future update can convert old saves instead of breaking them. Every value is checked when loading, so a damaged save can't crash the game. If the save can't be read at all, it is kept aside (never written over) and the game loads the copy from the start of your previous session instead, and says so. A save made by a newer version is never written over. If you open the game in two tabs, the older tab stops saving so the two can't overwrite each other. In a private window, where the browser may refuse to store anything, the game tells you that progress won't be kept.
Press J. The Fish & places pages hold a sketch and notes for every kind you've met, grouped by water (Willow Bay and the coves, the Wend estuary, the outer coast and open sea, fresh water, and Not fish for the squid), the hand-drawn map, the places you've found with what you've caught in each water, keepsakes and your progress. The Catch log pages record every catch:
It shows your heaviest catch, totals and personal bests for each kind, and your recent catches with filters for kind, water, method and what happened to them (25 at a time, with Show more). The Memories pages hold your photographs, adventures and keepsakes, marks, camp and places (see Photographs and memories); Days is the day book and your record (below); Notes holds the grounds, the signs you've read and your field notes (see Reading the water).
Somewhere to sit: the log by the camp fire, your own camp's chair, the armchair by the stove at home, the bench under the lamp on Willowhaven quay (Just sit and watch), or back in the boat when she's at anchor or made fast (Sit back a while). Your angler sits down, the view settles over your shoulder on what's in front of you and drifts slowly round, and time goes by four times as fast. By the fire you hold your hands out to it and it warms you through (you keep it going without thinking about it); at the camp or at home the kettle goes on after a while. Now and then a quiet thought: weather on its way, the tide turning, the sun going down or coming up, the stars, an owl or a curlew, the day so far, something you've learned about the grounds, the season. Move, cast, or press the prompt's key to get up. The day book remembers it: You sat a while by the camp fire as the evening came on.
The feel of the reel. As well as the drag's ratchet (faster and brighter the faster line goes and the tighter it's set), the gears under load and the line singing near breaking, the drag knob now clicks notch by notch, higher and harder as you tighten it, so you can hear where it is; and on a cast the line hisses off the open spool, rising with the speed of the cast.
Every day you go out is written up as a page of the journal (Days) when it ends, when you sleep or at midnight, and in the morning you're told so. It reads the way you'd write it yourself: the weather through the day; where you set out from, how (the boats you took) and where you went, and whether you came back, with the distance on the water, on foot, by car and swimming; what you caught, what you kept and what you let go; your first of a kind and your biggest yet; the dive sites you dived and how deep; the sea life you saw; the places you found; a while sat somewhere; the crossing to Las Brasas or home (setting out, landfall and how long at the helm, the fast passage, or turning back); and, if a gale blew, whether it caught you out on open water, you kept to sheltered water, or you sat it out ashore. Today's page fills in as you go. The book keeps the last sixty days.
Beside it, Your record: days written up, fish caught (kept and let go), kinds, places found, dives (the deepest and your longest breath-hold), dive sites and sea life seen; your best of each kind, the biggest for its kind first; and the fish to remember (near the top of the sizes their kind grows to).
The harbour's challenges are pinned on the board by the door of the Lobster Pot, in Ruth's hand: "Not a competition. Just something to go for." Ten from the bay, the coast slam (a bass, a pollack and a mackerel on one day), every water (sea, estuary, lake and river), twenty-five kinds, a specimen (the top tenth of its kind's sizes), fifty let go, after midnight, fished through a gale (from sheltered water), five dives (every home dive site), under the island (Las Brasas' five), thirty metres, Las Brasas, and a week on the water. Each one done puts a cloth badge on the cork board at home, between the record card and the stove. The harbour's people notice: they'll mention your new badge, or the dive site you were down at, for a day or so.
The journal's third tab, Field guide (also the Field guide button in the backpack's header), has a page for every species in the game: sea and estuary fish, the cephalopods, the freshwater fish (kept apart from the Atlantic catalogue), and the five fictional originals. Search by any name (English, French, Spanish, Portuguese or Latin) or filter to what you have or haven't caught. Preview planned species adds the researched species that aren't in the game yet, clearly marked as such.
Each page shows, before you've caught anything:
In the backpack, each bait, lure, fly and jig lists the species it's Good for (✓ for ones you've caught); each opens that species' page. The catch card and the journal's pages show the same model as the guide (a pencil silhouette until you've caught one).
Plan a fishing trip (on any catchable species' page) puts it together:
Why aren't they biting? If a cast stays quiet for a while, the field guide offers one word on it (Settings → Controls & comfort → Fishing hints: gentle, more or off), and Y asks any time. The answer comes from the simulation itself, for your trip's fish (or the likeliest fish here): whether it eats what's on the hook and can manage the size, whether this is its kind of water and depth at this hour, whether your lure moves the way it likes, whether it's shy of your line, whether the current has carried your rig off, and how the fish that came to look behaved. It never says where a fish is.
Press M (or the map button). The map is drawn from the real ground and water depths, but only where you've been: land and water fill in around you as you travel (further out on the water than in the woods), and the rest stays blank paper. It marks the places you've found (camps as tents, landings as little piers, landmarks with a cross), where each boat is, where you are, and where your best fish of each kind came from. Drag to move it, scroll or pinch to zoom, ◎ to centre on you. Aboard a boat (or the board, or the jet ski) you can keep the map open as you go: she carries on at her throttle notch (or under sail), the helm keys still steer and change the notch, and your mark moves across the map, filling it in as you travel. Beside it: your camps (with Go there), Willowhaven, your boat, your marks, and every place you've found. Your own camp shows as a tent in its own colour, marks as stars and flags, and (after Where the gulls dive) recent gull sightings as little birds. Opened from the field guide, it shades the water that suits a species and frames the nearest of it; this shows where to look, never where a fish is.
Press O (or the gear button, or Settings on the title screen). Everything is kept with your game and changes take effect straight away. Opening a menu never casts, reels or steers.
Graphics settings never change the simulation: the waves the boats ride, the wind on a cast, the currents and every fish are the same on Low as on Cinematic.
At every level the sky now glows warm round a low sun and turns a cooler dusky blue and rose on the far side, with a proper sunrise and a blue hour after dusk; overcast light is softer and more even; and after dark the windows of the haven and the cabin boat glow with warm lamplight.
A note on what this is: Slow Tide is a stylised, low-poly game drawn with three.js and WebGL in the browser. The water uses real planar reflections, a ripple simulation and procedural detail. The lighting, haze and mist are painted rather than physically simulated, and nothing here is photorealistic. Far-off places are drawn only when you're near them, and fish far from you are simulated more coarsely, but never stop.
One shared set of conditions (src/world/conditions.js) moves the water you see, the boats on it, your float and rig, the cast, the trees and the sound. It's a light approximation, not a fluid simulation:
Wind has a direction, a sustained strength that changes slowly with the weather (or as you set it), and gusts: patches of stronger air drifting downwind, visible as darker ruffles on the water. Like a real Atlantic coast it's seldom still: a breeze most days (about 15 to 30 km/h), and on a fair day a sea breeze sets in towards midday, blowing in from the sea and freshening through the afternoon (often 30 to 45 km/h), then dies away in the evening, with lighter air at night. At Las Brasas the trade wind blows steadily from the north-east, 25 to 45 km/h and fresher in the afternoon, as it does in the Canaries. Land breaks it: bays, coves and the lee of a shore get less. It pushes a cast in flight (light tackle and long casts most), drifts an unanchored boat (the high-sided bass boat most) and a float's tip a little, bends the trees and grass, and you hear it rise in the gusts.
Waves are long swell from the open Atlantic (west-south-west), which builds and fades over minutes (some days a bigger one is running) and hardly reaches into the bays, the coves or the estuary, plus a wind sea raised by the local wind, which builds in under a minute and is smaller where the wind has little room. In light air it's a ruffle of short waves; as the wind freshens it builds longer ones too (from about 9 m to 40 m long), about half a metre crest to trough in a moderate breeze and a metre or more in a strong one out in the open, with sharp crests and long troughs. Changing the wind turns and builds the sea gradually; nothing jumps. Running into shallow water the swell grows and steepens over the last few metres, breaks in white on the exposed beaches and is spent before the shallows, so boats sit still on a beach. From a moderate breeze up, the steepest crests of the wind sea break into whitecaps, a few at first and more the fresher it blows. A rough sea breaks up reflections: clouds and the shore mirror only on calm water.
Currents: a gentle drift along the open coast; the Wend running out to sea, fastest in the narrow river, easing over the estuary; and faster water in the channel into Driftwood Cove, round Gannet Isle's points, through the Skerries and over Long Shoal. Sheltered water is slack, and every zone fades smoothly into the next. Water at the seabed runs at about 60% of the surface's. A float goes with the water it sits in; a lure is carried while you work it (its speed through the water is what the fish judge); a jig drifts as it sinks; a bottom rig is carried as it falls, then its lead holds unless the current at the bottom is stronger than its weight can stand (a 5 oz flapper rig holds where a light feeder would roll); fish holding station face into it. The current zones are built for a future tide: today they all run on the ebb.
The conditions panel (top left, N) shows the wind (speed in km/h, where it blows from, arrows as you see them, gusting or sheltered), the current at your rig or under you (m/s) and the sea state in words (glassy, rippled, smooth, slight, moderate) with the wave height. Calm conditions are a complete way to play: every fish can be found in calm water. If you'd like it quieter, Settings → Weather & sea → Sea: Calm keeps light airs and a gentle swell whatever the weather.
Wind lines (the white streaks in the air while you sail, or always, or never: Settings → Weather & sea) show the wind's direction and strength; in a strong wind they drift past more slowly than the wind itself, with short tails, so they never streak across the view.
Cloud saves let a player sign in with their email and carry their game between devices. They are off until you connect a backend; until then nothing about accounts appears in the game. They use Supabase (it has a free tier), talking to it directly from the browser with the public "anon" key. Row level security in the database makes sure each player can only ever read or change their own save.
To switch them on:
supabase/schema.sql and press Run. This creates the slow_tide_saves table and its security rules.https://fishing-game-weld.vercel.app. Under Redirect URLs add https://fishing-game-weld.vercel.app/** and, for branch previews, https://fishing-game-*.vercel.app/**.service_role / secret key: the game and the config function both refuse one.SUPABASE_URL (the Project URL) and SUPABASE_ANON_KEY (the anon key) for Production and Preview. Then redeploy (Deployments → ⋯ → Redeploy)./api/cloud-config on your site: it shows {"enabled": false} until both variables are set.How it behaves:
Not on Vercel? Put the URL and anon key in src/cloud-config.js instead. The anon key is designed to be public; never put any other key there.
Slow Tide's sea is meant to grow into the coast from Royan and the Gironde estuary, along the French Bay of Biscay, the Cantabrian coast, Galicia and Portugal, to the Algarve and the Gulf of Cádiz. The register (src/register.js, with the researched entries in src/registerData.js) is the checklist of fish and cephalopods for it, and the one source of truth for names and real-world facts across the field guide, the journal, the catch card and the water.
It is a researched catalogue, not a complete inventory of everything recorded on this coast: 62 species so far (55 fish, 3 cephalopods, 2 sharks and 2 rays), the ones an angler, snorkeller or fish market of this coast would meet, not the deep-water fish or rare visitors. Each entry has:
The research came from FishBase, SeaLifeBase, DORIS, WoRMS and the Catalog of Fishes, regional checklists and papers (the Portuguese marine checklist, the Galician and Cantabrian lists and IEO guides, the Andalusian catalogue, Ifremer and AZTI surveys, ICES and ICCAT documents) and French, Spanish and Portuguese official rules. It lives in research/register/*.json; node tools/build-register.mjs compiles it into src/registerData.js (a test checks the two match). Stock assessments and landings were used only as evidence of presence, never as counts of species. Of the 372 regional statements, 153 are high confidence, 156 medium and 63 low.
Four things are kept apart: the research catalogue (all 62), the playable roster (the 44 you can catch), observation-only wildlife (in the water to be watched, never caught) and planned or uncertain records. Each card and page says which:
The game's world is one stylised stretch of coast inspired by the whole region, not a map of it, so a southern fish (the urta, the baila, the roncador) can share the water with a northern one; the guide's table of real regions says where each really lives, and how sure that is.
Known gaps. Many Cantabrian, Galician and Cádiz statuses rest only on range statements. The plaice's and sprat's presence south of the Bay of Biscay is poorly documented (low confidence), and the flounder's southern limit is disputed and retreating north. No rod-and-line method was found for plaice, sprat or octopus. Some regulations (minimum sizes, closures) change often and are recorded with their dates; check them before relying on them. INPN/TAXREF and several French government pages could not be read by the research and are not cited.
Identity decisions. The squid of the coves is the European squid, Loligo vulgaris (the usual inshore night-jigging squid; the veined squid L. forbesii is deeper and more northern). The bullet tuna is Auxis rochei (frigate tuna also turns up in Iberian catches). The garfish is Belone belone; the pompano is Trachinotus ovatus (several other fish share its Spanish names).
The fictional originals. Willow Bay's five invented fish have been replaced in the water by real species in the same roles: glassminnow → sand smelt (Atherina presbyter), sunperch → two-banded seabream (Diplodus vulgaris), drizzlefin → pollack (Pollachius pollachius), duskfin → Atlantic horse mackerel (Trachurus trachurus, which now gathers under lights after dark), mossback → European conger (Conger conger). The originals no longer live anywhere; catches of them keep their names in the journal and catch log, and the guide shows them as retired, with a link to their replacement, only if you have them in your records.
Every Atlantic species has an anatomical model built by src/anatomy.js from a recipe in src/anatomy.js (the first six) or src/anatomyAtlantic.js (the rest), following the identification features in the register. Six body plans share the machinery where the animals really are alike:
Each body plan swims its own way, in the vertex shader: a wave down the body for most fish (stiff-bodied, all in the tail, for the tunas), a ripple for flatfish, the whole body for eels, the fin frill for cuttlefish, flapping rear fins for squid, rippling arms for the octopus. In the simulation, shoals keep formation without moving as one, attacked bait balls bulge away from the hunter and re-form, hunting packs (bonito, bluefish, bullet tuna, little tunny, bluefin) drive them to the surface, flatfish lie and glide on the seabed, gurnards and the octopus keep close over it, conger, eel and octopus rest in the rocks by day, and fish holding station face into the current.
Skins are painted from each species' markings at load time; fins are translucent with rays; the sides have a soft sheen. The same model is used in the water, in the guide, on the catch card and in the journal. The five retired fictional fish and the freshwater fish keep their earlier models.
Asset provenance. Every model, skin and texture is generated by the code in src/ (anatomy.js, anatomyAtlantic.js, fish.js, gearArt.js, tackleModels.js); no external models, textures or photographs are used or shipped. Reference descriptions and photographs on DORIS and FishBase were used only as research for shapes, fins and markings.
Measured cost (a 2240 × 1260 view on a laptop; render time per frame, GPU-synchronised, with the browser pane in the background, so read them as relative): about 2,160 animals live in the water and their simulation costs about 0.2 ms per 30 Hz step. In Willow Bay on High, 133 fish in view make 124,000 triangles in 14 instanced draws (a detailed model near the camera, about 1,300–3,700 triangles by species, and a 600-triangle one further off, with no draw at all for a species with none in view), which made no measurable difference to a 16.5 ms render; from inside a sardine shoal underwater, 72,000 fish triangles cost under 0.1 ms on High and 0.75 ms of a 3 ms render on Low. Opening and closing the guide repeatedly, turning every reference model, leaves the studio's GPU memory where it was. The register adds about 93 KB (compressed) to the download and takes about 6 ms to load; the shelter map for the waves is baked in about 0.15 s at start.
Done: the six reference species (the first milestone), then the playable roster of 44 with the eel to watch (The Living Atlantic). What could come next, in order (the batch is on each planned entry):
Alongside: seasons (spawning runs, the tuna's summer in Biscay, the meagre's spring in the Gironde, the pompano's summer in the north), a tide to turn the currents, and anatomical models for the freshwater fish.
| File | What it holds |
|---|---|
src/main.js | Game loop, time of day, weather, the boats, stepping ashore and boarding, travel, interactions, sleep, discoveries, surface clues, HUD, glue between systems |
src/settings.js | The settings: what's in them, checking saved ones, and the Settings panel (tabs, sliders, key rebinding) |
src/map.js | The map: which parts of the coast you've explored, and the map sheet with its markers, zoom and camp list |
src/world/coldwater.js | Hoarfell, Hoar Tarn and the Coldwater: the river's course, falls and water levels, the shape of the fell and the dale, the fell path |
src/world/riverwater.js | The Coldwater's own water above the tide: the flowing ribbon, the falls and their mist, the tarn |
src/world/fell.js | Up the Coldwater: the footbridge, the fingerpost, the bothy, boulders and scree, and the cairn on the top |
src/input.js | Every key as a remappable action, keyboard-layout-aware key names, and the mouse and touch input |
src/world/terrain.js | The shape of the world (now with home's level pad, the lanes and the car parks). One height function shapes the bay, island, cove, the west shore (lake, stream, camp), the Wend estuary and its river, Longmere, Gannet Isle and the skerries, the shoal and the deep. Places, zones and their water (fresh, brackish, salt), piers and walkable decks live here |
src/world/regions.js | What's built beyond the bay: Wend Quay, the Mere Boathouse, Puffin Cove, Gannet Light, the drowned oaks, rocks, buoys, reeds and lilies |
src/world/shore.js | Everything built on the west shore: landing pier and signpost, tent, campfire with smoke and light, tackle chest and rod rack, reeds, lily pads, the fallen alder, fishing pegs, stream boulders, footbridge, stepping stones, ferns, grass and hatching flies |
src/world/habitat.js | The underwater map shared by everything below the surface: depth, weed beds, rock piles, kelp and reefs, the stream's current, and the homes fish live around, for the home waters and each region |
src/world/ecosystem.js | Every fish in the world: schooling, cruising, feeding, resting, fleeing, rising and jumping, and how each one judges and takes a rig (nibbling, following, ambushing, rising, grazing, running). Fixed 30 Hz simulation, slower far away |
research/register/ and run node tools/build-register.mjs, then add an entry to FISH in src/fish.js with the same id and mark it in GAME in src/register.js. Its life block says where it lives (homes, zones, depth), how it moves, when it is active, how it likes a bait to move, and how cautious it is; food says which baits, lures and flies it takes and how keenly; strike says how it takes them; mouth and pull set what size of lure it can manage and how hard it fights. The ecosystem spawns it, and the journal, catch card, 3D model and fish finder pick it up automatically.TACKLE in src/tackle.js (a bait, lure or fly), give it a model in src/tackleModels.js, and add it to the food of the fish that should like it. Rods live in RODS.schools/members and groups/group in each species' life, or fishDensity in src/quality.js.HOUR_SECONDS in src/main.js (40 real seconds per in-game hour by default).KEYS table at the top of src/world/sky.js sets sky, sun and ambient colours for each part of the day.landSDF in src/world/terrain.js; the lake (LAKE), stream (STREAM), camp (CAMP), path (PATH), Longmere (MERE), Gannet Isle (GANNET) and the rest are constants near the top.HULLS in src/boat.js (shape, seat, how it moves) and its mooring in mooring() in src/main.js.DEFAULT_STATE and sanitize in src/save.js. If an old save needs converting, raise SAVE_VERSION and add a step to MIGRATIONS.The browser console has a small helper for tinkering:
slowTide.setHour(19) // jump to golden hour
slowTide.setRain(1) // start rain (0 stops it)
slowTide.teleport(140, -16) // move the boat straight to the cove
slowTide.walkTo(-99, -2) // stand at camp (on foot)
slowTide.board() // back into the boat
slowTide.useSkiffAt(20, 30) // climb into the motor skiff out in the bay
slowTide.useSkiffAt(330, -470, 0, 'bass') // …or another boat: 'row', 'kayak', 'bass'
slowTide.setWeather('heavy') // clear, partly, overcast, light, heavy or auto
slowTide.setGraphics('low') // auto, cinematic, ultra, high, medium or low
slowTide.diving.start('free') // go diving from here ('free' or 'scuba'), if there's deep water by you
slowTide.firstPerson() // into first person (firstPerson(false) to come back out)
slowTide.setWind(0.6) // a fresh breeze (0 to 1)
slowTide.gear('fly', 'nymph') // hand yourself a rod and tackle
slowTide.reset() // start a new game (the old save is kept aside)
slowTide.saveInfo() // how loading went and when the game last saved
slowTide.advance(10) // run the game forward 10 seconds (works even in a background tab)
slowTide.eco.agents // every fish in the world, with its species, size, position and state
vendor/three/LICENSE).assets/fonts/OFL-*.txt).src/. That includes everything added in Life on the coast and Home & the garage (the cottage, the garage and everything in it, the estate car, the gravel lanes, the door, boot and engine sounds, and the workbench's maps, all made by the code): Willowhaven's buildings, quay and signs, the daymark, the Kittiwake and her buoy, the tent, furniture and decorations, the notice board's paper, and the new sounds (stove, footsteps on sand, stone and wood, the camera shutter, curlews, the swell on the headland). The adventures, Ada's pages and the notices are original writing. No outside assets were used.The journal hints at a softer cushion, a potted fern on the bow, and a little cabin by the lake. Other natural next steps: carrying the brass lantern when you walk at night, tides that cover and uncover the estuary flats (and Shell Strand), a second camping kit, diving on the Kittiwake, a boat trailer for the car, a road you can drive to Wend Quay, cooking and resting at the far camps as at home, simple upgrades for the motorboats, and seasons that change which fish are about. For the sea, see the expansion plan.
sw.jstests/setup.mjsvendor/| Z | The mooring prompt (shown above the main one): drop or raise the anchor out on the water, tie up alongside a jetty or quay, cast off, or let go a tow |
| X | Throttle to neutral (stop): the motor idles and the boat coasts on |
| + / − | Throttle up or down a notch (works with a line out too, when W/S work the lure) |
| U | Kayak: lower or raise its electric motor |
| V | First person on or off |
| C | Next view: boat (or on foot) → first person → a fixed underwater view → watching your bait |
| R | Reset the camera: back behind you, first person off |
| F | Fish finder on or off |
| M | Map |
| J or Tab | Journal |
| O | Settings |
| Y | Why aren't they biting? A word from the field guide on what the fish make of your rig (again for the next reason) |
| N | Show or hide the conditions panel: wind, current and sea where you are |
| T (hold) | Let time drift by quickly |
| H | Hide the interface |
| P | Photo mode (take a photograph); on a catch card, a picture of your fish |
| Esc | Reel in the line, leave the underwater view, close a panel |
Save and come back whenever you like: the crossing, where you are and what's happened on it are kept, and you carry on from there. On a crossing, out on open water, E offers the rest of the way by the fast passage.
Landfall. The day book writes it up (Set out across the open Atlantic for Las Brasas in the sailing boat. … Made landfall at Las Brasas after the crossing: 27 minutes at the helm.), and your record keeps your quickest crossing in each boat. Coming back is the same the other way: the crossing home, Gannet Light ahead.
The fast passage is still there, plainly marked on the same card: a few lines of the log go by and you come in off Puerto Brasa (or to her berth at Willowhaven). The same hours go by as the crossing at the helm would take, the yacht burns the same fuel, and the day book has it on the day you arrive. Your gear and your creel come with you; the other boats and the car stay where they are (a boat you leave at Las Brasas stays there, until you sail or motor her home).
Puerto Brasa: a little harbour behind a breakwater of big pale blocks with a green light flashing on its end, a dark basalt quay to tie up at (Z alongside), a fuel pump on the quay, a floating pontoon with finger berths down a gangway from it, white flat-roofed houses with coloured doors and shutters climbing the slope behind, a church with a bell gable, palms, little wooden boats pulled up and moored. Bar El Muelle on the waterfront has a room upstairs: cook what you've kept (the kitchen does the island's fish its own way), sleep, and swap tackle from the shelf. Once you've found it you can head straight back there from the map.
The island: black lava and red cinder, Pico Brasa (330 m, a crater at the top) in the middle and Montaña Roja, a younger red cone, to the east; sea cliffs on the windward north coast; grey-green tabaiba scrub, candelabras of cardón, and Canary pines high on the volcano. Playa Negra, a beach of black sand, lies east of the harbour; Punta del Faro, the long east point, has a lighthouse; Roque del Arco, off the south-west, has a sea arch the swell runs through.
El Bajón: the island's house reef, a short row west of the harbour mouth under a yellow buoy. Lava pinnacles stand up from about twenty metres to three, cragged with boulders and covered, as real Canary reefs are, in sea fans (yellow, orange, red and white gorgonians standing across the current), sponges, orange sun coral, anemones and brown algae. Clouds of Azores chromis hang over the tops, parrotfish and ornate wrasse graze them, blacktail combers watch from every ledge, triggerfish and trumpetfish along the sides, morays in the cracks, a dusky grouper in the cave at the foot, and a school of barracuda hangs over it all; white and two-banded bream, salema, octopus and squid too. The water is clear enough to see it from a boat floating over the pinnacles; dive it to see it properly.
The harbour is full of fish you can see from the quay and the breakwater in the clear water: grey mullet along the quay, wrasse, two-banded bream, salema, combers and a cloud of chromis off the breakwater's blocks, an octopus and a moray in the mole, sand smelt over the sand in the middle, bogue and squid at the mouth, horse mackerel under the lights at night.
Five dive sites at the depths they're known for, in your dive log with home's: El Bajón (3–20 m), Los Arcos off Roque del Arco (4–16 m: arches of old lava to swim through, groupers, morays and combers in the caves round their feet, barracuda and amberjack passing), El Veril south-east of the harbour (20–40 m and the blue below: the wall, groupers in its caves, red porgy and dentex on its ledges, amberjack along it, a sardine shoal for them to hunt), El Sebadal (8–14 m: the seagrass meadow, cuttlefish, sand smelt, salema grazing, striped bream and the angel sharks on the sand; its buoy is a mooring, so no anchor goes down in the seagrass) and Las Coladas on the windward north-west (4–14 m: lava reef, parrotfish, triggerfish, morays; dive it on a calm day). Each but El Bajón has a yellow buoy of its own (El Bajón's is the island's), and Under the island on the board at The Lobster Pot is for diving all five.
The hunters: barracuda and amberjack drive the bogue, the chromis and the sardine to the top, and the bluefish, little tunny and bullet tuna hunt the island's own shoals: the sea boils, Cory's shearwaters come sweeping in low and drop onto the water among the fish, and the gulls with them. In the evening the shearwaters raft up on the sea off the Roque before they fly in to their burrows after dark. Loggerhead turtles drift in the lee, up for a breath now and then, curious about a still diver and off when a boat comes fast. The dolphins here notice a boat from further off.
Under the water: clear, blue and warm, seeing twice as far as at home, and from a boat you can see the seabed and the fish down to a dozen metres or so. Black lava boulders grazed bare by long-spined urchins, brown weed in the shallows, the seagrass meadow of El Sebadal off the south-east, the rough reef of Las Coladas (old lava tongues on the north-west), more arches under the water off the Roque, sea fans, sponges and sun coral on the rock reefs below the surge, black coral down the walls, and El Veril, the drop-off, where the narrow shelf round the island falls away from twenty-odd metres into the deep blue.
The weather: the trade wind blows from the north-east almost all the time, steady and seldom calm; the swell works on the windward north and west while the lee (the south, where the harbour is) stays calm; the Canary current runs south-west, a little faster off the points. Mostly fine: cloud now and then, a passing shower, very seldom a storm. After dark, shearwaters wail over the cliffs as they come in to their burrows.
The fish: the home coast's fish that live there too (white and two-banded seabream, salema, bogue, red porgy and dentex, striped seabream and palometa off the beach, octopus in the lava, cuttlefish on the seagrass, grey mullet in the harbour, shoals of horse mackerel, sardine and bogue, bluefish, little tunny and bullet tuna off the drop-off; the field guide says where to look for each there), and twelve of the island's own: parrotfish, ornate wrasse, blacktail combers, triggerfish and morays on the lava reef, dusky groupers (to release), barracuda and amberjack along the drop-off, chub mackerel shoals, and the Azores chromis, the angelshark and the trumpetfish to watch (see What's out there). Ask Paco what's biting: he reads it off the island's fish as they are that hour.
Storms: now and then heavy rain turns into a storm (or choose Storm in Settings → Weather & sea). The wind rises to a gale, with harder gusts and a howl in it; over a minute or two the big seas roll in from the Atlantic, far longer and higher than the everyday swell (four to seven metres crest to trough on the open coast), standing up in steep peaks with long troughs between, their crests breaking white and the foam blown down the wind in streaks; spray flies off the breaking crests and off your bow as she plunges into them. The sky goes low and dark slate, the rain drives slantwise, and lightning strikes out over the sea and the hills (flashing the whole sky, often twice) with the thunder rolling in after it, later the further off it struck (a kilometre in three seconds). Every boat is thrown about far more, but none is ever tipped over. The coast still shelters: the bay, the coves and the estuary stay much calmer, and the big seas have spent themselves before the shallows, so a storm is a time to run for home (the game says so if you're out in the rowing boat, the kayak or under sail). A storm takes longer to die away than to come. With Reduce motion on (Controls & comfort), the lightning never flashes the screen; the thunder still rolls.
src/world/fishRender.js | Draws the ecosystem's fish (a near and a far instanced draw per species, skipped when none are in view) with their swimming motion |
src/grounds.js | Learning the grounds: the signs on the water and what was under them, what your catches say about each place, the water's colour, the naturalist's notes |
src/daybook.js | The day book: today's notes, each day's page in words, your record, the harbour's challenges and their badges |
src/world/wildlife.js | The quieter wildlife at home: otters on the quiet waters, herons, cormorants, terns and oystercatchers, their shyness, calls and moments |
src/world/divesites.js | The dive sites, home's and Las Brasas': where they are, the Hound's shape, the solid rock a diver and the sites' fish keep out of |
src/crossing.js | The crossing to Las Brasas: the route, the wind coming round into the trade, the ocean swell and the yacht's seakindly speed, the boats fit for it, what's met along the way, and the crossing in the save |
src/world/crossingLife.js | Out on the crossing: the rafts of floating weed, and flying fish off the bow |
src/world/havenHouses.js | Willowhaven's buildings, one by one, and the two you walk into: the chandlery and The Lobster Pot, their furniture, doors, cutaway and the places the harbour's people stand and sit inside |
src/world/divesiteWorld.js | What the dive sites look like: the buoys, the arch and boulders, the kelp forest, the anchor and its chain, the Hound and the life on it |
src/world/seabed.js | The small life of the seabed, laid out round you while you're under the water |
src/world/underwater.js | Weed beds, submerged rocks, particles, light shafts, bubbles, and the colour, haze and sound blend as the camera crosses the waterline |
src/world/caustics.js | Dancing light on the seabed and rocks |
src/world/world.js | Terrain mesh (with a finer patch over the west shore), trees, rocks, jetty, cove props, Gull Rock, gulls, fireflies, and the obstacles you bump into on foot |
src/world/water.js | Water shader (swell and chop from the shared conditions, peaked storm seas, depth colour, gusts carried downwind, wavelets, reflections, ripples, sun glints, surf, whitecaps, breaking crests and wind-blown foam, rain rings, lantern glow, fresh-water tint, flowing currents, the view from below) |
src/world/storm.js | A storm's show: lightning bolts and flashes, the thunder after them, spray off the breaking crests and a plunging bow |
src/world/waterfx.js | The mirrored view for reflections, and the ripple field every ripple is drawn into |
src/world/mist.js | Drifting morning and evening mist over the water |
src/world/surface.js | Fine surface detail: grain and the wet band on the shore, sand ripples, wood grain, cork |
src/world/sky.js | Day cycle colours, sun and moon, sky dome, clouds |
src/camera.js | The views (boat, on foot, first person, underwater, bait), their limits and smooth transitions |
src/firstperson.js | First person: where the rod is held in front of your eyes for each moment of fishing, and its springy whip |
src/world/forecast.js | Gales: when they come (by the season), how they build and clear, the board's outlook, the warnings, and the fishing in a blow |
src/world/season.js | The year: seasons, sunrise and sunset, warmth, each fish's seasons, the rivers' flow, the leaves' colour |
src/world/tide.js | The tide: high and low water, springs and neaps, the sea's level and the streams' flow, the fish's feeding on a running tide, tide times in words |
src/world/sealife.js, src/world/seaglow.js, src/anatomySea.js | Sea life to watch: dolphin pods that ride a bow wave, grey seals, gannets plunging on shoals, whales surfacing with their blows; the sea glowing at night; the whales' and dolphins' models (with flat flukes and an up-and-down swim) |
src/boat.js | The ten boats (rowing boat, motor skiff, kayak, bass boat, cabin boat, sailing boat, sport-fishing yacht, centre console, windsurf board, jet ski): hulls, the cabins, the sailing rig and its cloth, the windsurf rig and the windsurfer's stance and falls, the jet ski's saddle, bars, jet and jumps, the yacht's twin inboards, hardtop, outriggers and fighting chair, the console and its T-top, the standing angler who turns to face the line, the figure aboard, oars, paddle, outboards and trolling motor, rods, lantern and anchor; their physics (drift in wind and current, riding the waves, under sail, an oar when the motor's dead), draft and collisions |
src/sailing.js | The wind on the sail: apparent wind, angle of attack, lift and drag, luffing, stalling and irons, the hull and centreboard, heel |
src/sailui.js | The sailing panel: her from above with the wind and the no-go zone, the sheet, her speed |
src/world/windlines.js | Wind lines: white streaks carried through the air by the wind |
src/fuel.js | Fuel: tanks for the car and the motorboats, the electric motor's battery, the jerry can, the pumps' fills, what a drive takes, and the help you get when you run dry |
src/firstTrip.js | The first-trip guide: its steps, what counts as each one done, where it points, and its words for keyboard, controller and touch |
src/gamepad.js | Game controllers: the Gamepad API, the dead zone, which button presses which action where, and moving round the menus |
src/walker.js | You on foot: the character, walking and jogging, wading, slopes and obstacles, and how you show you're cold, hot or having a drink |
src/comfort.js | How you feel: warmth (the air, wind, sun, height, clothes, work, shelter and fire), wet clothes, thirst, the water bottle and packed rolls, the words for the HUD, the gentle effects, and the Character needs setting |
src/dress.js | What the figure wears, on foot and in the boat: the raincoat, the jumper or a shirt, the sun hat or the woolly hat, darker when wet |
src/tackle.js | Rods (lines, rigs, casting weight, range), baits, lures, flies and jigs, ready-made setups, and the checks that refuse impossible combinations |
src/tackleModels.js | The little models on the end of the line: float, indicator, lead, baits, lures and flies |
src/fishing.js | Aiming and casting (planning where a cast lands, wind, overloading, obstructions), the ways a rig behaves in the water, bites and bite alerts, hooking, the fight, landing, releasing and keeping |
src/fight.js | The fight as plain numbers: tension against the line's strength, the reel's drag, fish stamina, surges, turns and leaps, tiring, side pressure, the current and the rod's stiffness, why a line breaks or a fish comes off, and the difficulty levels |
src/behaviour.js | Fish as individuals (condition, weight, vigour, temper), what each kind likes (current, rough water, bright light, disturbance, how jumpy it is), its mood in the water it's in, why it turned away, and the Fish behaviour levels |
src/world/brasa.js | Las Brasas, far to the south: the island's shape (heights, the harbour, the beach, the sebadal, the drop-off), its waters, its current, its seabed's weed and rock, and its places |
src/world/brasaWorld.js | What Las Brasas looks like: its ground's colours, and Puerto Brasa (quay, fuel pump, pontoon, breakwater, village, church, Bar El Muelle), the lighthouse, the sea arch and the arches under the water, palms, scrub and pines, boulders and urchins, the reefs' sea fans, sponges, sun coral, anemones and black coral, El Bajón's buoy, the little boats |
src/southFish.js | Las Brasas' fish: which of the home coast's live there too, and the island's own species |
src/fishline.js | The fishing line between the rod tip and the rig or fish: a string of points that hangs, blows in the wind, lies on the water and drifts with the current, and comes straight under load |
src/offline.js | Registers the service worker, reports when the game is ready offline, watches the connection, and applies updates safely |
sw.js | The service worker: stores every game file for offline play, one cache per version |
tools/build-sw.mjs | Writes the file list and version into sw.js (--check reports if it's out of date) |
vercel.json | Runs tools/build-sw.mjs on every Vercel deploy |
src/fish.js | The species list (the first species here, the Atlantic roster appended from atlantic.js), weights, models and journal sketches |
src/anatomy.js | Anatomical models of the reference species: body plans for fish, flatfish and cuttlefish, fins, eyes, painted skins, and the swimming motion |
src/register.js | The Atlantic species register: regions, statuses, what the game has done with each species, the expansion batches, the fictional originals and their proposed replacements |
src/registerData.js | The register's researched entries (generated by tools/build-register.mjs from research/register/) |
src/guide.js | The field guide: the index, the species pages, recommended setups worked out from the tackle rules, habits read from the simulation, and the trip planner |
src/trip.js | Fishing trips: suitable waters for a species (from the map's habitat data), starting, summarising and ending a trip |
src/advice.js | Why nothing is biting: what the simulation makes of the rig in the water, most telling reason first |
src/atlantic.js | The Atlantic roster added in The Living Atlantic: where each species lives, how it behaves, what it eats and how it takes it |
src/anatomyAtlantic.js | The anatomical recipes for those species (and the upgraded first ones) |
src/habits.js | The hours fish keep (day, dusk, night), shared by the species definitions |
src/world/conditions.js | Wind (with gusts and shelter), swell and wind chop, currents (with zones ready for a tide), the shelter map, and the words and units for them |
research/register/ | The species research, as JSON, with every source |
tools/build-register.mjs | Compiles the research into src/registerData.js (--check reports if it's out of date) |
src/pack.js | The backpack: the equipment browser, the selected piece with its compatibility checks, and your setup as rigged |
src/gearArt.js | Models of every rod (with its reel), line spool, float, rig, leader, bait, lure, fly and squid jig, built from the tackle data by id |
src/gearView.js | The backpack's studio: one small renderer that makes cached thumbnails and the turnable preview |
src/camp.js | The camp sheet: the fire, grill or stove, food and hunger, sleep, your own camp's controls (name, tent, lantern, decorations, its camping gear, moving and packing up), and home's kitchen and bed |
src/outing.js | Going out, as plain rules: where every piece of outing gear is (backpack, car, garage, camp) and moving it without copies, the boot's room, loadouts, the destinations, suggestions from the field guide, the check before you leave, and what lives where you're going |
src/workbench.js | The workbench's planning sheet, and the smaller sheet for the car's boot, the camping shelf, the wall at home and "where to?" |
src/car.js | The car: its model (boot, cargo, lights, dashboard), driving (throttle, brakes, steering, slopes), what stops it, and putting it back on the lane |
src/world/home.js | The cottage and the garage (walls you walk between, doors that open, the roof that lifts away), the rod rack, camping shelf and wall that show what's really there, the workbench's map, the gravel lanes and car parks |
src/campsite.js | Your own camps as plain rules: the kit, the footprint, where a camp may go (and why not), finding a spot nearby, storage, packing up, moving, cooking, and checking saved camps |
src/siteWorld.js | What those rules ask of the world (ground, water, paths, obstacles, doorways and keep-clear areas), from the terrain and the obstacle grid |
src/campView.js | Your camp in 3D: the tent with its fly sheet moving in the wind, the furniture and decorations, the lantern light, and the placement outline |
src/placement.js | Choosing where to pitch: the outline following the ground, turning and nudging, and the panel |
src/world/coast.js | Willowhaven (quay, pontoon and fuel point, slipway, cottages, chandlery, The Lobster Pot, the fish market and its slate, notice board, bench, lamp), the punt and heron, Cove Head and its daymark, Shell Strand's shelter, and the Kittiwake and her buoy |
src/harbour.js | The notice board's contents, read from the conditions, the ecosystem and the gulls |
src/market.js, src/innTalk.js, src/harbourView.js | The harbour: fish prices, the day's demand, freshness and the kitchens' orders; the stories, advice and rumours at the bar; the sheet for the market, The Lobster Pot, Bar El Muelle and the chandlery's counter (and the market's slate) |
src/shop.js | The chandlery's counter: creel sizes, ice and the cool-lined creel keeping fish fresh, fresh bait, line wear and respooling |
src/requests.js | The favours the harbour's people ask of you (what, how it's done, what they give back), and what they remember of you |
src/townsfolk.js, src/world/folk.js | The harbour's people: their days (by the clock, the weather and the fish), the paths they walk round Willowhaven, Dougie's trip to his pots, Hettie's marks and catches, what they say; and how they and the Morning Star look |
src/adventures.js | The adventures, Ada's pages and the keepsakes, and how steps are recognised in any order |
src/photos.js | Taking photographs, the album's picture store (IndexedDB), and downloads |
src/memories.js | The journal's Memories pages |
src/sonar.js | The fish finder (boat and castable), its echoes, and dragging and sizing the panel |
src/journal.js | The journal pages, catch log (totals, bests, weights, filters) and hand-drawn map |
src/save.js | Saving and loading in the browser: the versioned save format, checks, migrations, backups, and combining two saves |
src/cloud.js | Optional cloud saves: email sign-in and syncing with Supabase |
src/cloud-config.js | Where to put the Supabase address and anon key if you don't host on Vercel |
api/cloud-config.js | Vercel function that hands the game SUPABASE_URL and SUPABASE_ANON_KEY (the public key only) |
supabase/schema.sql | The cloud save table and its row level security rules |
src/audio.js | All sound, synthesised live: water, wind, rain, the stream, the campfire, birds, frogs, crickets, footsteps, the bite alarm, and the generative music |
src/effects.js | Ripples, splashes, flashes, the wake and water lapping on the hull |
src/touch.js | On-screen controls for phones and tablets |
src/quality.js | Graphics presets (Low to Cinematic), the individual graphics options, and the frame-rate watcher behind Auto |
src/dive.js | Diving's rules: a held breath and the turn mark, a tank of air and the reserve, safety stops, what may be speared, how a shot meets a fish, how fish take to a diver |
src/diver.js | You in the water: swimming where you look, fins, buoyancy, the current, the diver's figure, the speargun and its shaft on its line |
src/post.js | The finishing pass of Ultra and Cinematic: glow, sun shafts, the hour's colour grade and the vignette |
tools/fightsim.mjs, tools/ecosim.mjs | Headless tuning tools for the fight and the ecosystem (see Tests) |
vendor/three/ | three.js r160 (MIT licence) |
assets/ | Fonts (SIL Open Font License), icons, and the link-preview image |
ADVENTURESsrc/adventures.jscheckDECOR in src/campsite.js and give it a model in furnitureParts in src/campView.js.src/main.js (lanternReach and takeLantern) and its prop in buildCove in src/world/world.js.