有两种玩桌面角色扮演游戏 (RPG) 的方式:你可以玩游戏发行商或独立作者编写的冒险,或者你可以玩即兴创作的冒险。无论你选择哪种方式,可能都需要做准备工作。一名玩家(通常称为游戏主持人)必须收集怪物或敌人的属性、战利品表和规则参考,而其他玩家必须创建角色并分配(假装的)装备。没有任何东西可以消除复杂 RPG 的准备工作,但如果你是 Emacs 用户,你可能会发现 Emacs 是一个很棒的仪表盘,可以使一切井井有条。
组织规则
不幸的是,许多 RPG 的数字版都以 PDF 格式分发,因为这是 RPG 发行商发送给打印机用于实体版的格式。PDF 在保留布局方面做得很好,但它们远非理想的电子书格式。如果你玩根据开放许可发布的 RPG,你通常可以获得其他格式(例如 HTML)的规则,这为你提供了更多的控制和灵活性。即使是世界上第一个也是最著名的 RPG《龙与地下城》,也以数字格式免费下载其规则(许多网站已将其翻译成 HTML 和 Markdown)。
我在 Emacs 中以 Markdown 格式打开规则,以便随时可以进行搜索参考。虽然在 PDF 阅读器中以 PDF 格式打开规则可以让你搜索嵌入的文本,但使用文本文件反而提供了几个好处。首先,文本文件比 PDF 小得多,因此加载和搜索速度更快。其次,文本文件易于编辑,因此如果你发现某条规则需要你寻求澄清,你可以将你学到的(或你编造的)内容直接添加到你的主文档中。你还可以添加内部规则和其他资源。我的目标是拥有一个包含我在游戏中使用的所有规则和资源的单个文件,所有内容都可以通过快速的 Ctrl+s (C-s 在 Emacs 符号中) 访问。
管理先攻权
大多数 RPG 系统都有一种方法来确定战斗期间的行动顺序。这通常称为先攻权,并且经常出现,因为游戏中冲突的来源通常涉及战斗或某种对抗性的竞争行动。用纸和笔跟踪战斗并不难,但在我无论如何都要使用数字资产的游戏中,我发现一切都保持数字化更容易。幸运的是,历史悠久的 Org 模式 提供了一个出色的解决方案。
当玩家掷先攻骰时,我在 Emacs 的暂存缓冲区中输入他们的名字。然后我输入每个怪物或敌人的名字,以及每个怪物或敌人的命中或生命值 (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 模式表。使用 Alt+向下箭头(Emacs 符号中的 M-down),我将每个 PC 或怪物移动到正确的先攻顺序。
| emily | | | |
| flesh-golem | 93 | 0 | 0 |
| zombie | 22 | 0 | 0 |
| brad | | | |
| zombie | 22 | 0 | 0 |
在战斗中,我只需要记录怪物的伤害,因为玩家管理自己的 HP。对于我在战斗中控制的敌人,第二列是其 HP(其起始数字取自 RPG 系统的规则),第三列是当前回合造成的伤害。
Org 模式中的表格公式在表格末尾的特殊 TBLFM 行上定义。如果你曾经使用过任何计算机化的电子表格, Org 表格 将非常直观。对于战斗跟踪,我希望第三列从第二列中减去。列从左到右索引(第一列为 $1,第二列为 $2,第三列为 $3),因此要用第 2 列和第 3 列的总和替换第 2 列的内容,我在表格底部添加此行
#+TBLFM: $2=vsum($2 - $3)
我实际上并没有在每次游戏进入战斗模式时都将它输入到 Emacs 中。相反,我使用 Emacs 的 abbrev 模式 定义了一个自动完成触发器,该系统允许你输入你选择的特殊字符串,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 (即, C-u C-c 在 Emacs 中) 或 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 模式是让我方便地保存此信息的最佳方式。
在 Org 模式下,你使用星号创建项目符号列表。对于子项,添加一个星号。更好的是,按 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 模式的摘要表。这在功能上意味着仍然只有一个事实来源,因为我的摘要表是我查找信息的首选位置,仅在回忆不起细节时才退回到已发布的文本。有时我足够喜欢我的添加内容,以至于将它们合并回我的冒险 Git 主分支,但通常,我信任即兴创作,并让添加内容为每个玩冒险的小组动态发生。
为什么 Emacs 是我最喜欢的 RPG 仪表盘
我开始使用 Emacs 进行 RPG,因为它充当了我梦想中的抬头显示器。“正确”的答案可能是一个好的平铺窗口管理器,但在我实现它之前,我对 Emacs 很满意。一切都绑定到为特定性和速度设计的键盘快捷键,并且有足够的简单自定义,我可以拼凑出足够好的解决方案——有时甚至在玩家们争论下一步该做什么时。
我曾尝试过同时处理多个桌面、多个 PDF 阅读器窗口和一个用于先攻权的电子表格;虽然这是一种不错的体验,但没有任何东西能与 Emacs 作为我的 RPG 仪表盘的流畅性相媲美。
嘿!你喜欢 Emacs 吗?写一篇文章关于你如何使用 Emacs(GNU 或其他)的文章,以包含在我们即将推出的 Emacs 系列中!
13 条评论