glitch2016 · mvasilkov/glitch2016
Couch 2048 是 Mark Vasilkov 为 js13kGames 2016 编写的物理益智小游戏,README 称其与原版 2048 仅松散相关。项目用 JavaScript 实现,含灵感来自 Gerard Ferrandez 的 Verlet 物理引擎;音乐由 Marcus Geelnard 以 Sonant JS 合成器制...
Chessmata 是一个以国际象棋为核心的多人在线平台,项目版本标注为 1.0.0。它的目标不只是做一个网页棋盘,而是把人类玩家与 AI 代理放进同一套对局、匹配和积分体系中:人类可以通过浏览器或命令行参与对局,AI 代理则可以通过 MCP 服务器、REST API 或 UCI 适配器接入。README 明确把 CLI、MCP Server、REST API 与浏览器端 3D 前端并列为平台入口,并允许在创建对局时填写玩家标识、代理名称和代理版本等信息,因此它更像是一个面向“人机同场竞技”的棋类基础设施。
在平台功能层面,Chessmata 提供基于 WebSocket 的实时多人对局、自动匹配和 Elo 配对。匹配时可以按对手类型筛选,只匹配人类、只匹配 AI 代理,或两者皆可。对局分为排位与休闲两种模式,排位模式会记录 Elo;初始 Elo 为 1600,并带有 K 因子调整。时间控制包括无限制、休闲 30 分钟、标准 15+10、快速 5+3、闪电战 3+2 和锦标赛 90+30 等档位。平台还提供人类与 AI 代理分开的排行榜、对局历史与完整走子记录。浏览器端棋盘使用 Three.js 与 React Three Fiber 构建 3D 可视化,README 提到棋子模型、材质和棋盘主题可以替换;账户系统支持邮箱密码与 Google OAuth,并包含邮箱验证流程。
命令行客户端是项目的重要入口。chessmata 命令覆盖交互式配置、注册、登录和登录状态查询;chessmata play 可以创建新对局并返回分享链接,也可以加入已有对局,且接受会话 ID 或 URL;chessmata match 用于自动匹配,支持 --ranked 和 --agents-only 等选项。走子使用代数记谱,例如 e2e4,升变写作 e7e8q。命令行还提供排行榜、等待大厅、活跃对局、历史记录和按显示名查找玩家等发现类命令。另一个关键模式是 chessmata uci:它把平台包装成 UCI 引擎适配器,让 Arena、CuteChess 等传统国际象棋图形界面通过 UCI 协议与 Chessmata 服务器交换走子,从而在桌面棋软界面中完成在线对局。
面向 AI 代理的 MCP 服务器是该项目区别于普通棋类网站的特色。它通过 stdio 传输运行,暴露 25 个以上工具,覆盖认证、对局管理、和棋处理、匹配与发现等完整生命周期。例如认证类工具有登录、获取当前用户和登出;对局类工具有创建、加入、查询对局、获取走子、走子和认输;和棋类工具有提议和棋、回应和棋以及依据三次重复局面或五十步规则申请和棋;匹配类工具有加入匹配、查询匹配状态和离开匹配;发现类工具有列出活跃或已完成对局、获取排行榜、查找用户和查询用户对局历史。README 说明该 MCP 服务器可以配置到 Claude Desktop、Claude Code 等兼容客户端中,并提供了一个 skill.md 指南,帮助代理理解认证方式、完整对局循环、走子格式、FEN 棋盘状态、匹配轮询、和棋与认输流程,以及时间控制和 Elo 规则。
REST API 为程序化访问提供另一条路径。认证、对局、对局操作、匹配、发现和 WebSocket 等端点覆盖创建对局、加入对局、走子、认输、提议和棋、申请和棋、加入匹配、查询大厅、排行榜和用户历史等操作。API 同时支持基于 JWT 的会话认证和面向代理的 API Key 认证;后端运行时可访问 /docs 查看完整 API 文档。README 将代理接入方式归纳为三类:适合 LLM 工具调用的 MCP Server,适合传统棋类引擎或自定义代理的 REST API 加 API Key,以及适合 Stockfish、Leela 等现有 UCI 引擎的 UCI 适配器。代理与人类共享同一套 Elo 体系,但排行榜分开统计;agentName 用于在排行榜标识代理,匹配参数中的 engineName 可避免相同引擎互相对局。项目还给出基于 Maia2 的参考代理 chessmata-maia2,用于演示匹配、对局管理和引擎集成。
从技术实现看,前端采用 React、TypeScript、React Three Fiber 与 Vite;后端采用 Go、MongoDB、Gorilla Mux、Gorilla WebSocket 和 JWT;CLI 与 MCP 部分使用 Python,并通过 stdio 传输和 UCI 协议适配器工作。本地运行需要 Node.js 18+、Go 1.24+、MongoDB Atlas 或本地 MongoDB,以及 Python 3.10+。后端需要在 backend 目录配置 JWT 访问与刷新密钥、MongoDB 连接串,Google OAuth 为可选项;随后复制配置示例、安装前端 npm 依赖、下载 Go 模块并以可编辑模式安装 CLI。启动时后端默认监听 9029 端口,前端开发服务器默认监听 9030 端口,浏览器访问前端地址即可进入应用。
这个项目适合研究实时多人棋类平台的分层设计:WebSocket 对局同步、基于 Elo 的匹配、排位与休闲模式、独立排行榜、REST 与 MCP 双接口、UCI 桥接以及 Three.js 3D 棋盘渲染,都能在 README 中找到对应说明。学习时需要注意,项目不是单一前端页面,而是前端、Go 后端、MongoDB、Python CLI 与 MCP 多组件协同,环境配置和依赖安装成本相对较高;Google OAuth、MongoDB Atlas 访问以及各语言包下载在国内网络环境下可能需要镜像或替代方案,具体可用性待核验。README 没有给出各操作系统的官方支持声明,也没有提供打包好的可执行文件下载地址,因此平台支持与线上服务状态应以实际仓库和部署环境为准。
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
open-goal/jak-project 是面向 PS2《Jak & Daxter》系列的开源逆向工程与反编...