玩桌面角色扮演游戏 (RPG) 有两种方式:你可以玩游戏发行商或独立作者编写的冒险,或者你可以玩即兴创作的冒险。无论你选择哪种方式,都可能需要做准备工作。一名玩家(通常称为游戏主持人)必须收集怪物或敌人属性、战利品表和规则参考,而其他玩家必须创建角色并分配(假装的)装备。没有什么可以消除复杂 RPG 的准备工作,但如果你是 Emacs 用户,你可能会发现 Emacs 是一个很好的仪表盘,可以保持一切井井有条。
组织规则
不幸的是,许多 RPG 的数字版本以 PDF 格式分发,因为那是 RPG 出版商发送给印刷商用于实体版的格式。PDF 在保留布局方面做得很好,但它们远非理想的电子书格式。如果你玩根据开放许可发布的 RPG,你通常可以获得其他格式(例如 HTML)的规则,这让你有更多的控制权和灵活性。即使是世界上第一个也是最著名的 RPG,《龙与地下城》,也以数字格式提供其规则的免费下载(许多网站已将其翻译成 HTML 和 Markdown)。
我在 Emacs 中以 Markdown 格式打开规则,以便随时进行可搜索的参考。虽然在 PDF 阅读器中以 PDF 格式打开规则可以让你搜索嵌入的文本,但使用文本文件反而提供了几个好处。首先,文本文件比 PDF 小得多,因此加载和搜索速度更快。其次,文本文件易于编辑,因此如果你发现某条规则让你寻求澄清,你可以将你学到的知识(或你编造的任何内容)直接添加到你的主文档中。你还可以添加房规和其他资源。我的目标是拥有一个包含我在游戏中使用的所有规则和资源的单个文件,所有内容都可以通过快速的 Ctrl+s (Emacs 表示法中的 C-s) 访问。
管理先攻权
大多数 RPG 系统都有一种方法来确定战斗期间的行动顺序。这通常称为先攻权,并且经常出现,因为游戏中冲突的来源通常涉及战斗或某种对抗性的竞争行动。用纸和笔跟踪战斗并不难,但在我无论如何都在使用数字资产的游戏中,我发现保持一切数字化更容易。幸运的是,历史悠久的 Org mode 提供了一个出色的解决方案。
当玩家掷先攻骰时,我在 Emacs 的 scratch 缓冲区中输入他们的名字。然后我输入每个怪物或敌人,以及每个怪物或敌人的命中或生命值 (HP),后跟两列 0
brad
emily
zombie 22 0 0
zombie 22 0 0
flesh-golem 93 0 0
然后我选择玩家角色 (PC) 和怪物的块,并使用 org-table-create-or-convert-from-region 函数围绕它创建一个 Org mode 表格。使用 Alt+向下箭头 (Emacs 表示法中的 M-down),我将每个 PC 或怪物移动到正确的先攻顺序。
| emily | | | |
| flesh-golem | 93 | 0 | 0 |
| zombie | 22 | 0 | 0 |
| brad | | | |
| zombie | 22 | 0 | 0 |
在战斗中,我只需要记录怪物造成的伤害,因为玩家管理他们自己的 HP。对于我在战斗中控制的敌人,第二列是它的 HP(其起始数字取自 RPG 系统的规则),第三列是当前回合造成的伤害。
Org mode 中的表格公式在表格末尾的特殊 TBLFM 行上定义。如果你使用过任何计算机化的电子表格,Org 表格 将相当直观。对于战斗跟踪,我希望第三列从第二列中减去。列从左到右索引($1 代表第一列,$2 代表第二列,$3 代表第三列),因此要用第二列和第三列的总和替换第二列的内容,我将此行添加到表格底部
#+TBLFM: $2=vsum($2 - $3)
我实际上并没有在每次游戏进入战斗模式时都将该内容输入到 Emacs 中。相反,我使用 Emacs 的 abbrev mode 定义了一个自动完成触发器,该系统允许你输入你选择的特殊字符串,Emacs 将其扩展为更复杂的内容。我在名为 ~/.emacs.d/abbrev_defs 的文件中定义我的缩写,使用 rpgi 后跟一个 空格 作为 Emacs 将该行更改为我的先攻表格公式的触发器
(define-abbrev-table 'global-abbrev-table
'(
("rpgi" "#+TBLFM: $2=vsum($2 - $3)" nil 0)
))
每次玩家对怪物造成伤害时,我都会在伤害列中输入伤害量。要触发表格重新计算,我按 Ctrl+u Ctrl+c (即 Emacs 中的 C-u C-c) 或 Ctrl+c Ctrl+c (即 C-c C-c),如果我恰好在公式行上:
| brad | | |
| emily | | |
| zombie | 12 | 10 |
| zombie | 15 | 7 |
| flesh-golem | 91 | 2 |
#+TBLFM: $2=vsum($2 - $3)
这个系统并不完美。角色名称不能包含任何空格,因为 Org 表格会按空格拆分单元格。很容易忘记你处理了一行,并在回合结束时意外地重新处理它。要将 HP 添加回生物的总数,你必须使用负数。(我将其视为负伤害,这暗示了健康。)再说一遍,许多计算机化的先攻跟踪器也存在同样的问题,因此这不是一个特别糟糕的解决方案。对我来说,这是我发现的最快的方法之一(我很高兴承认 MapTool 是最好的,但当我不使用数字共享地图时,我使用我的 Emacs 工作流程)。
在 DocView 中查看 PDF
有时 PDF 是不可避免的。无论是 d100 酒馆名称列表还是地牢地图,某些资源仅以 PDF 格式存在,没有可提取的文本数据。在这些情况下,Emacs 的 DocView 包可以提供帮助。DocView 是一种模式,可以加载 PDF 数据并为你生成 PNG 文件以供查看(Emacs 也可以查看 JPEG 文件)。我发现大型 PDF 存在问题且速度很慢,但如果它是低分辨率的 PDF,只有一两页,DocView 是一种在不离开 Emacs 的情况下引用文档的简单方法。
我专门将此模式用于地图、表格和列表。它对于可能涉及搜索的任何内容都无用,因为文本数据不可访问,但对于你只需要快速浏览的文档来说,它是一个非常有用的功能。

大多数 Linux 发行版附带的 Ghostscript 套件(或肯定在你的存储库中可用)允许你处理 PDF,通过将图像分辨率从打印质量降低到屏幕质量来大大简化它们。该命令主要包含 PostScript 命令和属性,但你无需成为 PostScript 专家即可执行快速降分辨率
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH \
-sOutputFile=adventure.pdf \
-dDownsampleColorImages=true \
-dColorImageResolution=72 big-adventure-module.pdf
在 Emacs 中打开 PDF 并不像听起来那么令人兴奋。它绝不是一流的 PDF 查看器,但对于选定的资源,它可以成为将所有信息保存在一个屏幕上的便捷方式。
创建冒险速查表
发布的冒险通常侧重于散文。理论是,你为准备好的冒险付了很多钱,所以你显然希望物有所值。我确实重视作者投入到他们的冒险中的传说和世界构建,但在游戏中,我希望快速参考我需要的信息,以便游戏机制按预期工作。换句话说,当盗贼触发陷阱时,我不需要知道陷阱为何放置在地牢中的故事;我只需要知道陷阱存在以及盗贼需要掷出什么才能生存。
我还没有找到任何现代冒险格式可以为我提供所需的信息,因此我最终创建了自己的“速查表”:冒险的最小轮廓,仅包含我需要的每个位置的游戏机制信息。再一次,Org mode 是我保持此信息方便的最佳方式。
在 Org mode 中,你使用星号创建列表作为项目符号。对于子项目,添加一个星号。更好的是,按 C-c t (即 Ctrl+c,然后是 t 键)将项目标记为 TODO 项目。当你的玩家清除游戏中的某个区域时,再次按 C-c t 将该位置标记为 DONE。
* DONE 1 Entrance
** Zombie
AC 9 | HP 22
* TODO 2 Necromancer's chambers
** Flesh golem
AC 16 | HP 93
** Treasure
- Gold ring (200 gp)
- Rusty nail (1 cp)
Cursed (roll on curse table)
** Secret door (DC 20)
- to area 11
每个星号都是可折叠的,因此你可以通过将列表折叠到仅顶层来获得全局区域的摘要
* DONE 1 Entrance
* TODO 2 Necromancer's chambers
* TODO 3 Wyrmling nursery
* TODO 4 Caretaker's chambers
* TODO 5 Caretaker's laboratory
一个额外的奖励:我发现制作自己的速查表有助于我内化我正在准备的冒险的机制和传说,因此这种方法的好处很多。由于我使用 Git 在 Emacs 中管理我运行的任何冒险,一旦我完成了冒险的准备工作,我就拥有所有资产的新副本,以防我与另一组或一组新角色运行冒险。
制作你自己的冒险日志
通常,我让我的玩家保留他们自己的冒险笔记,因为我希望鼓励玩家自己解释冒险中发生的事件。但是,游戏主持人需要私人笔记来记录所有即兴数据。例如,如果发布的冒险中没有铁匠铺,但玩家决定参观铁匠铺,那么就需要当场发明一个铁匠。如果玩家在六周后重新访问铁匠,那么他们希望它是同一个铁匠,并且游戏主持人有责任跟踪对此类添加到发布设置中的内容。我以两种不同的方式管理我的冒险个人笔记,具体取决于我可以使用的内容。
如果我有冒险的文本采用可编辑格式(例如 HTML 或 Markdown),我会将我的添加内容输入到冒险中,就好像出版商从一开始就包含了它们一样。这意味着设置和重大事件始终只有一个事实来源。
如果我无法获得冒险的可编辑副本,因为它是一个硬拷贝或不易修改的 PDF,那么我会将我的添加内容写入 Org mode 中的速查表。这在功能上意味着仍然只有一个事实来源,因为我的速查表是我查找信息的首选位置,仅在忘记细节时才退回到已发布的文本。有时我非常喜欢我的添加内容,以至于将它们合并回我的冒险 Git 主分支,但通常,我相信即兴创作,并让添加内容为每个玩冒险的群体动态发生。
为什么 Emacs 是我最喜欢的 RPG 仪表盘
我已经习惯使用 Emacs 进行 RPG,因为它充当了我梦想中的抬头显示器。“正确”的答案可能是一个好的 平铺窗口管理器,但在我实现它之前,我对 Emacs 感到满意。一切都绑定到专为特定性和速度设计的键盘快捷键,并且有足够的简单自定义,我可以拼凑出足够好的解决方案——有时甚至在玩家之间争论下一步该做什么时。
我尝试过同时处理多个桌面、多个 PDF 阅读器窗口和一个用于先攻权的电子表格;虽然这是一种不错的体验,但没有什么能比得上 Emacs 作为我的 RPG 仪表盘的流畅性。
嘿!你喜欢 Emacs 吗? 撰写一篇关于你如何使用 Emacs(GNU 或其他)的文章,以便包含在我们即将推出的 Emacs 系列中!
13 条评论