Pymo

义项:Python相关工具
Pymo

Pymo(全称 Python Memories Off)是一款基于 Python 编写的 AVG(文字冒险)游戏引擎,主要用于在手机上制作与运行「秋之回忆」风格的视觉小说。它由开发者 chen_xin_ming 开发并以开源方式发布,针对运行内存有限的早期智能手机做了优化,曾在塞班(Symbian)S60 系列机型上作为替代方案被广泛使用[1]。其后续另有以 C 语言重写的复刻版本 CPyMO,把相关游戏带到了更多平台[2]。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Pymo 是一款面向移动设备的 AVG 游戏引擎,全称 Python Memories Off,使用 Python 语言实现,运行于 塞班系统 的 S60v3、S60v5、Symbian^3 以及 Android、Windows 等平台[1][3]。按其作者的说明,引擎名称由「Python」与「Memories Off」合成,后者是它最擅长表现的视觉小说风格[1]。

Pymo 属于开源软件,维护者将其以 BSD 许可证公开,允许他人下载源码并自行修改[4]。在塞班平台上运行时,引擎需要先安装 Python for S60 2.0.0 运行时以及 P.I.P.S. 运行库组件[5]。

原理

Pymo 的运行方式是把一部游戏看作「引擎 + 资源文件夹」的组合。引擎本体只负责解释脚本、播放音画,具体内容则由游戏目录内的素材与文本决定[1]。一个典型游戏目录包含 bg、chara、bgm、se、voice、video、script、system、save 等子文件夹,分别存放背景图、人物立绘、背景音乐、音效、语音、视频、脚本、系统界面图片与存档,根目录另有 gameconfig.txt 记录分辨率、字体、颜色等配置,以及 icon.png 图标[1]。

引擎读取脚本中的指令来驱动画面。剧情以对话框加背景和立绘的方式呈现,分支选项、存档读档、CG 鉴赏与音乐鉴赏等功能由引擎内建,开发者只需准备图片、音频并编写脚本,不必处理底层逻辑[1]。鉴赏系统通过 script 目录下的列表文件登记内容,例如 CG 鉴赏用 album_list.txt,音乐鉴赏用 music_list.txt,并以 UTF8 编码保存[1]。

由于面向的是内存紧张的机型,引擎按照需刷新的方式绘制画面,并提供资源预取等选项来减少卡顿;官方文档记载运行时的可用运行内存需求约为 12MB[1]。其指令集与目录结构的组织方式参考了 NDS 平台的 AVG MAKER DS,熟悉后者的移植者可以较快转入[1]。

发展历程

作者自述的构思起点在 2011 年 5 月,当时他刚完成 NDS 平台《秋之回忆》的移植,希望在手机上复现同类作品,并在他人演示的启发下决定用 pyS60 自行编写引擎,约 3 个月后第一版随游戏的塞班版一同出现[1]。同期的塞班平台上,可用的文字冒险引擎主要是从 Android 移植的 ONScripter,存在适配不佳、运行不畅的问题,这构成了开发动机。

公开资料记载,2011 年 7 月 23 日 pymo 0.1 与《秋之回忆1 pure story》一并发布,2011 年 8 月 8 日推出 0.2 版与《秋之回忆1》完整版;同年 12 月 24 日《秋之回忆2》发布后,引擎受到的关注明显增加。此后一段时间内,《缘之空》《悠之空》等作品的移植陆续出现,参与移植的开发者也不再限于原作者。

版本线在数年间持续更新:资料显示 1.2 版于 2013 年 8 月 31 日推出,支持范围从塞班扩展到 Android、Windows、Linux 等系统。官方下载页还单独提供面向 S60v3 早期机型(如 N73、N80)的适配版本,以及可放在 pymo.exe 同目录下运行的 Windows 版[5]。

后续出现了以 C 语言重写的复刻版本 CPyMO,由 Strrationalism 维护,目的是让 pymo 游戏能在更多平台上制作与运行,3DS 版本于 2021 年 12 月首次放出,支持 SDL2 与 3DS Citro2D 两种后端[2][6]。该复刻还配套了 YukimiScript 脚本语言与项目模板,用于新游戏的开发[7]。

应用

Pymo 的主要用途是把 PC 平台上已有的视觉小说移植到手机。官方教程给出的移植流程包含拆解原游戏资源包并转为通用格式、解析原引擎脚本、把图片与音频转换成 pymo 支持的格式、按 pymo 语法重写脚本 4 个步骤,其中解析脚本被认为是最困难的一环[1]。

除移植之外,引擎也可直接用于原创。由于存档、鉴赏、选项等通用功能已由引擎实现,制作者只需具备基本的图片与音频转换能力并编写脚本,即可完成一部短篇作品[1]。CPyMO 一侧则提供了面向 3DS、PSP、Wii 等主机的打包工具,并有以 YukimiScript 编写项目的模板[2][7]。

局限

Pymo 只针对 AVG 这一类型设计,官方文档明确说明它并不适用于其他类型的游戏,表现的也是以对话框、背景与立绘组合为主的叙事形式[1]。在安装层面,塞班版需要匹配特定版本的 Python 运行时,并且引擎与该运行时必须装在同一盘符下,资源也要放在存储卡根目录的 Python 文件夹中,否则会出现找不到游戏或无法启动的情况[5]。

在复刻版本 CPyMO 与 pymo 之间存在若干不兼容之处:两者的存档位置与存档格式互不通用,CPyMO 不处理 MID 格式音频,也不支持预载,除字号外的字体设置会被忽略[2]。CPyMO 还注明部分平台无法播放视频,只有 New 3DS 系列机型支持视频播放。

从移植角度看,限制更多来自原游戏一端:若原作脚本为二进制格式而非可解读的文本脚本,现有工具难以处理,移植也就无从下手[1]。此外,官方安装说明提醒不要用手机直接解压体积较大的游戏资源包,以免解压失败导致运行中途报错[5]。

参见

  • AVG —— 以剧情对话推进的文字冒险游戏类型,是 Pymo 唯一面向的作品形态。

  • Python —— Pymo 的实现语言,也是其名称的由来之一。

  • 塞班系统 —— Pymo 最初针对并主要活跃的移动操作系统。

  • CPyMO —— 以 C 语言重写的 pymo 复刻引擎,把游戏带到 3DS、PSP 等平台。

  • ONScripter —— 同期在手机上运行视觉小说的另一款引擎,是 Pymo 开发时的参照对象。

  • AVG MAKER DS —— NDS 平台上的文字冒险开发工具,Pymo 的指令与目录结构参考了它。

参考资料

  1. PYMO教程(PDF) [引用日期2026-10-29]
  2. CPyMO [引用日期2026-10-29]
  3. [多平台]pymo - 手机上的 GalGame 引擎(版本:1.1,日期:20180616) [引用日期2026-10-29]
  4. pyMO [引用日期2026-10-29]
  5. pymo-下载 [引用日期2026-10-29]
  6. CPyMO | Universal-DB [引用日期2026-10-29]
  7. github.com 上的网页 [引用日期2026-10-29]
词条评价
词条统计

浏览次数:0 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:29:46Z

历史版本

本条目引用的词条
Python 塞班系统 AVG CPyMO ONScripter AVG MAKER DS