EbbeFlut · karussell/EbbeFlut
EbbeFlut 是一位开发者在多年前用 Java 编写的棋盘桌游克隆,内置一个作者自评“还算能用”的 AI 对手。代码年代久远,作者直言 bug 不少,并明确提醒不要拿它来学编程或 AI。项目采用 GPL v2 协议,界面基于 AWT,README 称其甚至能在 200...
Trigger Rally Online Edition(仓库 CodeArtemis/TriggerRally)是一款以浏览器为载体、走街机路线的开源拉力赛车游戏。README 用一句话概括其定位——"fast arcade rally racing",即在网页中直接运行、追求节奏明快而非硬核模拟的拉力竞速体验。项目官网为 triggerrally.com,代码以 JavaScript 为主,当前主线代码位于仓库的 server/ 目录下(对应 v3 分支结构)。与许多需要下载客户端的开源赛车项目不同,它把整个游戏打包进网页资源,用静态站点即可分发,这让它既是一个可玩的完整游戏,也是一个观察"浏览器游戏如何落地"的样本。
从运行形态看,README 的"Current status"一节给出现阶段最关键的几条事实:游戏目前完全在客户端运行,不需要 MongoDB,也不需要任何服务端配置即可启动;赛道与成绩记录保存在浏览器的本地 IndexedDB 中;这些数据可以导出为 JSON 文件进行分享或交换;而原本的在线功能当前不可用。换句话说,这是一个彻底本地化、离线可用的单机版本,联网对战或云端同步这类能力暂时不在可用范围内。对于想快速上手的人而言,这意味着没有账号、没有后端部署、没有数据库安装的门槛;对于想二次开发的人而言,这也意味着数据层需要围绕 IndexedDB 与 JSON 交换格式来设计。
启动方式非常轻量:README 明确建议用一个静态文件服务器托管仓库根目录,给出的例子包括 npx serve . 与 python -m http.server。也就是说,只要能通过 HTTP 提供静态资源,浏览器打开相应地址即可进入游戏,不需要 npm start 那样的常驻进程。若需要发布生产版本,README 指出运行 server/build/build.sh 可以构建生产模式下的 JavaScript 打包产物,这是把散落的客户端脚本合并、压缩以减小请求体积的标准做法。
代码组织方面,Trigger Rally 客户端与服务端都使用 JavaScript。README 说明所有代码现在都放在 server/ 目录下,并做了清晰的分层:仅客户端使用的代码在 server/public/scripts/ 中,客户端与服务端共享的代码在 server/shared/ 中。服务端侧使用 Node.js 的模块系统('require')来组织依赖。这种"public 放浏览器资源、shared 放公共逻辑、server 放宿主代码"的目录约定,对打算在浏览器里做中型游戏项目的人有直接参考价值——它把可复用逻辑与运行环境相关的代码隔离开来,方便同一份规则在前后端之间共享。
仓库里还保留了一段"Legacy server setup"说明,记录了旧形态下带服务端的启动流程:安装 MongoDB,进入 server 目录,全局安装 babel-cli,安装依赖并执行 npm start。这段遗留文档与前面"完全客户端运行、无需 MongoDB"的现状形成对照,说明项目经历过一次从"前后端一体 + 数据库"到"纯前端静态托管"的架构收缩。实践时需要注意,遗留流程依赖 babel 时代的工具链,Node 版本与依赖可用性未必与当下环境匹配,除非确有服务端需求,否则应优先采用静态服务器方案;同时 build 脚本的执行也需要本地具备相应的 Node/npm 环境。
版权与协议方面,README 注明除特别标注外,版权归 Code Artemis 所有,年份为 2012–2013,具体授权条款指向仓库根目录的 LICENSE.md。由于 README 本身没有展开许可类型,任何再分发、商用或二次发布前都应先阅读 LICENSE.md 原文确认义务,不要仅凭"开源"二字推断授权范围。同样需要留意的是,README 并未描述车辆物理模型、赛道编辑器、音效系统等具体玩法模块的细节,上述内容若需确认只能通过阅读 server/public/scripts 与 server/shared 下的源码来判断,本项目介绍不对这些未在文档中出现的功能作任何断言。
综合来看,这个仓库适合三类读者:一是想体验一款轻量浏览器拉力竞速游戏的玩家,直接用静态服务器打开即可;二是学习浏览器游戏工程化的开发者,可以研究其客户端/共享代码分层、IndexedDB 本地存档与 JSON 数据交换的设计;三是关注项目架构演进的人,可以对比 README 中"纯客户端"现状与"Legacy server setup"的历史,理解一次从服务端依赖到静态化部署的迁移取舍。需要注意的边界是:在线功能当前不可用,成绩与赛道仅存在于本机浏览器,跨设备游玩需要手动导出导入 JSON 文件。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
OpenLoco 是 Chris Sawyer《Locomotion》的开源重实现,对应一款模拟经营运输...