Fishoria is not just another browser game. It is a highly interactive, state-of-the-art web-based fishing simulator, blending mesmerizing WebGL graphics with uncompromised gameplay realism.
Feel the adrenaline rush of fighting a trophy catch, carefully select your tackle, and adapt to changing weather conditions. Fishoria is designed to deliver a genuine fishing experience directly in your browser.
Living Ecosystem & Advanced Fish AI Forget boring, predictable algorithms. The fish in Fishoria have unique behavior profiles-varying in aggression, curiosity, and mobility. They adapt to environmental shifts: seeking preferred depths, reacting to weather changes, and following strict time-of-day activity cycles. Outsmarting each species requires the right strategy and perfect timing.
The Ultimate Reeling Thrill This isn't just "click-to-catch". Our reeling mini-game calculates line tension physics, dynamic fish struggle forces, and the durability of every single piece of your tackle. Experience the depth of spinning where realistic retrieval techniques-jigging, stop-and-go, or steady pulling-directly dictate your success with predators. Pull too hard? Say goodbye to your favorite lure and the trophy.
Three Distinct Fishing Styles Float, feeder, or spinning? Each fishing method features unique physics and behavior. Watch the micro-dips of the float, observe the tension on the feeder quiver tip, or experiment with various spinning retrieval techniques.
A Dynamic, Breathing World Sun setting and the sky getting cloudy? Brace for rain! The weather completely alters ecosystem behavior, predator activity, and bite probabilities, creating a unique atmosphere accompanied by dynamic audio.
Deep Economy & Progression
Start with a basic float rod, but as you progress-gain experience (
Ecosystem Surprises Rewarding experiences are sometimes purely unexpected. Instead of a trophy carp, you might reel in an old boot or snag on an underwater branch. A complex quest system encourages you to explore every single corner of the lake.
Global Community & Real-time Interaction Fast and secure registration (including Google OAuth), cloud saving for your profile with custom avatar uploads (Supabase Storage), and detailed statistics. Connect with other anglers through a real-time Socket.io chat system featuring dynamic lake-based rooms, smart Redis-powered unread message synchronization, and live catch broadcasts that create a truly living, competitive atmosphere.
Full Immersion: Visuals & Audio We have polished every single detail: water droplets streaming down your screen, the iconic sound of the reel drag screaming when a fish pulls, and even meteor showers lighting up the night sky. The ambient sounds dynamically adapt to the weather.
| Category | Technology |
|---|---|
| UI Framework | React 19 with React Compiler (auto-memoization) |
| Bundler | Vite 8 |
| Rendering | PixiJS 8 – WebGL 2D graphics, particle systems |
| State | Redux Toolkit – global game state |
| Data Fetching | TanStack Query v5 – server state, caching |
| Routing | React Router 7 |
| i18n | i18next |
| Forms | React Hook Form |
| Math | simplex-noise – procedural generation |
| Language | TypeScript 5 |
| Category | Technology |
|---|---|
| Framework | NestJS 11 |
| Real-time | Socket.io – for multiplayer & synchronization |
| ORM | Prisma 7 with @prisma/adapter-pg |
| Database | PostgreSQL (Supabase) |
| Caching | Redis (Upstash) – REST-based |
| Validation | Zod 4 & nestjs-zod |
| Auth | Passport.js – JWT, Google OAuth, Local |
| Mailing | Nodemailer – Gmail SMTP |
| Language | TypeScript 5 |
| Category | Technology |
|---|---|
| Monorepo Run | Concurrently – parallel dev |
| Hosting | Vercel – client & server deployments |
| Git Hooks | Husky – pre-commit automation |
| Lint Staged | lint-staged – incremental linting |
| Linting | ESLint 9 + Prettier |
| Unused Code | Knip – dead export & dependency detection |
- Node.js ≥ 18
- Yarn (package manager)
- PostgreSQL database (or Supabase account)
- Redis instance (or Upstash account)
git clone https://github.com/your-repo/fishoria.git
cd fishoria
# Install root dependencies (Husky, lint-staged, concurrently)
yarn install
# Install client dependencies
cd client && yarn install && cd ..
# Install main server dependencies
cd server && yarn install && cd ..
# Install online server dependencies
cd online_server && yarn install && cd ..# Client
cp client/.env.example client/.env
# Main Server
cp server/.env.example server/.env
# Online Server
cp online_server/.env.example online_server/.envEdit the .env files with your credentials. See each directory's README for details.
cd server
# Apply migrations
yarn prisma:migrate
# Generate Prisma client
yarn prisma:generate
# Seed initial data (news, quests, achievements)
yarn prisma:seed
cd ../online_server
# Generate Prisma client for online server
yarn prisma:generateThe easiest way to run everything at once is using the root command:
yarn devThis will simultaneously start:
- Client dev server (
localhost:5173) - Main API server (
localhost:5000) - Online/Socket server (
localhost:5001)
| Command | Description |
|---|---|
yarn dev |
Run Client, Server, and Online servers simultaneously |
yarn translations:check |
Check i18n translation coverage |
yarn prepare |
Install Husky git hooks |
| Command | Description |
|---|---|
yarn dev |
Start Vite dev server |
yarn build |
Lint + compile + production build |
yarn preview |
Preview production build locally |
yarn lint / lint:fix |
ESLint check / auto-fix |
yarn format |
Format with Prettier |
yarn convert |
Convert images to WebP |
yarn knip |
Detect unused code |
| Command | Description |
|---|---|
yarn dev |
Start in watch mode |
yarn build |
Lint + compile + NestJS build |
yarn start:prod |
Run production build |
yarn lint / lint:fix |
ESLint check / auto-fix |
yarn format |
Format with Prettier |
yarn prisma:migrate |
Run database migrations |
yarn prisma:generate |
Generate Prisma client |
yarn prisma:seed |
Seed database |
yarn prisma:studio |
Open Prisma Studio GUI |
yarn knip |
Detect unused code |
| Command | Description |
|---|---|
yarn dev |
Start in watch mode |
yarn build |
Lint + compile + NestJS build |
yarn lint / lint:fix |
ESLint check / auto-fix |
yarn format |
Format with Prettier |
yarn prisma:generate |
Generate Prisma client |
| Document | Description |
|---|---|
| Client README | Frontend architecture, game engine, UI |
| Server README | Backend API, all endpoints, setup |
| Online Server README | Socket server for multiplayer features |
| In-Game Terminal Commands | Debug shell commands reference |
| Server Internal Wiki | 12 detailed module docs (auth, game, etc.) |
This project is licensed under the License – see the LICENCE file for details.
