Skip to content

Sp1r1tual/fishoria

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

132 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Fishoria β€” A Fishing Simulator in Your Browser

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. No compromises on quality or mechanics!


Fishoria


Why Will Fishoria Hook You From the First Minute?

🌊 Living Ecosystem & Advanced Fish AI Forget boring, predictable algorithms. The fish in Fishoria have their own distinct behaviors! They migrate, seek comfortable depths, react differently to the time of day, and get spooked by the sound of a splash. Outsmarting each one is a true challenge.

🎣 The Ultimate Reeling Thrill This isn't just "click-to-catch". Our reeling mini-game calculates line tension physics, fish fatigue, and the durability of every single piece of your tackle. 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, sonar effective radius, and creates a unique atmosphere accompanied by dynamic audio.

πŸ›οΈ Deep Economy & Progression Start with a basic float rod, but as you progressβ€”gain experience ($XP$), complete quests, earn in-game currency, and purchase professional gear in the shop. Don't forget maintenance: every epic struggle with a monster fish progressively wears down your arsenal!

πŸ“¦ 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 Fast and secure registration (including Google OAuth), cloud saving for your profile, and detailed statistics. Compete against others, break your own personal records, and build a collection of the rarest fish species.

✨ 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.


Tech Stack

Client β€” Frontend Engine

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 + react-i18next
Forms React Hook Form
Math simplex-noise β€” procedural generation
Analytics Vercel Analytics
Language TypeScript 5

Server β€” Backend Core

Category Technology
Framework NestJS 11
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
Docs Swagger / OpenAPI via @nestjs/swagger
Language TypeScript 5

DevOps & Quality

Category Technology
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

Getting Started

Prerequisites

  • Node.js β‰₯ 18
  • Yarn (package manager)
  • PostgreSQL database (or Supabase account)
  • Redis instance (or Upstash account)

1. Clone & Install

git clone https://github.com/your-repo/fishoria.git
cd fishoria

# Install root dependencies (Husky, lint-staged)
yarn install

# Install client dependencies
cd client && yarn install && cd ..

# Install server dependencies
cd server && yarn install && cd ..

2. Configure Environment

# Client
cp client/.env.example client/.env

# Server
cp server/.env.example server/.env

Edit both .env files with your credentials. See each directory's README for details.

3. Database Setup

cd server

# Apply migrations
yarn prisma:migrate

# Generate Prisma client
yarn prisma:generate

# Seed initial data (news, quests, achievements)
yarn prisma:seed

4. Run in Development

# Terminal 1 β€” Start the API server (port 5000)
cd server && yarn dev

# Terminal 2 β€” Start the client dev server (port 5173)
cd client && yarn dev

Open http://localhost:5173 in your browser and start fishing!


Available Scripts

Root (Monorepo)

Command Description
yarn translations:check Check i18n translation coverage
yarn prepare Install Husky git hooks

Client (/client)

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

Server (/server)

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

Documentation

Document Description
Client README Frontend architecture, game engine, UI
Server README Backend API, all endpoints, setup
In-Game Terminal Commands Debug shell commands reference
Server Internal Wiki 12 detailed module docs (auth, game, etc.)

License

This project is licensed under the License – see the LICENCE file for details.

About

Dive into a realistic fishing experience right in your browser - no installation required, no restrictions. Dynamic weather changes, lifelike fish behavior, and sophisticated physics create a fully immersive experience. Here, every cast counts, and every fish is the result of your strategy, patience, and skill.

Topics

Resources

License

Stars

Watchers

Forks

Languages