由于最近对DnD比较感兴趣,感觉就是剧本杀的变种,支持各种模组。如果能够支持中国的仙侠文化,那就完美了。可惜找遍网络,并没有发现有对应的模组。那只能自己动手丰衣足食了。

准备

第一步当然是要对仙剑剧情有足够的了解。虽然通过几遍仙剑,但由于时间久远已经很模糊了。再重玩,并将所有剧情记下又太费时间。所以决定从程序入手,自动生成剧本。

首先你得有仙剑源文件和资源,可以买Steam版,也可以找其它方式。我买的时候是打包价仙剑1-3,不到¥30,也算补票了。

其次下载SDLPAL,一个仙粉制作的仙剑程序,支持仙剑DOS版和98柔情版。主要用以分析和模拟仙剑内剧情。

最后推荐个仙剑逆向工程的资源合集PAL Research,包含MKF文件解包打包脚本,道具/敌人对应的十六进制码,以及IDA的逆向工程文件等。

计划

工具已经准备好了,该如何提取游戏中的剧本呢?当然游戏中没有写好的剧本,但只要提取出场景,人物,对话内容,我们就可以有个简易的剧本了。这里提出几个方案:

  1. 日志法
    通过游玩游戏,将游戏进度写入日志。再通过分析日志来生成剧本。
    优点:简单可行,在SDLPAL代码中与对话场景相关处添加日志输出即可。
    缺点:需要再玩一遍游戏,隐藏场景可能会漏掉。
  2. 人工智能法
    让机器控制游戏角色,遍历所有场景的所有对话。
    优点:自动化。
    缺点:技术难度较大,需要处理战斗物品等与剧本不相关逻辑。
  3. 提取法
    对话在98柔情版中已明码存在MSG_chs.txt文件中,如果知道场景以及人物关系即可提取出相应剧本。
    优点:直观,符合逆向工程思维。
    缺点:场景人物未知。
  4. 程序法
    通过分析SDLPAL代码,让其遍历游戏场景,并根据场景中人物生成对话。
    优点:快速,直接。
    缺点:需要吃透SDLPAL代码和仙剑的资源文件。
  5. 拿来法
    如果已经有人总结出现成的剧本,那直接拿来用岂不更香。
    优点:最快速简便。
    缺点:目前没有找到相关内容,甚至可能没有。准确性也存疑。

当写到拿来法的时候,我就想要不再换个关键词搜索下。没想到就被我找到了:仙剑全对话.rar,所以也就不用再麻烦分析代码来找剧本了。唯一需要做的是将对话与场景结合起来,这个也可以根据对话联想回忆起来,所以也不那么重要了。

综上,要勤用搜索引擎,少走弯路。

以后会继续分享关于SDLPAL的分析,以及TRPG《仙剑世界》(PAL World)的创作历程,敬请期待!