主题
我把 5 款开源网页游戏搬上了 Cloudflare:不用下载,点开就玩
先给结果:https://games.cosmocat.dev —— 5 款开源游戏,链接点开就能玩。
不用下载,不用注册,不用装 App,服务器成本 0 元。
这不是「做个导航站指向别人的游戏」,是真把源码部署起来,每款还配了 3 篇中文攻略,一共 15 篇。
一、为什么是这 5 款
选型只认两条铁律:纯静态(能直接扔 Pages)+ 许可干净(MIT/BSD 能再分发)。
按这两条筛,被我砍掉的比留下的多:
- 有一个棋类项目要 PHP + websocket 后端 → 砍
- 有一个五子棋项目根本没有许可证 → 砍(无许可证 = 保留所有权利,不能转分发)
- 有个象棋引擎是 GPL + Java/PHP → 砍
- 有个象棋引擎 114MB 且要编译 → 砍
留下的 5 款,理由各不相同:
| 游戏 | 选它的理由 |
|---|---|
| 2048 | 国民级数字合成,搜索意图最稳 |
| 扫雷(Kaboom) | 内置 SAT 求解器,50/50 死局能算出必开格 |
| 俄罗斯方块 | 零外部依赖的纯 canvas,带音效 |
| 数独 | 自带生成器 + 求解器 + 候选数计算 |
| 五子棋 | 15 路棋盘、AI 三档、悔棋,AI 跑 Web Worker |
二、真机验收,抓到两个上游 README 都没说的坑
写攻略的环节我要求每个环节都真机实测,结果推翻了我自己原来写进攻略的两条说法:
坑一:这版俄罗斯方块根本没有计分。
我第一版攻略写的是「自然下落 1 分 / 硬降 2 分」——这是网上通行的说法。但我去翻了源码,score 这个变量在 tetris.js / controller.js / render.js 三个文件里出现 0 次,页面也没有分数板、没有等级、没有消行计数。
所以这版的竞争维度根本不是分数,是「谁堆得高、谁先输」。我把攻略里整段计分内容改掉了。
坑二:这版数独的 81 个格子是只读的。
上游给所有 input 都加了 disabled,你没法往格子里打字。它更像一个「解题法演示器」——能切难度、换题、点 Solve! 直接看答案、点 Show Candidates 看每格候选数,但不是可手填的对局页。
我在给公众号写稿时差点写成「9×9 填数独」,那会让读者以为能玩。已改。
这两条都写进了站内攻略。写攻略这件事,实测一次的价值大于查十篇资料。
三、它是怎么跑起来的
整站纯静态,125 个文件、约 12MB,托管在 Cloudflare Pages:
- 上传 5.5 秒
- 26 个页面全 200,控制台 0 报错
- 服务器成本 0 元,全球就近分发
因为是纯静态,这些游戏全部在你自己浏览器里算——数独的求解、五子棋的 AI 都不经过服务器。
五子棋那版尤其能说明这点:AI 跑在 Web Worker 里,所以我落一子之后要等它算完,但界面不卡,落子动画照跑。
四、15 篇攻略,是这个站真正的资产
游戏本身谁都能部署,攻略是留得住的东西。每款 3 篇:
- 玩法篇——给完全没玩过的人
- 进阶篇——给想变强的人
- 游戏史 + 冷知识——给想看故事的人
举两个我自己比较喜欢的例子:
扫雷那篇进阶篇讲的是 50/50 局面怎么处理。所谓 50/50,就是两个格子完全对称、你手上没有任何信息能区分它们。做法不是赌,是:先别点,把已知约束(数字、旗标、已开格)当成布尔条件写下来,求一个可满足解——能算出「哪些格一定不是雷」就直接开。这一版自带 SAT 求解器,正好能问它。
俄罗斯方块那篇游戏史讲的是 1984 年一台苏联电脑和 40 年后的规范之争——T-Spin、连消、暂存块计法,街机时代和现在一直不统一。
五、说清楚:这是第三方镜像
5 款都是上游的开源项目,站内保留原始 LICENSE 和版本信息,每页底部写明出处,链接直接指到原作者仓库。
我是第三方镜像,不是官方版,与原作者无隶属关系。 游戏本体的著作权归原作者,按 MIT 协议分发;攻略是我自己写的。
不收集数据,没有账号,没有统计脚本在你的浏览器里跑。
六、下一步
- 变现:AdSense(游戏类广告 RPM 通常明显高于 AI 工具类)+ craft 导航站的联盟入口
- 收录:sitemap 21 条 URL 已提交 Bing + IndexNow 推送(Google 那边我还在处理)
- 内容:每款再补一篇「高手进阶」长文
- 交互:能不能装到手机主屏(PWA)
你要是想让我测哪个,评论区丢个字母。
链接在这:https://games.cosmocat.dev
同族的还有两个站:开源导航站 craft.cosmocat.dev,和我的博客 cosmocat.dev。