《石头纪》:试图在ASCII Art环境下教会玩家编程的RPG

作者:ThirtyThree
2023-07-28
18 3 1

前言

石头,是游戏作品中出镜率很高的元素。它可以是基础的杂物,也可以是进阶的资源;可以是场景的地标,也可以是交易的代币;当然,还可以是任务的道具,甚至是灵魂、规则的容器。同时,在大众熟悉的文学作品中,石头因其蕴于自然和久经风尘身不改的形象,常常被赋予传奇色彩,比如猴子的出身,又或是通灵的宝玉......

7 月 27 日,独立游戏《石头纪》(Stone Story RPG)结束 4 年 EA,正式发售 Steam 版,其中的石头,几乎囊括了上述所有类型的意象。其暗黑荒诞的剧情,讲述了一个关于总共有 10 块的“9 块灵魂之石”的故事,故事里,石头可以是生者的菁华,也可以是死者的遗体。

乍听起来,灵魂石散落大陆,等待天选之人,似乎又是套路。不过,《石头纪》中的 9 块石头同时也是整个游戏世界的支点:玩家可以借助按顺序获得的灵魂石,轻易压动杠杆,撬开新机制、新世界的大门。以集齐灵魂石为分界点,游戏全流程可被粗略划分为两个阶段:前半段扫荡地图,体验剧情,熟悉机制,新要素渐次显现;后半段编程挂机,积累资源,挑战自我,享受“放置-奖励”的循环。

除了英文名中的“RPG”,《石头纪》还是款怎样的作品?让我们会同游戏的核心主创加布里埃尔·桑托斯(Gabriel Santos),先从绕不开的 ASCII Art(字符画)谈起。

ASCII Art

五颜六色的白,七彩斑斓的黑,家装行业和设计从业者苦黑白久矣。皆因在我们惯常的认知中,黑白一直是最纯粹的颜色。《石头纪》采用的 ASCII Art 具有强烈的风格化特征,其一便是摒弃浓墨重彩,以黑白为基调,与此同时,以字符为基本单位进行构图。

用字符构建图像:注意位于主角左侧的腿,巧妙显示了前进的方向

如果全面回溯 ASCII Art 的历史,可能需要另写一篇完整文章。实际上,ASCII Art 和大部分技术创意一样,都是主观需求和时代局限共同孵化的产物。

所以我们可以看到,大约 30 年以前,彩色打印开始被广泛应用;大约 50 年以前,计算机用户界面逐渐向图形化过渡;大约 125 年前,一位名为弗洛拉·史黛西(Flora Stacey)的女士用打字机输出了一只蝴蝶;大概 160 年前,某图书编辑通过在印刷流程中的创意排版,以一条文字“尾巴”,模拟《爱丽丝梦游仙境》(Alice in Wonderland)中的老鼠 [1] 

现存最早的打字机艺术作品,由弗洛拉·史黛西创作,刊登于 1898 年 10 月 15 日的《Pitman's Phonetic》杂志

1865 年版《爱丽丝梦游仙境》,本图出自第三章

打字机艺术,排版艺术,以及可能早已存在的手绘字符艺术尝试,都可以置入(广义的)ASCII Art 发展轨迹的前段。而有了字符构成的画面,离玩家期待的游戏交互还缺一个关键字:动。

据加布里埃尔介绍,《石头纪》的 ASCII Art 是文本字符和动态播放的结合,因此大多数美术工作都在纯文本编辑器中完成。游戏的动画制作遵循传统动画工作流程:找到视觉参考,绘制关键帧,计算动画长度,然后绘制中间帧。动画每一帧对应的文本文件有序排列,有些类似精灵图。一段帧动画编辑完成后,加布里埃尔首先会使用自定义字体进行渲染,并通过脚本和着色器将其转换为图形,最终显示在玩家的屏幕上。

毫无疑问,如此复古、“简陋”的面貌会令不少玩家望而却步,不过从实际体验来看,《石头纪》的画面表现力丝毫不弱:闪烁的下划线形成流动的水波;前括号、后括号勾勒出圆脸骷髅的轮廓;至于游戏的主角,则是一个简单到无法再简化的小人儿——字母 o 是他的脑袋,分隔符是他的躯干,斜杠和反斜杠构成他的四肢,分列身体两侧。当主角前后移动时,代表下肢的斜杠(反斜杠)每隔一帧会被大于号(小于号)替代,模拟人走路时腿部的弯曲。

“抽象图形有一种内在的吸引力,因为它对我们来说既熟悉又陌生。我们的大脑很聪明,如果发现某种足够有辨识度的形状,就会立刻联想到现实世界中的对应事物。这种持续的‘发现与构建联系’的潜流,正是《石头纪》美术的核心所在。”加布里埃尔表示。

而在更大的画幅中,密密麻麻的字符“凌乱”地排列,构成游戏世界的全部图景。这场面有些像熙攘的闹市,近看人头攒动、杂乱无章,但以更宏观的视角审视,其实每位过客都从街口而来,往街口而去,他们交叠的足迹便是这闹市的生命线,一切乱中有序。

英语中的动画一词 Animation,源自拉丁语 Animātiō,后者的词源 Animō 意为“赋予生命”,同时也是这一概念对所有动画制作者的拷问 [2] 。简明的线条勾勒,精妙的字符拼接,传神的动态表现——这便是《石头纪》给出的答案。

有了这一切,那些与游戏性相关的视觉表达似乎就没什么难度。

人的感觉往往会受对比影响,同时对比如“万绿丛中一点红”,继时对比如“喝药后吃糖格外甜”,都能放大某种感觉刺激 [3] 。因此在《石头纪》中,玩家一看到身批蓝、黄的怪物,便会下意识地感到危险倍增;而在黑白灰的底色上,那些闪着靛、黄、绿、蓝、红的武器显得尤为夺目,往往能给玩家带来远超寻常的激励。

扫荡和配装

若论核心玩法,《石头纪》大概可以归为配装刷宝游戏。不过前言部分已有透露,本作的战斗并不需要玩家亲自操作,全部场景(即横板卷轴关卡)都可由系统自动扫荡完成。所以,玩家只需专注于以下两方面:一是扫荡过程中的换装、喝药等即时操作;二是两次扫荡间的装备升级、附魔,以及更换药水类型等后勤操作。

切换装备是本作的核心操作项

“只有左右手两个装备槽,能有多大空间?”这可能是许多玩家初步了解游戏后的疑问。但实际上,《石头纪》的配装玩法另有玄机——并不是靠复杂的装备套件把战力值拉升到极限,而是用高频次的装备切换构建针对某一场景全流程的动态 Build。

比如在枯木峡谷,玩家会遭遇以下敌对生物。在尚未实现数值碾压以前,采用针对性策略,刷图效率会提升不少。

这仅仅是开始。枯木峡谷作为玩家挑战的第一个正式场景,其怪物并没有属性和其它复杂机制。在其它场景中,玩家还需要考虑火、冰、毒、生命、以太这 5 种元素的克制关系;护甲积累和高效破盾的消长平衡;减攻击、回生命等特殊机制的动态作用等。

目前,《石头纪》共有八个战斗场景和数个功能娱乐场景,前者各有 15 个星级难度。游戏伊始,玩家每次扫荡 1 星场景可能只需要 1-2 分钟,随着场景的难度星级提升,其流程会变长,玩家遭遇的怪物种类也会增多。

不难想见,想在这个暗黑世界中生存,玩家首先需要精心准备一个武器库。面对不同敌人,实现一敌一配装,甚至多段配装 Build。

囊中羞涩,看看就好

“与游戏的所有部分一样,我们对装备采取了极简主义设计,两个装备槽足以提供复杂而有意义的决策。对许多玩家来说,这可能是个困难的转变,因为在一些游戏中,他们可能习惯配置 1 套通用型装备,并不断进行强化。而《石头纪》希望能让玩家感受到对敌时变换装备的价值——你需要制作许多不同的装备,并且你确实会用到它们。”

除此之外,加布里埃尔对游戏表现的一致性也十分在意,“我们不希望出现无法体现在角色视觉形象上的装备(比戒指或项链),只有当你选择的装备出现在角色身上,并完全动画化时,才是最令人满意的。”

离线模式和 Stonescript

频繁换装,反复刷图,意味着会产生大量细碎繁琐且重复的操作。于是,在主创团队和玩家社群的一次头脑风暴中,原创脚本语言 Stonescript 诞生了。

“我们有一个‘创意池’,记录了许多有趣的想法,其中一项是种极简的编程语言。通过它编写脚本,可以实现角色策略(换装、喝药)自动化,使其达到超人的战斗水平。社区里的玩家非常喜欢这个想法,于是我们开发了 Stonescript,并整合到游戏中。”加布里埃尔回忆道。

游玩《石头纪》时,在非战斗状态下打开工作台,或在战斗状态下按下按键“M”,都可以直接进入 Stonescript 编写界面。无论玩家是否有编程基础,只需要简单熟悉逻辑,再记住(或查阅)几个英文名词,都可以轻松上手。

脚本生效后,因角色当前生命值小于 30,自动执行了喝药水操作

可以看看下面这段程序及其代表的操作。

图中三个问号(对应右侧 3 个如果),代表 3 层逻辑。第一层“激活药水”没有更多限制条件,作用于全局;第二层的配装限定了场景,只在恐怖洞窟有效;第三层是对第二层的进一步的细化,针对恐怖洞窟中的蜘蛛 Boss。

以上只是针对特定关卡的粗略编程,实际上,Stonescript 的可设定条件远不止此:

本图片来自豆瓣用户“Taoyua”整理的《石头纪》编程攻略

这些可设定条件,再加上表示与、或、非等逻辑关系的连接符,玩家编写脚本的过程其实是一个不断细化程序的过程:脚本的每一层逻辑都对应着战斗过程中的换装或补给操作,玩家最终写就的,是一行行针对性策略串联成的文本。

比如,面对远程攻击、高护甲,且拥有“推开”技能的 Boss,我们可以写下下面这组策略:

此处为清晰展示策略意图,只以文字描述思路,具体执行脚本的编写、更多语言规则请参考《石头纪》官方编程文档撰写

还是那句话,一敌一策略,甚至多段策略,针对到死。

Stonescript 诞生后,开发团队和热情玩家不断贡献出精彩创作。作为最熟悉 Stonescript 的使用者,加布里埃尔用其构建了 11 个传说任务,这部分可循环挑战任务在当前游戏内容中占比相当可观。玩家方面也不甘落后,他们在以 Stonescript 为指定工具的限时开发活动 Stone Jam 中,不仅复刻了《贪吃蛇》《21 点》等经典游戏,还实现了一些全新的创意。

由于实现方式不同,部分 Stone Jam 作品需要把《石头纪》作为启动器,全屏运行;还有一些则可和游戏本体同时运行,类似插件。其中最出色的创作之一,已经被开发团队纳入当前版本的游戏中,作为休闲放松关卡。Stonescript 要比它看起来的样子更强大一些。

在《石头纪》中,用 Stonescript 编写的《21 点》纸牌游戏

不难发现,脚本编程的引入与游戏原本的扫荡、配装玩法高度契合。在本作中期流程中,玩家可以凭借关键道具“衔尾蛇之石”解锁离线挂机模式,而离线挂机的效率,很大程度上取决于脚本的精细程度。

“一件有趣的事情是,经常有玩家告诉我们,他们在《石头纪》中学会了如何编程。”在这段关于 Stonescript 脚本语言交流的最后,加布里埃尔有些得意地对我说。

内容量与完成度

《石头纪》背后的 Martian Rex,起初是加布里埃尔的个人工作室。而在漫长开发过程中,已累计有 40 余位不同身份的创作者,以不同形式为《石头纪》做出过贡献。

用加布里埃尔的话来说,《石头纪》非常注重各游戏系统的首次用户体验,实际上也确实如此——当前版本前 10 小时左右的剧情流程可谓游戏的精华,这部分结束后,编程挂机玩法依然成立,且能带来一段时间的新鲜感,但随即便会因后续内容量不足,陷入不得不依靠提升场景难度来拖延游戏时长的局面。

加布里埃尔也意识到了这一点:“过去几年中,我们把大部分时间都花在了开发‘游戏体验的第一周’上,一些系统工程和传奇任务消耗了大量工作时长。现在,我们必须花一些时间来扩展和完善游戏后期内容。当《石头纪》成为完全体时,我们计划将其作为开源项目发布,这样,其它开发者就可以随心所欲地使用它。”

当然,9 年开发,4 年 EA,开发团队的时间也并没有白费。《石头纪》的各种细节都呈现出精心打磨后的高完成度:角色被施加负面效果后,状态图标以视觉上的色彩渐淡表达作用效果的持续时间;工作台建造时,持续的音效类似向小口瓶中灌水的声响,渐高的声调象征着不断提升的完工度(水平面)。

文本则是另一个精心打磨的侧面。“《石头纪》的目标是在黑暗和幽默间取得平衡,荒唐的生物(如会说话的树)与可怕的野兽(如无皮的帕拉斯)共存。我们选择了这样一种结构,让主线故事专注于游戏机制且文字量较少,而传奇任务则侧重角色发展和对白。”加布里埃尔说。

于是,玩家可以见到,《石头纪》以寥寥数语描绘了一个沐浴在永恒月光下的阴暗世界,辅以怪诞诡异的电子音乐,遮掩着长久难解的谜。

还有一个有趣的细节是,StoneScript 一定程度上是可视化的。当玩家在脚本编辑框中键入文本时,若将光标悬停在装备名上方,右侧边栏会即时显示对应装备。这可以防止错拿属性相近的武器,避免饮恨关底。

天赋

用 9 年时间开发一款中小体量的独立游戏,总是不免让人有些担心,又有些羡慕。担心是因为生存,毕竟市场从无温情可言;而羡慕是由衷的,相信很多人会有同感。

在采访的最后部分,加布里埃尔分享了他投身独立游戏开发的经验:“创作一款游戏,最困难的是不要轻易被其它创意分散注意力。总会有闪亮的新创意出现,并且出于某种理由,你会感觉它比你目前正在做的东西更好——这其实不符合逻辑。有些人执着于创意,但创意来来去去,实际上很廉价。执行才是最重要的。”

“游戏开发是将创意变为现实,是想象一个不存在的东西,然后通过努力将它交付给世界的过程。看到玩家玩你的游戏,玩得开心,这是一种真正的享受。”

《糖果盒》游戏画面

所以,当时间倒退回 10 年前,初次见到网页游戏《糖果盒》(Candy Box)的时候,加布里埃尔就被 ASCII Art 深深地迷住了,他开始研究和模仿 90 年代艺术家的 ASCII 风格,将其作为一种爱好。

所以,当笔者问及加布里埃尔创作的灵感来源时,他很快便写下了这张令他不断探索,并尝试将一些要素反复结合的媒介列表。

加布里埃尔提供的灵感源列表,按对本作的影响程度排列,可以看到许多耳熟能详的作品

所以,有了《石头纪》。

很多年前,笔者和一位资深从业者交流时,对方表示“一个人最大的天赋是能做自己喜欢的事”。暂且不论这是否该归于天赋,或许,这就是一类人的共通之处吧。


参考资料

[1] 本信息引自海外爱好者整理的 ASCII Art 简史页面。
[2] 具体可参见
英文单词 Animation(动画)的 Wiki 页面拉丁文单词 Animatio 的 Wiktionary 页面
[3] 具体可参见 
Perception(感知觉)的 Wiki 页面


封面:《石头纪》游戏截图
图片:如无特别说明,文中图片均来自游戏截图及作者自制