官方中文正文为项目官方提供的中文文档(原文转载),本站未作翻译、未改动文字,仅剔除图片与无关章节。
Infinite Pokémon(无限宝可梦)
官网与浏览器演示 已迁至独立仓库 Shellishack/infinite-pokemon-website。本仓库使用 Vite 构建本地/Electron 游戏,入口为 /game/(根路径保留兼容入口)。官网部署与游戏发布相互独立。
游戏会向官网排行榜报告少量公开进度汇总:训练家名称、教程里程碑、地图/物种/捕捉/训练家统计、探索格数与步数。游戏不会上传存档、队伍详情、日志文本、凭据或 Codex 数据。报告失败不会影响游戏;社区排行榜并非防作弊竞技排名。
English | 简体中文 · 官网与浏览器试玩版 · Discord 社区 · GitHub 仓库 · 技能下载 · 技术报告 v0.4(PDF,暂定稿)
从这里开始
npx skills add Shellishack/infinite-pokemon --skill infinite-pokemon
然后告诉 Codex(或兼容的 AI 助手):“使用 $infinite-pokemon,帮我配置并启动游戏。” 入口技能会克隆缺失的游戏文件、检查环境、安装依赖、构建并启动游戏。
安装技能本身不会启动软件。Skills CLI 需要仓库来源,单独的 npx skills add infinite-pokemon 不是受支持的全局别名。详见入口技能。
冒险,永不落幕。
35 秒了解核心循环:游玩、记录经历,再让 Codex 为接下来的冒险提出内容。
Infinite Pokémon 探索一个想法:游戏世界能否随着你的游玩不断续写?当你走向新的区域,本地 AI 执行环境会读取当前存档的经历,为新的地点、角色、对话和剧情线索提出方案;当你回到旧地点,那里仍保留在同一个世界中。
这是一个使用 TypeScript 开发、具有经典宝可梦像素风格的可玩原型。目标是让冒险持续延伸,同时保持操作和规则可靠。“无限”代表设计愿景,并不意味着已经实现无限的内容质量、长期剧情一致性或零等待体验。生成时间、存储、模型额度以及引擎支持的内容类型仍然存在限制。
游戏展示
| 探索持续存在的世界 | 战斗并收服伙伴 |
|---|---|
| 探索有陈设的室内空间 | 回到一个记得你的世界 |
|---|---|
无需安装的浏览器试玩版包含五个预制区域、战斗、收服、室内场景和本地自动存档。完整游戏会连接本地 Codex,让世界继续生长。多人模式允许朋友共享主机的世界,只有主机需要提供生成额度。
仅供教育与非商业用途。 本项目是实验性的爱好者作品,并非官方宝可梦产品,与 Nintendo、Creatures、GAME FREAK 或 The Pokémon Company 无关联,也未获得其背书。
由 Codex 生成。 人类提供大致的想法,OpenAI Codex 据此生成项目代码、文档和开发工具。引入的第三方依赖与参考素材并非 Codex 原创,其所有权及许可条款仍然适用。详见免责声明与素材来源。四个独立技能指令包获准采用 MIT-0,具体范围见下文。
下载技能
入口技能和三个生成技能已发布到以下平台:
| 平台 | 快速启动技能 | 四个技能 |
|---|---|---|
| skills.sh | infinite-pokemon | 地图 · NPC · 室内 |
| ClawHub | Infinite Pokémon Quick Start | 地图 · NPC · 室内 |
| skills.re | infinite-pokemon | 地图 · NPC · 室内 |
| GitHub | 入口技能源码 | v0.2.0 ZIP 下载 |
SkillsMP 也已按其文档要求,通过 GitHub Topics 提交自动收录,但目前尚未出现公开条目,因此暂时不能作为下载入口。详情见发布状态与许可说明。
世界如何继续生长
- 规则由游戏引擎执行。 服务端负责移动、碰撞、战斗、背包和进度。AI 不能仅凭一段文字发放奖励或宣布胜利。
- 经历保存在当前游戏运行中。 地图、选择、NPC 记忆和事件写入数据库,再导出供生成任务读取的本地快照。传给模型的是经过筛选的有限上下文,并非无限长度的完整历史。
- 生成的是内容提案。 Codex 根据上下文返回结构化方案。通过数据格式、地图可达性和依赖一致性检查后,内容才能进入游戏。
- 提前生成相邻区域。 默认深度为 1,并发数为 3;已经准备好的地图会被复用。目的地未完成时会显示等待状态,可重试或取消。
- 从存档选择另一个未来。 可以保存检查点后继续,也可以从旧检查点创建分支。分支拥有独立的世界数据库和生成上下文,不会混入原分支之后发生的事件。
多人模式下,玩家共享同一游戏运行中的世界。只有房主连接 Codex,并承担生成消耗;其他存档和分支依然是独立世界。
当前功能与限制
| 方向 | 当前实现 | 尚待完善 |
|---|---|---|
| 世界生成 | 持久化模板地图、生成的名称、描述、对话、剧情线索和有限地形特征 | 更自由的地形与建筑几何 |
| 连贯性 | 存档内事件、NPC 记忆、邻接地形信息和过期提案检查 | 长期叙事一致性评估、强制渐变地形 |
| NPC | 性格、对话、有限意图与可选静止/游走/巡逻策略 | 更丰富且可验证的自主行为 |
| 室内 | 在固定房间内生成家具、地毯、名称和可查看的描述 | 自由修改房间外壳与建筑结构 |
| 收集与经济 | 额外物种、生成档案、特征、杂交蛋、商店、货币与载具 | 更丰富的机制与平衡性 |
| 区域挑战 | 路线训练家、个人教程、合作守护者战斗 | 多地图区域注册、道场与大师系统 |
| 素材 | 已注明来源的经典参考素材,以及代码绘制的新内容 | 实时图像生成与素材导入流程 |
技能参考文档允许提出更广泛的创意,但文档中的规划不等于运行时已经支持。交易、完整社区中心、多地图区域身份、道场大师、任意建筑放置和外部生成图片导入目前尚未实现。
本地启动
需要 Node.js 22.13 或更新版本。进入仓库后运行:
支持 Node 22.13–22.15:缺少新版在线备份 API 时,会使用 SQLite 的 VACUUM INTO 创建备份。该兼容方式会在复制期间短暂阻塞服务端;较新的 Node 使用异步在线备份 API。桌面启动失败会显示服务端的实际错误,只有地址被占用时才提示端口冲突。
git clone https://github.com/Shellishack/infinite-pokemon.git
cd infinite-pokemon
npm install
npm run build
npm start
浏览器打开 http://127.0.0.1:8788。Docker 不是本地游玩的必要依赖。
- 选择 Single player(单人游戏)。
- 尚未验证连接时,点击 Connect to Codex;该操作同时确认界面展示的 token 消耗说明。如有提示,完成 Codex 登录。
- 验证成功后自动进入游戏,附近地图按设置在后台准备。地图尚未生成完成时,需要等待。
项目依赖中包含 Codex CLI 0.153.4,无需另外全局安装。连接验证只发送一个随机标识和确认请求,不加载生成技能,也不要求读取文件。已验证的当前连接会复用;重新打开已经授权的游戏运行后,会自动检查登录并发送简短确认。模型服务的启动和响应时间仍然存在。
验证、后台生成以及失败的生成尝试都可能消耗 Codex 额度。普通界面不设置游戏级任务预算上限,仍受提供方额度与计费规则限制。昵称、生成并发数、生成深度和存档入口位于折叠的 Optional settings(可选设置)中。
开发模式:
npm run dev
Electron 桌面模式,先构建再启动:
npm run build
npm run desktop
直接以全屏启动:
npm run desktop:fullscreen
桌面窗口默认启动自己的服务端并选择可用端口;需要系统能找到 Node,或通过 NODE_BINARY 指定其绝对路径。这是从源码运行的桌面版本,尚非独立安装包。Node 内置 SQLite 可能显示实验性功能提示。
无需 Codex 的教程预览
选择 Single player → Play tutorial preview 即可体验五个已准备好的户外场景及其室内房间,不连接 Codex、不调用模型,也不生成新地图或故事。
| 方向 | 场景 | 特点 |
|---|---|---|
| 中央 | Willowbrook | 小镇广场、花园、实验室与住宅 |
| 北方 | Whisperwood Trail | 森林小径、空地与护林员小屋 |
| 南方 | Cloverbank River | 草地、河流、木桥与休息屋 |
| 东方 | Sunbreak Coast | 海岸、水域、栈道与海岸站 |
| 西方 | Waystone Terraces | 石质阶地、遗迹与档案屋 |
中央区域有两个室内房间,其他区域各有一个。室内房间属于所在地图,不增加户外地图数量。第一课从出生点开始,之后的战斗、捕捉、照护和训练家课程跟随个人进度,而不是要求按特定方向行走;往返预览区域也能完成教程。
到达预览边界后,可以连接并验证 Codex,将同一存档继续为完整探索模式,保留伙伴、教程进度与已经见过的地图。预览存档与原始世界分开保存,可重启后继续;预览本身为私人模式,连接后才能开启多人。
多人游戏与操作
房主选择 Multiplayer → Host session,连接 Codex 后,在 START → SESSION 查看会话地址。也可以在单人运行中启用多人,共享同一存档。
访客选择 Multiplayer → Join session,输入房主的局域网地址(例如 http://HOST_LAN_ADDRESS:8787)或 HTTPS 地址。访客无需 Codex;昵称只是角色名称,不是账户。切回单人模式会断开访客连接并禁止新的公共加入,但保留服务端进度。
| 操作 | 按键或方式 |
|---|---|
| 移动 | 按住 WASD 或方向键 |
| 交互 | 与目标相邻并面向目标,按 E 或空格 |
| 进入房间 | 走入可见门口,或相邻面向门按 E |
| 游戏菜单 | Escape 或 START,再按 Escape 关闭 |
| 对话关闭 | Continue 按钮、E/空格或 Escape |
| 目标面板关闭 | 面板上的 Close 按钮 |
| 桌面全屏 | F11 或标题栏全屏按钮 |
对角线距离不算有效交互位置。NPC、围栏、墙和家具具有碰撞;草丛可能触发野生遭遇。室内照护者可治疗队伍,商人出售补给与自行车,托育者可让符合条件的伙伴产生杂交蛋。菜单中的 CODEX、NURSERY、RIDES 和 RECORDS 提供图鉴、育成、载具和统计入口。详见收集、经济与育成说明。
浏览器在本地保存不透明的会话 token,以识别训练家并授权操作。清除访客浏览器数据,或改变主机名、协议、端口,可能丢失与原训练家的关联;目前没有手动恢复密钥界面。服务端最多允许 8 名同时在线训练家、64 份训练家档案;这些是实现限制,不代表完成了互联网大规模负载验证。
生成深度、并发与任务详情
深度以当前地图为中心,按照上下左右的邻接关系计算,不是镜头缩放或图形渲染距离。
| 深度 | 周围地图数 | 包含当前地图 |
|---|---|---|
| 0 | 0 | 1 |
| 1(默认) | 4 | 5 |
| 2 | 12 | 13 |
| 3(上限) | 24 | 25 |
周围地图数为 2 × d × (d + 1)。队列优先处理离玩家较近的地图,已缓存的地图不会重复生成。多人分散探索时,会合并各自的范围,整体需求可能更大。
生成并发数默认 3,可设为 1–8。设为 1 表示顺序处理;并发是多项独立任务同时运行,并非一次提示生成多张地图。更大范围或并发可能带来更多 token 消耗,并不能保证完全消除等待。
左下角指示器展示正在生成和排队的地图。点击任务详情可查看模型、推理力度、已报告的 token 用量和工具执行状态;不展示模型的私有推理内容。尚未完成的目的地提供重试和取消,取消后不会在稍后完成时突然传送玩家。
存档、分支与完整重置
游戏自动保存当前进度,并提供默认游戏运行。START → SAVES 管理运行与检查点;SAVE 创建检查点,之后仍可沿当前运行继续。明确选择从旧检查点分支时,才创建独立世界,保留原运行后来的进展。
每个分支包含自己的地图、NPC 记忆、事件与生成上下文。检查点保存数据库状态,并不复制所有生成日志或 Codex 凭据。进行中的合作战斗会限制检查点创建,在线访客也会限制切换运行。详见存档架构。
首页 Settings → Full game reset 与存档切换不同。输入 RESET 后,会清除该游戏数据目录下所有运行、检查点、进度、生成内容和设置,并忘记游戏对 Codex 的授权;外部 Codex CLI 仍保持登录。不要把完整重置当作读取存档。
数据、配置与备份
npm start 默认写入 ./data;Electron 默认写入应用用户数据目录下的 world。如需不同启动方式使用同一世界,将 INFINITE_DATA_DIR 设为同一个绝对路径,且不要让多个服务同时打开它。
| 环境变量 | 用途 |
|---|---|
INFINITE_DATA_DIR |
数据库、上下文、生成内容与备份目录 |
PORT |
访客端口,默认 8787 |
ADMIN_PORT |
仅回环地址的管理端口,默认 8788 |
CODEX_EXECUTABLE |
可选 Codex 可执行文件或 codex.js 路径,不接受 shell 包装脚本 |
CODEX_HOME |
Codex 身份与配置目录 |
NODE_BINARY |
Electron 启动服务端使用的 Node 路径 |
INFINITE_MAP_TIMEOUT_MS |
单张地图生成超时,默认 180000 毫秒,上限 600000 |
world.sqlite 保存权威游戏状态。context/snapshots/ 保存任务输入快照;各运行的 generated-content/ 保存生成产物和诊断,不属于前端静态资源,并被 Git 忽略。旧版 generation/ 日志保留在原位置。
START → SESSION → World settings → Back up world 可创建当前世界数据库的在线备份。完整归档应先正常停止服务,再复制整个数据目录,包括 previews/ 和存档库。恢复时使用单独目录并保留原始备份;不要替换仍在运行的数据库或拆分活动 WAL 文件。Codex 身份凭据应单独保管,不应公开。
家庭服务器与可选 Docker
同一局域网内可使用房主的访客端口。公网部署需要可访问的网络入口及适当配置;Caddy 示例用于反向代理,不自动解决 NAT 穿透。不要公开管理端口或 Codex 凭据。
Dockerfile与Compose 配置面向 Linux 家庭服务器,使用 host 网络;Windows/macOS 建议先使用原生 Node/Electron 启动方式。
docker compose build
docker compose up -d
docker compose exec game node node_modules/@openai/codex/bin/codex.js login --device-auth
持久化卷分别保存世界数据和私有 Codex 配置。停止容器会保留卷;需要保留世界时,不要运行 docker compose down --volumes。容器内认证、网络与沙箱仍需在目标 Linux 环境验证。预览升级后的会话可能使用独立端口,代理应指向实际访客端口。
技能与安装
四个独立技能包已按 MIT-0 授权,允许复用其中的指令文件。该例外不包含技能目录之外的游戏代码、素材或品牌内容;各包附带 LICENSE。游戏本身直接加载内置技能,游玩不需要额外执行安装命令。
| 技能 | 用途 |
|---|---|
| infinite-pokemon | 按用户要求配置并启动游戏 |
| infinite-pokemon-region | 根据存档上下文提出地图、地形与内容方案 |
| infinite-pokemon-npc | 对话、记忆、意图与可选移动策略 |
| infinite-pokemon-interior | 固定房间内的家具、地毯和描述 |
为兼容的执行环境单独安装:
npx skills add Shellishack/infinite-pokemon --skill infinite-pokemon-region --skill infinite-pokemon-npc --skill infinite-pokemon-interior
技能需要房主提供上下文和输出格式;安装技能并不等于安装完整游戏。见技能说明、版本化 ZIP 下载和发布状态。不同索引站的同步与审核可能尚未完成。
音乐与音效
项目包含 12 段原创合成配乐和 22 种合成音效,覆盖标题、探索、城镇、森林、海岸、遗迹、商店、战斗、治疗、捕捉、存档等场景。首次按键或点击后启用播放;音乐与音效分别支持静音、音量调整,窗口隐藏时暂停。播放不消耗 Codex 额度。
npm run audio:compose
npm run audio:sfx
npm run audio:all
这些命令通过 TypeScript 本地合成音频,并非调用在线音乐模型。扩展方式见音频开发指南。
源码结构
desktop/ Electron 窗口、预加载桥接与桌面外壳
game/
client/ React 菜单、Phaser 渲染、输入与音频
engine/ 游戏规则、战斗、地图编译、NPC 与经济系统
server/ 网络、Codex 任务、数据库、存档与会话
shared/ 类型、格式校验、碰撞辅助与通信约定
assets/ 静态素材、图标、音乐与音效
content/ 预先编写的教程内容
skills/ 生成技能与参考文档
scripts/ TypeScript 素材和内容工具
tests/ 单元与端到端测试
docs/ 实现说明与开发文档
动态 generated-content/ 位于各存档数据目录中,不在发布的静态素材目录下。引擎目前仍依赖服务端 Store,目录拆分不代表已经完成数据库接口解耦。
测试与反馈
npm test
npm run build
npm run test:movement
npm run test:gameplay
npm run test:preview
npm run test:saves
npm run test:streaming
npm run test:variety
npm run test:e2e
npm run test:desktop
确定性测试使用测试执行环境,避免调用模型;实际 Codex 验证属于单独授权的操作。测试结果是工程检查,不等于用户研究或长期体验保证。实现说明记录当前边界,场景规则说明 NPC 与室内约束,地图准备机制说明生成队列。
欢迎在 GitHub Issues 反馈问题、提出想法或讨论生成式玩法。
- 本文标题:infinite-pokemon - 一个用 Codex 构建的宝可梦风格冒险游戏
- 本文链接:https://cn121.com/h5game/shellishack-infinite-pokemon.html
- 原项目:Shellishack/infinite-pokemon 版权归原作者 Shellishack 及贡献者所有
- 收录信息:本站于 2026-10-04 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 Shellishack/infinite-pokemon。
- 内容说明:本页正文为项目官方提供的中文文档(原文转载),本站未作翻译、未改动文字,仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。