Fishing Joy 浏览器捕鱼游戏
Fishing Joy 是一个 WebGL 街机捕鱼项目,包含自定义水波着色器、捕获概率引擎和低延迟音效,直接在浏览器中游玩。
What it is / 项目是什么
A WebGL arcade fishing game with custom water shaders, a tuned RTP capture engine, and low-latency audio. Aim, shoot, and reel in the big ones.
浏览器里的欢乐捕鱼。WebGL 水波着色器、RTP 概率引擎、低延迟音效,鱼群阵列巡航,瞄准、开炮、爆金币。
How it works / 实现原理
游戏建立在 PixiJS v8 上,水面用自定义片段着色器实现折射、波纹和光斑。鱼群行为采用简化版的 boids 算法,让鱼按队列前进同时各自有微小扰动,看上去更自然。开炮命中后的概率结算用一个可配置的 RTP(return-to-player)模型,保证短期随机性同时不让玩家感觉被骗。音效用 Tone.js 调度,把命中、爆炸、金币声做到 30ms 以内的延迟。
Who it is for / 适合谁
喜欢轻量街机玩法、WebGL 视觉效果和浏览器小游戏的玩家。
Typical use cases / 常见使用场景
- 休闲时玩两把消磨时间
- WebGL 学习素材:水面着色器和粒子效果
- 体验"街机捕鱼"在浏览器里的实现可能性
Key features / 主要功能
- WebGL 水波和鱼群巡航效果
- 调校过的捕获概率与反馈节奏
- 低延迟音效和浏览器内即时游玩体验
Design notes / 设计取舍
Fishing Joy 不是商业捕鱼游戏的复刻,而是一个技术 demo + 玩具。我们没有内购也没有真金钱奖励——所有金币都是装饰性的。这样做是为了保留"捕鱼"的反馈节奏感,同时不复制商业版本那些容易引导赌博心理的设计。
Technology stack / 技术栈
Each layer below was chosen for what it lets the project avoid as much as what it enables. Together they shape the latency, the build pipeline, and how quickly new ideas can be tried in production.
下面这些选择,更多是为了排除某些复杂度,而不只是为了“用上”。它们共同决定了项目的延迟特性、构建流水线,以及把一个想法跑通的最短路径。
PixiJS v8
A WebGL-first 2D renderer optimised for sprites, particles, and high-frame-rate canvas work.
WebGL
GPU-accelerated rendering inside the browser, enabling effects and throughput that the DOM cannot match.
Tone.js
A Web Audio framework for music programming — synthesis, scheduling, and signal routing with familiar musical concepts.
FAQ / 常见问题
游戏免费吗?
完全免费,没有内购。
为什么有时卡顿?
游戏需要 WebGL 和较新的浏览器。低端设备或老 GPU 上可能掉帧。可以尝试关闭其他标签页,或在桌面端打开。
会出移动端版本吗?
当前版本已经做了移动端适配,但触屏体验和桌面端略有差异。后续可能会单独优化。
代码开源吗?
当前不开源。如果想交流实现细节(特别是水面着色器和命中概率引擎),可以邮件联系。
More projects from jiligulu
If this project struck a chord, the same hands are behind these. Each one was built to answer a different question — and each one borrows lessons from the rest.
拼豆像素图生成器
A pixel-bead pattern generator for turning source images into bead-friendly pixel art references and craft layouts.
Read morePersonal web appMandy 专属治愈站
A personal healing station with 450+ curated quotes, song lyrics, daily challenges, mood tracking, and anniversary counter. Built with love.
Read moreDesign toolColorQRCode
Free online QR code generator and AI color palette tool. Custom colors, multiple formats, WCAG accessibility checking, and Tailwind CSS export.
Read moreContinue reading
The blog goes deeper into the ideas behind Fishing Joy. These pieces unpack the psychology, the engineering trade-offs, and the design questions this project raises.
- 11 min read
拖延不是懒,是情绪调节问题 / Procrastination Isn't Laziness, It's Emotion Regulation
你拖延某件事的真正原因,几乎从来不是"我懒",而是"做这件事会让我感觉不好"。Pychyl 和 Sirois 这两位拖延心理学家的研究把这事讲得很硬,也带来一组完全不一样的应对方法。/ The real reason you procrastinate on something almost never reduces to "I'm lazy." It's "doing this would make me feel bad." Tim Pychyl and Fuschia Sirois have spent decades demonstrating this — and the implications change what a useful response looks like.
- 10 min read
独处不等于孤独 / Solitude Is Not the Same as Loneliness
中文里"独处"和"孤独"经常被混着用,神经科学和心理学却把它们当成两件几乎相反的事——前者是恢复,后者是消耗。这篇讲一下两者的差别、独处的具体好处,以及为什么现代生活把独处变得越来越难。/ Chinese readers often blur "solitude" and "loneliness"; neuroscience and psychology treat them as nearly opposite phenomena — one restores, the other drains. This piece spells out the difference, what solitude actually does, and why modern life makes it so hard to access.
- 9 min read
你在 GitHub、LinkedIn、Twitter 上是同一个人吗?/ Are You the Same Person on GitHub, LinkedIn, and Twitter?
程序员、设计师、做产品的人——基本上每个互联网工作者,都在三五个平台上有不同程度割裂的"自己"。这种割裂是策略上的成熟,还是身份层面的代价?/ Engineers, designers, product folks — basically everyone who works online maintains some level of fractured self across three or five platforms. Is that fracture strategic maturity, or an identity-level cost?