Pokemon Auto Chess 实战指南:从零搭建并运行你的宝可梦自走棋服务器
【免费下载链接】pokemonAutoChessPokemon Auto Chess Game. Made by fans for fans. Open source, non profit. All rights to the Pokemon Company.项目地址: https://gitcode.com/GitHub_Trending/po/pokemonAutoChess
Pokemon Auto Chess 是一款开源、非营利的宝可梦题材自走棋游戏,由粉丝基于 The Pokemon Company 的 IP 制作,提供实时多人对战大厅、机器人陪练、ELO 天梯、战报与 Meta 数据等完整功能。这篇指南适合想本地跑通源码、部署自己的服务器、或基于它二次开发的玩家与开发者,帮你避开安装、配置与部署中最常踩的坑。
项目定位:这是一套什么规模的自走棋代码
它不是纯前端 Demo,而是一套可独立部署的完整游戏服务,主要构成如下:
- 实时对战:基于 Colyseus 的房间模型,
app/rooms/下定义了lobby(大厅)、preparation(备战)、game(对战)、after-game(结算)四类房间。 - 战斗内容:
app/core/abilities/收录了数百个招式实现,另有bot-logic.ts(AI 决策)、elo.ts(天梯分)、board.ts(棋盘)等模块。 - 数据与账号:用 MongoDB 存玩家资料与战绩,用 Firebase 做登录认证,多进程时经 Redis 做房间分发。
- 运营功能:
app/services/提供排行榜、定时任务、Twitch 直播数据、Meta 统计等服务。
上面这张是游戏内置的外景地图贴图集,
app/core/design.ts的initTilemap按地图名加载对应场景,前端通过/tilemap/:map接口取用。
如何安装并运行:快速开始步骤
先确认环境需要 Node.js ≥ 24.19.0(推荐用 nvm 管理版本)。然后克隆仓库并执行依赖与素材打包:
git clone https://gitcode.com/GitHub_Trending/po/pokemonAutoChess cd pokemonAutoChess npm install npm run download-music npm run assetpack npm run devnpm run dev启动后,游戏运行在本机http://localhost:9000/。
启动前还要配置两个外部依赖:
- MongoDB:本地装或云托管均可,创建数据库
dev,其中建一个空集合botv2。想要机器人陪练,就在 MongoDB Compass 里把db-commands/botv2.json导入该集合。 - Firebase:建一个 Web App 并拿到 SDK 配置;登录方式只保留邮件/密码与匿名;再到 Project settings → Service accounts 生成管理员私钥。
把这些写进仓库根目录的.env,例如MONGO_URI=mongodb://localhost:27017/dev,以及FIREBASE_API_KEY、FIREBASE_CLIENT_EMAIL、FIREBASE_PRIVATE_KEY等字段。
想拥有完整权限,可在 MongoDB 的usermetadatas集合里把你自己账号的role改为ADMIN。
核心能力拆解:对战与 AI 如何协作
对战主循环在app/core/里:pokemon-entity.ts承载场上单位,attacking-state.ts、moving-state.ts、idle-state.ts描述不同行为状态,招式则一个个独立成文件放在app/core/abilities/。
这张是单个宝可梦的多帧动画精灵表(编号 0484),前端用 Phaser 4 按帧播放出攻击、移动等动作。
机器人陪练由app/core/bot-logic.ts与bot-manager.ts驱动,数据存在botv2集合里。你可以从前端/bot-builder页面提交自己的阵容,再由管理员在/bot-admin审批。
服务端入口是app/index.ts,它负责拉起 Colyseus 服务、创建大厅房间、每分钟检查大厅是否存活(挂了自动重建)、每 10 分钟刷新排行榜、每分钟拉取 Twitch 直播状态。多进程部署时,app.config.ts会按进程号分配端口并用 Redis 做房间选主,大厅只在第一个进程创建。
配置、部署与运行要点清单
本地开发用npm run dev足够;要上线则先构建再启动:
npm run build npm run start生产部署要点:
- 环境分支:
master是开发分支,prod对应线上正式版本,部署时按需用哪个分支。 - 容器化:根目录
docker-compose.yaml自带mongo与app两个服务,app暴露 9000 端口,MongoDB 连接串经变量注入;Dockerfile用 node:24.19.0-alpine 三阶段构建。 - 多机部署:
ecosystem.config.js配好 pm2,用npm run setup-live与npm run deploy-live批量部署,npm run start以 fork 模式按 CPU 核数起多进程。 - PaaS 部署:
deployment/README.md给出了 Render、Heroku、Koyeb 的方案,核心是把.env里的变量填到平台的环境变量里。
常见问题与排错
- 素材不显示或
assetpack构建失败:在 Heroku、Render 等平台该任务有时会失败。解决办法是本地先跑npm run build,把生成的dist目录提交到仓库,并临时去掉package.json里 build 命令中的 assetpack。 - 改了素材没生效:素材从
public/src/assets打包到public/dist/client/assets,每次改动都要重跑npm run assetpack。 - 改了宝可梦或协同数据没变化:这些是预计算数据,存在
app/models/precomputed/,修改后要跑npm run precompute。 - 大厅进不去:服务端有
checkLobby定时任务,每分钟检测,两次重试失败后自动重建 lobby 房间,先看日志确认进程是否存活。 - Koyeb 报 Node 版本问题:它的 buildpack 不一定带 LTS,可在 fork 里去掉
package.json的engines字段再部署。
进阶方向:从跑通到二次开发
- 加新宝可梦:
edit/add-pokemon.ts提供npm run add-pokemon入口,改完记得重新 precompute 和 assetpack。 - 数据导出与校验:
gen/csv-export.ts可导出 CSV,gen/check-labels.ts校验标签,方便批量核对。 - 数据库脚本:
db-commands/按版本号归档了历次数据迁移脚本,改库前可参考同类写法。 - 社区服务器:
community-servers.md列出了玩家自建的服务器;部署自己的实例前先读deployment/README.md里的法律声明——宝可梦 IP 版权归 The Pokemon Company 所有,请勿用于商业项目。
【免费下载链接】pokemonAutoChessPokemon Auto Chess Game. Made by fans for fans. Open source, non profit. All rights to the Pokemon Company.项目地址: https://gitcode.com/GitHub_Trending/po/pokemonAutoChess
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考