本页目录

回合制策略游戏 Rapid Dominance(Phaser 3 + TypeScript)

rapid-dominance · wenta/rapid-dominance

Rapid Dominance 是一个用 Phaser 3 与 TypeScript 编写的浏览器回合制策略游戏,README 中给出了 GitHub Pages 在线地址。作者说明其玩法参考 Enemy Flag,并提供 npm 本地开发与构建流程(npm start / npm run build)。美术素材取自 O...

桌面游戏 多人对战 无明确引擎 C 游戏状态管理 网络联机 UI 系统 专家
★ Stars 18,951 Forks 2,804 License Apache-2.0 更新 2026-11-07

国内开发环境适配

Windows
未知
Linux
AI 推断/待核验
macOS
未知
引擎 / 框架:无明确引擎 暂无中文教程标记 未标记站长实测
国内访问 lichess.org 可能受限;自建服务端涉及 JVM/Scala、MongoDB、Redis、Elasticsearch 等依赖,具体编译与网络情况待核验。

中文项目介绍

Lila 是支撑 lichess.org 这一公共国际象棋站点的服务端代码库。项目名由「li[chess in sca]la」缩写而来,直接点明了它用 Scala 实现国际象棋服务的技术选择。它的目标不是做一个只能本地运行的小型棋类 Demo,而是承载真实在线对局的完整平台:玩家可以在浏览器里匹配对手、下实时棋,也可以使用站点提供的训练、研究和社区功能。README 将自身描述为「永久免费、无广告、开源」的非营利服务,代码以 AGPL-3.0 或更高版本发布,这一点决定了它更像一个长期运营的公共基础设施,而非商业产品。

从功能面看,Lichess 覆盖了在线棋类平台常见的多个子系统。对局方面有实时对局入口;棋局库提供搜索能力,可以按条件检索历史对局。分析方面,电脑分析由 fishnet 调度的分布式 Stockfish 节点完成,而不是依赖单机引擎。社区与活动方面包括锦标赛、simul(车轮战)、论坛、团队,以及面向个人训练的战术训练器。研究功能提供可共享的分析棋盘(study),移动端另有官方 App。界面本地化通过 Crowdin 社区协作完成,README 称 UI 已支持 140 多种语言。这些模块共享同一套账号与棋局数据,构成了一个相对完整的产品闭环。

核心功能

核心特性

服务端技术栈是该项目最值得关注的部分。后端使用 Scala 3,运行在修改过的 Play 2.8 框架上,模板层采用 scalatags。纯棋规逻辑被抽到独立子模块 scalachess 中,主仓库专注业务编排与页面/接口。服务端整体异步化,大量使用 Scala Future 与 Pekko Streams;WebSocket 连接由单独的 lila-ws 服务处理,并通过 Redis 与主服务通信。数据持久化使用 MongoDB,README 称其中存有超过 120 亿盘对局,并由 Elasticsearch 建立索引以支持检索。Stockfish 引擎部署在由捐赠服务器组成的 fishnet AI 集群中,nginx 可作为 HTTP 与 WebSocket 的反向代理。这种拆分方式把长连接、搜索、分析等重负载从主应用里分离出来。

浏览器端由 TypeScript 与 snabbdom 构建,CSS 使用 Sass 生成,因此前端并不是传统的重型框架路线,而是偏轻量的虚拟 DOM 渲染。README 给出了明确的浏览器支持表:Firefox 100+ 为完整支持并推荐,Chromium/Chrome 100+ 与 Edge 100+ 为完整支持,Opera 97+ 与 Safari 14+ 属于「合理支持」,更旧的浏览器不受支持。站点还提供明暗主题,首页截图展示了两种外观。对希望研究棋类界面在实时对局场景下如何保持响应的开发者来说,前端与 lila-ws 的配合比单纯的下棋界面更有参考价值。

技术架构分析

技术要点

本地启动方式在 README 中写得比较简短:执行 ./lila.sh,它是 sbt 的薄封装,进入后运行 run 即可;完整开发环境搭建需要参考 GitHub Wiki 的 Lichess Development Onboarding 页面。项目公开 HTTP API,允许第三方应用和网站调用。所有 rated 对局会发布到免费的 PGN 数据库 database.lichess.org,方便离线研究或训练模型。README 还给出截至 2022 年 7 月的生产架构图,以及 CI/CD 使用 Depot、浏览器测试使用 BrowserStack、代理检测使用 IP2Proxy 数据库等工程细节。这些信息说明它的构建与运维链路已经高度产品化,不是单文件脚本能复现的规模。

适合学习的地方集中在几个方向:Scala 3 的函数式与类型安全实践、基于 Future/Pekko Streams 的异步服务设计、WebSocket 网关与 Redis 的拆分、MongoDB 与 Elasticsearch 的检索组合,以及用 fishnet 组织分布式引擎计算。不过也要注意它的门槛:这是一个大型多模块生产系统,依赖 MongoDB、Redis、Elasticsearch、单独的 lila-ws 以及可用的 Stockfish/fishnet 分析资源;只跑主仓库并不等于拥有完整站点能力。AGPL-3.0 的传染性条款对二次分发有约束。国内环境拉取 sbt/Maven 依赖、访问外部服务或自建分析节点可能受网络影响,具体版本与最小依赖组合建议以 Wiki 为准并自行核验。

开源许可证与版权说明

许可证标识:Apache-2.0。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目