2025-02-20 10:46:18
考虑到我想做的独立游戏并不需要以画面效果吸引人,游戏是策略向的,所以 2D 表现就足够了。之前几年做的 3d 引擎对这个需求来说太复杂了,而且这次我也不打算主打移动平台,之前为移动平台做的考虑也没太大意义。所以,最近想花个把月重新搭一个 2d 游戏用的框架。当然,最重要的是:我太久没写代码了,而做这个非常有趣。
前天在 github 上开了一个新坑,具体想法写在项目的讨论区了。
虽说 2d 游戏在如今的硬件上,性能那是相当富裕。但在具体写代码时,还是忍不住想想怎么设计,性能会比较好。不然总是重复大家都有的东西也是无趣。
在现代 GPU 上实现一个最简单的 2d 管线,就是把它当成 3d 网格,一堆顶点数据填进去,绑定贴图,提交渲染即可。所谓 2d 图片,就是两个三角形,看成是 3d 世界里的一个面片即可。
所以,每个顶点的数据就是 vec2 pos ,要画一个矩形需要四个顶点,用 vertex buffer 传进去。
但是和 3d 游戏不同,2d 图片形状大多不规整,不是边长为 2 的幂的正方形,尺寸也不大。如果每张小图片(2d 游戏中通常称为 sprite)都构造一张贴图的话,会非常低效。通常我们会把很多 sprite 打包在同一张大的正方形的贴图上。这样,顶点数据中还需要定义绘制矩形对应在贴图上的区域,通常称之为 uv 坐标。至此,常规的实现方法中,每个顶点就是 4 个数据量:vec2 pos 和 vec2 uv 。因为 sprite 都在同一张贴图上,一次图形指令提交只画一个矩形就太浪费了,我们会把多个矩形的顶点放在一起,一次把整个顶点数组提交到 vertex buffer 中。
虽然 2d 游戏的大多数 sprite 只需要指定屏幕(画布)坐标渲染即可,画布可以整体缩放。sprite 单独缩放旋转的机会比较少,但也并非没有。用上面的方法怎么处理旋转和缩放呢?过去常见的方法是在 CPU 中计算好四个顶点,把结果填在顶点数据流中。btw, 很早以前,我在实现 ejoy2d 的初版时就是这么做的。这样最为灵活,CPU 计算一个 2x3 的矩阵也不慢(ejoy2d 使用了定点数,在早期的手机上性能更好)。而且,大多数 sprite 并不需要旋转和缩放,只需要做一次 vec2 的加法即可。
计算该怎么做?我们需要找到 sprite 的基准点。大多数情况下,这个基准点并不是图片的左上角。然后以这个点为坐标原点,对 sprite 的四个顶点依次做旋转和缩放变换再加上 sprite 的绘制位置。这一系列运算相当于乘一个 2x3 的矩阵。如果我们想把这个运算放在 GPU 该怎么做?顶点数据流中就不能直接放顶点计算结果的坐标了,而应该放针对 sprite 的基准点的相对坐标,以及一个 2x3 的变换矩阵。这样,顶点数据就变成了:vec2 offset ; vec2 uv ; mat2 sr; vec2 t; 一共是 10 个数据。
很明显,后面这个 mat2 sr; vec2 t; 在数据流中重复了 4 次(一个 sprite 的 4 个顶点有相同的 2x3 矩阵)。另一方面,绝大多数的 sprite 不需要旋转和缩放变换,这种情况下,mat2 sr 都是单位矩阵;即使有旋转变换,旋转角度也是有限的。整个数据流中必然存在大量重复的 mat2 sr 。怎么优化掉这些重复数据呢?我们可以用一个 storage buffer 保存唯一的 mat2 sr ,在顶点流中保存一个索引 index 即可。这样,顶点数据就剩下 vec2 offset; vec2 uv; index; vec2 t; 7 个数据。最后这个 vec2 t 不放在索引中是因为大多数 sprite 会有不同的位移坐标,而 2x2 的 SR 矩阵更容易合并。
接下来的问题是,index 和 vec2 t 还是重复了 4 次。为了去掉这个重复,我们可以采用 instance draw 或 indirect draw 。理论上用 indirect draw 更合适,但它对图形 api 版本要求高一些(如果想运行在 web 上,还是需要考虑这点),所以我选择用 instance draw 实现。
使用 instance draw 的一个额外好处是可以省掉 index buffer ,使用三角条带描述矩形即可。
但 instance draw 有个问题:它最初是为了把一组顶点数据重复渲染设计的。而这里,我们有很多不同的矩形需要同一批次渲染。即,vb 中每组数据 vec2 offset; vec2 uv; 有很多组。所以,我选择不使用顶点数据流,把这组数据放在另一格 storage buffer 中,然后在顶点着色器(vs)中通过 gl_InstanceIndex
和 gl_VertexIndex
索引它。
做到这里,我注意到:2d 游戏中的 sprite 矩形都是轴对齐的。所以,描述四个顶点并不需要 8 个量,而只需要 4 个,保存两个对角顶点即可。另外,offset 矩形和贴图上的 uv 矩形形状也是一致的,我们只是把贴图上的一个区域完整映射到画布上,这样还可以少两个重复信息。最终,我们只需要 3 对 vec2 就可以表达一个矩形以及 uv 。
而图片是以像素为单位的,贴图尺寸不会有几万像素大。这个坐标量使用 int16 足够了。所以在保存 sprite 元信息的这个 storage buffer 中,每个图元其实只需要 6 个 int16 ,也就是 12 字节足够了。最终,绘制每个 sprite 的数据为 6 short + 3 float ( x,y,index ) = 26 字节。
layout(binding=0) uniform vs_params { vec2 texsize; vec2 framesize; }; struct sr_mat { mat2 m; }; layout(binding=0) readonly buffer sr_lut { sr_mat sr[]; }; struct sprite { uint offset; uint u; uint v; }; layout(binding=1) readonly buffer sprite_buffer { sprite spr[]; }; in vec3 position; out vec2 uv; void main() { sprite s = spr[gl_InstanceIndex]; ivec2 u2 = ivec2(s.u >> 16 , s.u & 0xffff); ivec2 v2 = ivec2(s.v >> 16 , s.v & 0xffff); ivec2 off = ivec2(s.offset >> 16 , s.offset & 0xffff) - 0x8000; uv = vec2(u2[gl_VertexIndex % 2] , v2[gl_VertexIndex >> 1]); vec2 pos = uv - ( off + ivec2(u2[0], v2[0])); pos = (pos * sr[int(position.z)].m + position.xy) * framesize; gl_Position = vec4(pos.x - 1.0f, pos.y + 1.0f, 0, 1); uv = uv * texsize; }
再来看 CPU 侧的设计:
我这次使用了 sokol 做底层图形 api 。sokol api 不支持多线程,所有图形指令必须在同一个线程提交。所以我做了一个简单的中间层:绘图时不直接调用图形 api ,而是填充一个内存结构。这个结构被称为 batch ,不同的线程可以持有多个不同的 batch 。所有 batch 汇总到渲染线程后,渲染线程再将 batch 中的数据转换为图形指令以及所需的数据结构。
因为 2d 游戏据大多数情况都在处理图片,使用默认的渲染方式。我对这种默认材质做了特别优化。batch 是由这样的结构数组构成:
struct draw_primitive { int32_t x; // sign bit + 23 bits + 8 bits fix number int32_t y; uint32_t sr; // 20 bits scale + 12 bits rot int32_t sprite; // negative : material id };
其中,用两个顶点 32bit 整数表示 sprite 的画布坐标;一个 32bit 整数表示旋转和缩放量;一个 sprite id 。
渲染层会查表把 sprite id 翻译成对应的元信息(上面提到的 offset 和 uv ),当 sprite id 为负数时,表示这是一个非默认材质,batch 中的下一组数据是该材质的参数。例如,文本渲染就会用到额外材质,文本的 unicode 和颜色信息就放在接下来的数据中。
2025-02-16 14:44:04
这篇谈谈 PvE (玩家对抗环境)向的卡牌构筑类游戏。
在桌游中,PvP 向(玩家对抗玩家)的游戏数量明显超过 PvE。我认为这是因为桌游需要靠玩家自己驱动游戏规则,扮演环境的同样是玩家,其规则不能设计的太复杂,通常只能靠简单机械的逻辑驱动。或者,起源于桌游的 RPG ,比如 D&D ,则由一个玩家扮演环境(城主),这样就可以增加游戏的深度。但毕竟这种不对称规则下,玩家方和环境方很难调配平衡。RPG 这样的游戏,城主也并非玩家的对立方,大家只是在一起享受游戏过程。而在电脑上,则可以通过程序实现更复杂的环境。所以在电脑游戏中,大量的游戏转向 PvE 。毕竟,找到可以一起玩的游戏搭档并不容易。
所以,对于卡牌构筑这个具体类别,电脑上的游戏几乎一开始就是 PvE 性质的:比如杀戮尖塔,玩家一直在挑战系统而获得乐趣;而桌游中,从领土(Dominion)开始,就是基于玩家对抗设计的规则。
传奇 Legendary 系列是一个比较早的 PvE 向卡牌构筑类桌游系列。最早可以追述到 Legendary: A Marvel Deck Building Game (2012) ,后续几年发布了大量系列作品,并衍生出 Legendary Encounters 系列。关注 Legendary 系列是因为星际孤儿(Stellar Orphans)这个电脑游戏,我特别喜欢。在星际孤儿的玩家社区,有玩家指出这个游戏明显受到了 Legendary 系列桌游的启发。
传奇系列的每个作品都围绕一个题材展开,以最初的漫威系列为例,下面我介绍一下它的核心玩法规则。
游戏是由玩家对抗系统。每个玩家以开始会拿到一叠基础的英雄卡(12 张),系统则由一叠系统卡设定。
每个回合,从系统卡堆中抽出一张卡片出来推动游戏发展。如果从系统卡堆中抽到坏人卡,则表示这张坏人卡会入侵城市(摆放在桌面区);如果抽到旁观者,则绑定在坏人卡上,变成坏人的俘虏;如果抽到事件卡,则引发特殊事件。
而在系统卡结算完毕后,玩家从手牌中打出卡片组合,产生本回合的攻击点、招募点以及特殊能力。攻击点可以用来消灭城市中的坏人卡(并解决俘虏);招募点则从桌面的 HQ 列(从英雄卡堆中翻出)购买新的英雄卡增强自己的卡组。而传统的卡牌构筑类游戏规则一致,每个回合的卡片都必须全部用完,不可保留到下个回合,溢出的攻击点和招募点会作废。购买的新卡片也会先置入弃牌堆。每个回合,玩家从自己的卡组中抽取新的手牌(6 张);一旦卡组抽完,洗混弃牌堆,形成新的抽牌堆。
初始卡组由 8 张基础的招募点卡(每张 1 点)以及 4 张基础的攻击卡(每张一点)构成;英雄卡堆(形成市场)则由玩家选择的几个英雄对应的卡组混在一起。每个英雄卡组有 14 张,其中两组各 5 张相同的普通卡,三张强力卡,以及一张稀有卡。市场上永远展示其中的五张,当玩家购买后会补齐。一旦英雄卡堆用玩,游戏结束。另外,市场上永远有固定的高级招募卡(每张 2 点)可供选购。它类似于 Dominion 中的银币。玩家每个回合还可以花 2 点招募点买到一张 sidekick ,该卡只能使用一次(用完回到市场),效果是抽两张卡。
每局游戏,系统存在一个终极 boss ,在 setup 阶段需要随机选择 boss 对应的一张 scheme 卡。scheme 卡上描述了系统胜利的方法。当系统达成条件,玩家就会输掉。
攻击 boss 他需要大量攻击点,每次成功的攻击会结算一次随机的 Tactics 卡(例如,有些 Tactics 卡会增加下一次攻击 boss 的难度)。每个 boss 对应 4 张 Tactics 卡,四次成功攻击后,玩家就赢得游戏。
系统每个回合翻出的坏人卡会以队列形式在桌面推进。桌面一共有 5 个位置(地点),坏人卡从最右侧进场,在进场时需要结算坏人卡上的 Ambush 效果(若有)。如果玩家一直对翻出的坏人卡置之不理的话,坏人卡会一步步向左推进,直到离开桌面。每离开一张坏人卡,都会摧毁掉市场上的一张卡片(由玩家自己选择);如果坏人带着俘虏离开,则还要弃掉一张手牌。如果逃离的坏人卡上标注有 escape 效果,还需要额外结算。
系统卡堆中存在一些地点卡,翻出后在场上并列一排从右至左一张张排列直到排满。摆满后,新的地点卡会替换掉场上最弱的那张。地点卡会改变存在这个地方的坏人卡的能力。地点卡本身可以作为攻击目标。
系统卡堆还包含一些特殊卡(坏人卡和旁观卡之外),它们不推进坏人卡。其中:
Trap 卡给玩家一个需立刻结算的挑战。
Twist 卡会推进当前 Scheme 卡上系统胜利的某种进度。
Strick 卡会触发 boss 的攻击。
玩家的手牌没有打出费用(类似杀戮尖塔的行动点限制),但受招募费用的限制,强力卡在一开始无法从市场购得。玩家倾向于在每个回合打出所有手牌(不打出的卡也无法带到下个回合)。基本卡片只是一个招募点和攻击点,把这些点数累加起来就是当前回合可以用于购买新卡以及消灭坏人的费用。但强力卡片的打牌次序是有选择的。因为卡片会有专门的特殊能力,比如,有的卡片需要弃掉别的手牌才能使用;有的需要前置打出某些类型的卡,就有额外的能力加成(形成 combo)。
此外,击败的坏人卡、拯救的俘虏(旁观者)、Tactics 卡都附带有 VP 。当以多人协作形式进行游戏时,每个玩家单独计算 VP ,在游戏结束后,可以比较在游戏过程中获得的 VP 总数来觉得谁表现得更好(但玩家在游戏过程中依旧是合作关系,而不应该为 VP 竞争。
在 Legendary 系列之后,同一家公司推出了新的 Legndary Encounters 系列。这是换了新设计师后在 Legendary 规则上的进一步发展。系列的第一作是 Legendary Encounters: An Alien Deck Building Game (2014) 。给我的感受是,Legendary Encounters 更加注重叙事(而不仅仅是围绕一个主题),通过卡片和游戏规则的设计,玩家可以更好的融入游戏故事中。不同的题材会给玩家不同的感受,Legendary Encounters 在今年(2025 年)还会有新作推出,最新的故事看起来会在冰与火之歌的世界中展开。
我在桌游模拟器中尝试了一下最初的异形(Alien)三部曲。和异形电影体验非常接近,代入感很强。和 Legendary 漫威不同的地方是:
敌人(坏人卡)是背面朝上在桌面(场景)中推进的。玩家需要主动 scan 。这和星际孤儿的设定非常相像(应该是它启发了星际孤儿)。玩家对敌人的推进置之不理的话,敌人牌移到头会触发攻击,而受到太多攻击后,玩家会死亡而输掉游戏。
多人协作模式下,不同的玩家会扮演不同的角色。不同角色的能力是不同的。另外,玩家在游戏过程中有可能因为不敌敌人而被感染,当玩家以这种形式被杀死后,会重新以异形的立场加入游戏,变成对抗其它玩家。
每局游戏会有固定的几个阶段,每个阶段有固定的目标。这些阶段性目标被设计成和电影情节一致。玩家需要完成每个阶段的目标推进游戏,直到所有阶段达成获得游戏胜利。btw, 星际孤儿也采用了这种形式,并进一步加长了游戏故事。
2025-02-03 20:39:12
这一篇,我想先谈一个在中文社区比较小众(没有出中文版),但我个人非常喜欢的卡牌构筑游戏:核心世界 Core Worlds (2011) 。
相对 Dominion 来说,它的规则和体验已经非常不同了。
它的单位牌需要先部署到桌面(战区),而后在从桌面打出,用于征服星球(用于增强能力)。这可以促使玩家做更多跨回合的规划。而不是仅考虑当前回合的手牌怎样打出漂亮的 Combo 。每个回合,玩家可以在回合结束时保留一张手牌(同时也会减少抽牌数量),这点也是为了促进玩家更多的考虑回合间的联系。
游戏采用固定轮数,一共 10 轮 5 个阶段。每个阶段的市场牌堆都是独立的。所以,玩家会在每两轮看到不同的牌进入市场,这样会减少卡组构建的随机性,让强牌逐步出现。游戏节奏被设计的更好。 每个轮次翻到市场的卡很少,只玩一两盘恐怕大多数卡片都不会见到,这加强了重玩性。每局游戏都有不同的变化。虽然游戏有 10 轮,但游戏节奏其实是很快的。尤其是到了终局的第五阶段,节奏被刻意加快了:前 8 轮积累的大量能量,而手牌也增加了。没有新的单位卡,而换成了得分用的声望卡以及核心世界卡需要竞争。终局两轮实际是考验的是玩家前面的组卡和布局成果。
而在前面的回合,玩家每轮可以做的事情并不算太多。市场上的卡片分为星球卡和单位/行动卡。星球卡需要玩家用之前部署的部队去征服,被征服的星球卡直接放到玩家桌面提供永久能力(通常会增加能量点);而单位/行动卡则需要能量点购买,和传统的卡牌构筑规则相同,新购入的卡片需要先进入弃牌堆。市场上的卡片张数是受玩家人数限制的,每轮固定添加新卡片上场。每轮新增加的卡片如果没人搭理,则会增加一点能量奖励下一轮选它的玩家。而两轮不选的卡片则自动弃掉。这样,市场上永远都只有有限几张卡片(根据玩家人数不同而不同),玩家不会陷入选择焦虑。
在战斗征服部分,玩家单位被分为地面战和空中战两种能力。针对不同的星球,需求不同。但这些能力有可以被战术(行动)卡所改变。因为用于征服星球的单位需要花一轮部署在桌面(战区),所以,玩家可以通过观察对手部署的部队,提前了解对手的意图。实际玩的时候,先做什么再做什么,会随着对手的行动而不断变化。加上市场资源(无论是星球还是行动卡)都极为有限,游戏的对抗性就变得很强。
在实际玩游戏的时候,除了自己行动需要决策外,观察对手行动在做什么也相当有意义。这让轮转行动时等待对手行动的时间也不会枯燥。
游戏每轮分为 4 个阶段:抽牌、补充能量、补充市场、行动、结束。前三阶段玩家的选择非常有限,所以进度会很快。游戏的核心时间会花在行动阶段上。
在行动阶段,玩家受行动点和能量的双重限制。每类行动都会花掉一个行动点,玩家以行动为单位轮转。而不同行动的能量点开销各不相同,玩家可以做的是:
根据市场上的单位/行动卡标注的能量费用购买一张新卡(置入弃牌堆,无法立刻使用)。
把手上的单位卡部署在桌面战区(支付对应的能量点),只要能量够,一次可以部署多张单位卡。
使用已经部署好的单位卡去征服一个星球。同时可以利用手牌中的战术行动卡增强能力。
有部分战术卡可以单独作为一个行动使用。
玩家可以在行动阶段 pass ,能量点不会保留到下个回合,且需要弃掉手牌。和同类游戏相比,核心世界在弃掉手牌时可以保留最多一张卡片。但由于回合开始抽牌阶段的规则时补充手牌到规则上限,所以,保留手牌会减缓卡组轮替。
在最后的结束阶段(所有玩家 pass 行动),不需要玩家做行动。只是清理桌面:玩家在本回合获得的额外能量点(通常是因为选择了上一轮每人要的卡片)会累加在能量条上供下一轮使用。而两轮都没人过问的卡片则被移除游戏。
在 10 轮之后,玩家统计各自的 VP 决定谁最终胜利。大部分的星球会有 VP ,而在最后一个阶段的两轮,市场上会出现大量的 VP 卡。声望卡只需要能量就可以购买,它需要玩家在前面累积大量的能量产能;核心星球则提供多样化的 VP (和玩家卡组里的其它卡片组合算分),核心星球通常需要玩家在前 8 轮部署足够的战力才能拿下。
这个游戏提供了有限的卡组瘦身机制。我们知道,一般的卡牌构筑游戏,卡组越精简,卡组循环就越快,卡组实力便越强。把单位卡部署在桌面是一种临时缩减卡组的办法;而征服星球则可以从征服部队中选一张单位卡殖民到该星球上,这可以让玩家从卡组中永久去掉一张卡不参与循环(但依旧参与计分)。
另外,在熟悉游戏后,初始会有两张不同的单位卡(一张地面战力,一张空中战力)采用轮抽机制替换。这也增加了多局游戏的多样性。
核心世界还有两个扩展,可惜我没买到。这里就无法评说了。
接下来谈的一款游戏在中文社区就比较大众化了:星域奇航 Star Realms (2014) 。
这是一款快节奏的双人对战卡牌构筑游戏。我有一套正版的基础版,它出了很多扩展,但现在都很难买到正版了。所以我只好买了大盒装的盗版体验。
星域奇航上手非常简单。就是抽牌,从市场购买卡片、打牌攻击对手。和 Dominion 不同,它并不靠积累 VP 获胜,而是攻击打掉对手的血获胜。每个人初始有 50 点血(官方称为权威点),在初始手牌中,便有一点攻击力的卡片,抽到即可攻击。初始手牌中大部分卡片是钱币卡。10 张卡片组成的标准起始卡组为 8 (钱币) + 2 (攻击) ,这和 Dominion 的初始卡组非常类似。
市场区和 Ascension 类似,采取买一张补一张的轮换制。但市场区没有怪物卡,全部是单位卡。因为游戏的战斗全部是攻击对手,不靠打怪得分。btw, 星域奇航的作者本身就设计了 Ascension 的很多扩展,所以就不难理解这个游戏和 Ascension 的很多相似之处了。
单位卡除了可以在当前回合发动能力的飞船(提供钱币/攻击/补血等)之外,还有一种要塞卡,可以在打出后永久停留在桌面。要塞卡通常会提供一些持久能力,也可以用于阻挡对手的攻击。星域奇航创造的一条独特规则:部分卡片可以在打出后将自己销毁,提供额外的一次性能力。这种销毁发动一次性能力的卡片也包括要塞卡。所以玩家在打牌时就多了一种选择:要不要触发销毁能力。
(基础)游戏中有四种势力,分属为四种卡牌。通常单一势力的卡组更容易建立起强大的 combo 。组卡方面留下的策略空间不错,堆整个卡池越熟悉,就越容易组出强大的卡组赢得游戏。
总的来说,我还是很喜欢这个游戏的。因为一局时间比较短,规则又简单,可以经常在家里和孩子一起玩。这里再次强调游戏节奏很快,是因为它相比那些卡牌构筑前辈,可以用更短的回合数构筑出攻击引擎,精简卡组也相对容易,往往一个有趣的组合就可以打爆对手。我们玩一局的时间很少超过半个小时。
在加了扩展后,游戏还提供协作模式:由系统制造出一个强大的 boss ,两个人不再相互攻击,而是要协力击败系统。云豆更喜欢协作模式一些,只是把系统设定的几个 boss 都击败后,重玩不够有趣。
在写了这么多对抗类的卡牌构筑游戏后,下一次我想改谈协作类型了。由玩家对抗系统,或许更接近我自己要做的电脑游戏一些。
2025-01-11 19:53:34
上篇提到的 Dominion 和 Ascension 都没有使用传统 TCG 中打出卡片的费用设定。TCG 游戏中给卡片设定不同的费用很好理解:在游戏前自由组卡的游戏,如果不给卡片设定打出限制,玩家只需要尽可能的选择强力卡片放在卡组里,游戏过程中先抽到的人就会占据优势,这就变成了一种运气游戏。
卡牌构筑游戏更多的是用购买卡牌的费用来做限制,让强力牌是逐步加入战场的。玩家不能一开始就购入强力卡片,即使到可以购买的中期,卡片也会先进入弃牌堆,相当于等待一段 CD 时间才能抽回手上。但只有这还不够,必须考虑游戏中后期的平衡:在牌组构筑成型后,一套强力组合若能轻易打出,也会让游戏一边倒。所以,还是需要对打出功能卡做出一些限制。
Dominion 的做法很简单,默认每个回合,玩家只能打出一张行动卡。如果需要打出多张行动卡,就需要配合加行动次数的行动卡。而且加一行动的卡片只能让自己加入当回合的行动链中,只有加二以上行动的卡片才能拓展行动选择。同时,购买牌的次数也被限制了,必须通过行动卡扩展。
Ascension 不一样,它即不限制每个回合打牌的数量,也不限制购买数量。所以几乎每个回合,玩家都会打出手上的所有牌,变化只在于打牌的次序。那么,平衡是怎样实现的呢?这个游戏我玩的不多,只能谈一下粗浅的理解。
Ascension 提供了两种得分手段:用符文购买牌时,除了新牌加入牌组增强实力外,还额外附带了 VP ;使用力量杀怪,直接获得 VP token 。玩家很难在构筑时同时考虑两方面:增强符文能力(更容易买到新牌)以及增强力量(更容易杀怪)。而中间公共市场列是随机抽出来的,每去掉一张牌,无论是购入私人牌组,还是杀掉怪进入虚空区,都随机出现一张新卡。即使在后期玩家牌组能力够强,同一回合有超强的买牌能力(符文充足),也会造成市场列出现全是怪打不动的情况;反之亦然,怪一下子杀的太多,中间就没有怪了。
所以,即使有强力的手牌组合,也很难全部发挥它们的能力兑换成同价值的 VP 。公共市场区的随机性造成了一定的制约。再者,Ascension 公共市场的竞争远较 Dominion 的市场高,玩家更不容易组出心目中的理想卡组。
我比较关注游戏还会用什么规则去限制手牌打出。毕竟游戏必须给予玩家不同的有意义的选择,如果每次拿到手牌就无脑全部打出也太无趣了。只有在限制下,玩家才需要决策打哪张更好。在传统卡牌战斗游戏中,传统的方案是给行动卡加上费用,强卡费用高一些,弱卡低一些。但大多数 DBG 都没有这个设定。我认为这是因为其成本在购牌时已经区分过一次了。当然也一定有游戏采用这种经典机制,比如我非常喜欢的 Core Worlds (2011) ,后续我会详谈。
卡牌的游戏过程,能够产生的变化(玩家的选择)主要可围绕三个方面:打牌、弃牌、构筑。可以把效果和限制分别加在这些行为之上,让玩家去选择针对哪张卡片实施何种动作,以及这些动作的执行次序就是规则的设计空间。
Nightfall (2011) 夜幕降临 是一个打牌机制非常独特的卡牌构筑游戏。只要玩一盘就能感受到和 Dominion 的游戏感受非常不同。
这是一个以玩家之间混战为主题的游戏。和 Dominion 一样,计分也是做成卡牌会混入玩家卡组的。但和 Dominion 的玩家尽力购买高分卡片不同,Nightfall 的计分卡片可以视为负分。玩家应该避免把它加入卡组。它把玩家所受到的伤害做成卡片,一旦玩家被攻击成功,就需要加入伤害卡到自己的卡组。当公共卡池的所有伤害卡耗尽,游戏结束。私人牌组里伤害卡最少的玩家获胜。
伤害卡没有实际功能,在常规 DBG 中,这类卡会降低卡组质量。为了避免让领先玩家形成正反馈,所以游戏加入一条规则,只要手牌中有伤害卡,每张都可以再抽两张手牌。但每个回合只能执行一次,即用这个能力新抽出来的伤害卡不可以继续额外抽牌。
夜幕降临打出卡片采用了一个独特的六色轮系统。每张卡片属于六色之一,并有一到两种后续关联颜色。玩家每个回合需要按颜色连锁出牌。例如,一张卡片的颜色是红色,连锁色是蓝色和绿色,那么打出这张卡后,可以再打一张蓝色卡或绿色卡,而不能打出其它颜色的卡片。每张卡片上还有激活颜色,如果符合上一张打出卡片的颜色就可以获得额外的能力。一套连锁打出后,连锁效果以反向次序结算,即最后打出的卡片最先结算。另外,游戏对连锁机制还做了一个巧妙的设计:当一个玩家无法进一步连锁出牌,其它玩家可以在该玩家的回合内加入连锁。也就是可以在对手回合出牌。
连锁机制在传统 TCG (万智牌)中非常常见,而在 DBG 里比较少见。这恐怕是因为 DBG 比较注重构筑过程,所以一般游戏会设计一些资源卡用来实现从市场买牌的构筑过程。这种发展过程在 TCG 中是比较弱化的,且预先组好的卡片也更容易实现玩家的连锁目标。如果在 DBG 里实现同样的效果,就需要让更多的卡片参与战斗功能,卡片的能力之间也不要差距太大,方便玩家构筑套路。
夜幕降临去掉了纯粹的资源卡。每个回合都直接给玩家两点费用用于购牌。额外的费用除了放在部分卡牌本身的功能上,也允许玩家通过弃手牌的方式换得更多资源。用手牌做费用的方式我最早在银河竞逐中见到,这是一种不错的设计,能提供给玩家更多决策空间:是在当回合打更多牌出来,还是留一部分牌用于发展(购买新卡)。
夜幕降临玩起来非常激烈。和传统 TCG 不同,打出的仆从卡在下一个回合必须尽数用掉,只做一次性攻击结算后就进入弃牌堆。这相当于每个回合把牌打到桌面,固定结算一次连锁效果后,再延迟发挥一次攻击能力,待到轮回到自己行动时,桌面卡片就全部退场,玩家重新部署新的卡片。玩家每个回合都需要选择铺场,节奏很快。
值得一提的是,夜幕降临除了后续扩展包扩展规则外,在 2024 年以这个核心规则重置了一款新游戏 Unchained (2024) 。虽然是重置,但还是改变了不少细节。我觉得最值得一提的是市场机制从类 Dominion 的固定市场改为了像 Ascension 那样的随机市场,但并不是简单的只是从一个市场牌堆中随机抽出排成一列。
老的 Nightfall 的市场是以玩家一开始轮抽的方式决定 8 种公共市场牌堆和 2 种私有市场牌堆。除了私有市场的设定相比 Dominion 增加了一些变化外(放置玩家之间模仿别人的构筑方法),基本还是考验玩家以对卡牌的理解在开局时做出的策略规划。
而 Unchained 改用了 3x3 矩阵方式的市场,从洗乱的市场堆中铺满 9 张卡片供玩家选购。卡片的费用被简化为两级,普通卡和稀有卡。玩家必须先花一点费用从任一行或任一列中购买一张普通卡,然后才能再花两点费用从同一行(列)中购买第二张卡。只有第二张卡才能选择稀有卡,第一张不行。另外,游戏加入第二种资源 Talent 天赋点用来购买额外的卡片(不限制在同一行)。购卡费用还可以用来刷新市场,每点费用可以用来刷一行或一列,只要费用足够,可以无限执行。当市场卡堆耗尽,会洗牌重建。
据说这个设定来源于奥法之战 Res Arcana (2019) 的一个玩家变体。btw, Res Arcana 是我最喜欢的卡牌游戏银河竞逐作者的新作,虽然不属于 DBG ,但也是一个得分引擎构筑游戏。其玩法也值得一书。留到以后再记录。
Unchained 还放弃了固有的起始手牌设定。在 Nightfall 中,起始手牌用过一次后都会销毁,作者本就不打算让玩家在游戏过程中依靠它们,只做游戏初期启动使用。Unchained 干脆去掉了起始牌组,让每个玩家从普通市场卡堆中随机抽 5 张的方式作为起始手牌。这应该也是因为这个游戏重在卡片组合,Unchained 重新调整过平衡后,单张卡片强度差别不大,所以不必过于强调起始牌组的对称性。同时也进一步加快了游戏节奏:第一回合就可以打出丰富的行动。
还有几个小改动值得称道。
Unchained 的所有卡片都去掉了文字,只使用符号。这说明游戏不需要设计一些特殊卡片能力来平衡游戏。
每次玩家抽牌堆耗尽冲洗弃牌堆时会加入一张伤害卡,这应该是为了平衡玩家对卡组极端瘦身,只使用几张卡片循环游戏。
Nightfall 继承了 Dominion 的设计风格,尽可能把一切都设计成卡牌。比如计算卡片伤害就是通过旋转桌面上的卡片来表示的。Unchained 放弃了全部使用卡片这个追求,回归到传统使用不同的 token 来计量伤害和防御,购卡用的两种费用也改用 token ,可以累积。在 Nightfall 中,和传统 DBG 一样,当回合的购牌资源不用即废;而在 Unchained 中则可以通过 token 累积。
2025-01-10 21:24:16
现在有非常多的桌面游戏加入了卡牌(卡池)构筑的游戏机制,用来丰富游戏玩法。我想总结一下以卡牌构筑为核心玩法的若干经典桌面游戏的核心规则。要记录的游戏太多,所以我会分成多篇 Blog 来写一个系列。这是第一篇,从历史最为悠久的经典游戏写起。主要谈以卡牌构筑为核心,而没有混杂太多其它机制的游戏,列出其具体的核心规则方便日后参考。
首先是开山鼻祖 Dominion (2008) ,官方译名皇舆争霸,在出中文版之前我常称之为领土。它奠定了此类桌游的基础模式:从一组功能简单的手牌开始,在游戏中不断购买新卡加入自己的卡组,在后续回合中这些更为强力的卡牌可以完成更多行动或积分,玩家尝试比对手获得更多 VP 取得胜利。
Dominion 起始牌组 10 张,7 张价值 1 的钱币和 3 张 1 VP 积分卡。玩家以 5 张手牌开始,在回合结束弃掉所有未用手牌重新摸 5 张手牌。VP 卡只用于终局计分,在游戏过程中没有用处。钱币卡可以用来购买公共市场中的 10 种每局游戏不同的功能卡以及每局游戏必有的价值分别为 1 2 3 的钱币卡,价值为 1 3 6 VP 的计分卡。每回合未用完钱币同样不累积到下一回合。新购买的卡片置入弃牌堆,不能立刻使用。
玩家在回合中默认可以打出一张功能卡并购买一张新卡。单功能卡的效果可能扩展这个能力,允许玩家在一各回合中打出多张功能卡,或购买更多新卡片。回合中打出的卡片不会立刻进入弃牌堆而是停置在桌面,直到回合结束才进入弃牌堆。所以即使玩家的行动让他能够在回合中不断抽卡,也无法无限循环。
游戏在公开市场的部分卡片或 6 VP 卡片购买完毕后结束。结束后以每个玩家牌库中 VP 数量决定谁是胜利者。
Dominion 出了非常多的扩展,这些扩展在核心规则上添加了很多变化。大多数扩展一开始就设计好了,并非逐步发展出来的。把复杂的规则拆分到本体和扩展包中似乎是桌游常见的创作手法。这可以让玩家不要一下接触太多概念,还可以增加整体销量,可谓一举两得。关于 Dominion 的创作过程,推荐作者自己的记录 。里面可以看到一些有趣的东西,比如,把 VP 做成卡片我觉得是神来之笔,因为在此之前我玩过的其它桌游中,VP 都是额外计分的。这种做法可以一定程度抑制领先者的优势(获得更多 VP 的玩家,牌库也会变差,可能摸到无用的手牌);但作者的说法是,这并不是主要的设计目的,而存粹是觉得做一款一切都是卡片的游戏符合他的审美。
Dominion 没有单人玩法,所以规则都是围绕玩家竞争设计。本质上玩家需要根据每局游戏不同的 10 种王国卡(功能牌)构想最佳的得分引擎。但王国卡和 VP 卡的总张数有限,所以针对公开市场种卡片存量这个稀有资源,制造了游戏进程中的竞争关系。通常对手都慢慢发展,你也可以慢慢发展;一旦对手加速,你也必须加速(即使卡组尚未达成最佳构想)。当然游戏中也设计了交互卡,可以干扰对手的行动:基本套路上让对手弃掉手牌或加入诅咒卡(降低卡组品质并减 VP )。
我曾经玩过上百盘 Dominion (以及 2011 年前发行的所有扩展),非常喜欢。它的核心规则非常精巧,可谓增之一分则太长,减之一分则太短。让人觉得这个游戏就应该设计成这样。这是一个考验玩家对王国卡组合的熟悉程度的游戏,很多组合是作者精心设计出来的,但有些也是临时组合在一起发生的化学反应。抽卡的概率让合适的卡片买齐了却组合不到一起,或是以极小的概率形成一次大爆发。
我认为在本质上它和传统 TCG 是共通的。传统 TCG 是用地牌或自增长水晶来推进游戏进程,开局只能打小费用卡片,慢慢可以打出强力卡;玩家可以选择先积累发展用的能力,也可以牺牲发展来获得立即收益。DBG 则是通过从卡池购卡完成这个递进过程的:先用低效卡片购得强力一些的资源卡(比如银币),让获得高费卡片更快一些,也可以更早去抢功能卡。我们可以把 DBG 的市场卡看成是 TCG 中的强力卡片,玩家多了一种控制抽卡概率的能力,可以控制在什么时机点把什么卡片加入后续的抽牌中。DBG 比较依靠卡组循环,打出的卡经过一轮循环又可以重新使用。我觉得这可以看成是行动卡的 CD :因为强卡多半是游戏中后期购入,这时玩家卡组也会比较大,可以视为 CD 更长。而前期卡片循环更快,可以重复使用的次数也就更多。有了这种在游戏过程中的购牌和卡组循环机制后,DBG 就可以去掉 TCG 中常见的卡片打出费用的设定了:因为强力卡及强力 COmbo 在游戏前期玩家无法(购得)打出,后期打出频率降低。
接下来是 Ascension (2010) ,暗杀神。我认为它不是简单的 Dominion Like ,而是做了极大的变化,但依旧还保持着 Dominion 最核心的卡牌构筑机制:在不太长的单局游戏进程中,玩家从公共市场中选择更强力的卡片完成中后期的游戏进程。和 Dominion 一样,我同样认为其本质还是围绕公共市场的牌构成的卡池,玩家控制卡牌出现的时机(购牌)和概率(组卡),看谁能更高效率的得分。
不同点在于,每局游戏 Ascension 的总卡池信息对玩家部分隐藏了,而不像 Dominion 那样 10 张王国卡随机组合后一开始就展示给所有玩家。Ascension 的公共卡池是在游戏进程中逐步展示给玩家的。
暗杀神的 VP 不以单独的卡片呈现,附在功能卡上。但卡片设计还是符合高分卡能力低的规律。它有额外的独立积分 Token 可以累积,不会影响玩家卡组质量。游戏结束条件也设置在总 VP Token 消耗干净的那一刻。
Dominion 只有金钱一种资源用来购卡。虽然 Dominion 在前,但单资源的设定我认为更少见。过去很多桌游中都会设计不只一种资源并加入资源转换的途径,这样可以制造更多变化供玩家选择。Dominion 的作者也提到,设计之初其实是有多种资源的,只是最终的版本看起来更好,至少不会让玩家抽到的手牌中有无用的资源搭配而过于沮丧。
Ascension 则不同,游戏内的基础资源被设定为两个:购买卡片的能量点和打怪用的战斗力。区分出两种不同资源的目的性很强:购买的卡片会进入弃牌堆,延迟发生效果并可多次使用;而战斗力用来杀掉公共市场区的怪物卡片,获得卡片上的一次性收益。这种一次性收益也常包括额外的 VP token ,但区别于被置入牌组的 VP 卡,它不会降低牌组质量,并同时推进游戏进程。
因为公共市场区是随机推进的,需要玩家主动消耗掉一张,才会抽出一张新卡,通过杀怪来刷新市场也是游戏中常见的 Combo 。
买牌获得延迟循环收益还是通过杀怪获得一次性收益,这提供给玩家明显的不同选择。另外,Ascension 的核心规则中还加入了建筑卡。建筑卡和其它卡片一样通过购买获得,但之后打出可以停留在桌面,为玩家提供后续的永久每回合收益。建筑卡可以避免抽卡的随机性影响,还能解决游戏后期卡组过大导致强力卡片能生效次数不足的问题。同时也在玩家交互中发挥作用,
Ascension 的卡片组合是预设的,一开始就被分为四组。同组卡片设计时就留有套路。到每局游戏中,随机性则体现在它们出现在公共市场中的时机并不确定。游戏也提供了固定可以购买的卡片:3 点能量购买的加 2 能量的卡(相当于 Dominion 中的银币);2 点能量获得 2 点战力;以及 2 点战力可以获得 1VP 的小怪。起始牌组为 8 张 1 点能量卡以及 2 张 1 点战力卡。
Ascension 在之后的十多年中也出了大量的扩展,添加了很多玩法。作为一个历史悠久,一直在发展的游戏,平衡性公认做得不错。我没有和人玩过实体版本,但玩过电子版多盘(steam 上有),感觉很不错。我想给它的核心规则一个高分,和 Dominion 一样,属于规则简洁没有冗余。
Ascension 也是为多人竞争而设计的规则。因为公共卡池随机刷卡,同时展现的卡片种类有限,具有时效性。所以玩家抢夺公共卡池更为激烈。相较而言, Dominion 更提倡玩家提前规划,玩起来也更容易自闭(自嗨)。但 Ascension 更容易设计出系统对手,只要以一个固定规则销卡和得分,压迫玩家尽快完成游戏即可。官方规则书上提供了一个单人玩法,也有社区玩家设计的更复杂的单人游戏变种(MO's REALMS SOLO VARIANT)。
Ascension 提供的新设计思路不错:让玩家在获得一次性收益还是持久循环收益上做选择。卡池的组合提前设计好,但是否能在游戏局内达成则受卡池抽牌的随机性影响。市场的短期时效性增进了玩家的竞争。杀怪产生的一次性效果也多了一类 Combo 路线。
Star Realms (2014) 星域奇航 明显受到了 Ascension 的影响。
它把游戏改为了两人对决(变体可以扩展到多人游戏),胜利条件转为了战斗,攻击对手的 HP 。这让游戏玩法更接近传统 TCG :铺下仆从,攻击对手,尽可能减少对手 HP 。
游戏以 8 张 1 块钱卡片和 2 张 1 点攻击力卡片作为起始卡组,这和 Ascension 完全一致。固定市场被简化为 2 块钱(废弃时 2 点攻击)的一种卡片。而游戏的公共市场设定基本和 Ascension 一样,但因为它不再是杀怪得分了,所以市场上没有了怪物这种获得一次性收益的卡片,全部是可购买后续使用的手牌。建筑卡变成了传统 TCG 中的仆从卡,可以用来攻防。但持久收益和一次性收益的选择被保留下来,卡片可以选择打出发动效果回到弃牌堆循环使用,或是废弃卡片获得额外的一次性收益。
星域奇航以攻击目标 HP 为目的的胜利条件很容易改造出单人玩法。我玩过扩展包中的几种单人任务,感觉还不错:设定一个 BOSS 和一种攻击方式,就可以用一种不对称规则来以打败 Boss 为目的进行游戏了。
Clank! (2016) 我认为在卡牌构筑部分的核心规则也是 Ascension 的变体:在一列随机不断抽出的公共市场列中,玩家选择购买强力卡片后续使用,或是获得即时的一次性效果。
但 Clank! 添加了不少版图移动玩法,不是一个存粹的卡牌构筑游戏。我也只读过说明书没实际玩过,所以这里不多做介绍。
Clank! 把重心从玩家间对抗转移到了对抗系统,我认为这个方向很适合向单人或协作型游戏的。
之所以每每强调单人玩法,是因为我做此记录的动机在于给我自己在设计的电子游戏做参考,而单机电子游戏很少考虑玩家间对抗规则。而桌游玩家反而多考虑多人竞争的游戏模式。事实上 Clank! 已出了以玩家协作为主,有传承机制的版本 Legacy: Acquisitions Incorporated (2019) 。
Shards of Infinity (2018) 继承了 Star Realms 的玩法,并有一些变化。
多了一种雇佣军卡片。雇佣军可以选择在买的时候立刻生效而不是先进入弃牌堆等后面抽到,但代价是用完后在回合结束时放回卡池底部而不进入玩家弃牌堆,且以后不可以再使用或购买。
增加了一种资源 Mastery ,可以视为经验点。Mastery 在游戏过程中累积,但并不会花出去。部分卡片在玩家拥有更高数量的 Mastery 后,可以发挥更高效力。比如每个玩家起始牌中都有一张卡片根据 Mastery 决定攻击力,当玩家累积到 Mastery 上限 30 后,这张卡的攻击力为无限大,也就是一旦玩家有 30 点 Mastery 并抽到这张卡就可以直接击败对手。
玩家手牌中如果具有盾牌标记可以用来展示防御(消减)对手的攻击。
下一篇我想谈 Nightfall 和 Legendary 系列。
2024-12-24 20:00:20
这个月玩了许多游戏,有电子游戏也有桌游。主要是想更好的理解卡牌构筑类游戏的设计点,回答我自己在设计过程中的一些疑问。今天写一篇关于卡牌构筑类游戏的总结。
卡牌构筑类的电子游戏引爆于 2017 年的 Slay the Spire 杀戮尖塔(它或许受到了 2014 年 iOS 上 Dream Quest 的启发),启发了数以千计的类似游戏诞生。追其源头,是从更早的桌游开始。所以,我对这个类型的桌游做了一些研究。对于有兴趣的同学,我推荐 Youtube 上的 How to design a DECK BUILDING board game ,它做了非常不错的总结。我也是在看完这个视频后了解到一些过去没玩过的桌游。
桌游中的卡牌构筑机制,始于 2007 年的星际争霸。这是当年我最喜欢的桌游之一,曾经几个周末都和朋友玩它。它的缺点是需要特别大的桌面空间,还有几个肯花一下午时间玩上一盘游戏的朋友聚在一起。如今,大场地易得,玩友却几乎无法筹齐了。当时在玩的时候,尚未意识到其中的战斗卡牌玩法开创了一个新机制,只是觉得有趣:在游戏中,随着科技升级,可以从卡池中购买一些新的高级的战斗卡放到自己的牌库中,增加或增强自己战斗获胜的几率。这似乎是一个比扔骰子更好的随机方案,在此之前,同样需要花一整天玩的桌游 Axis & Allies ,就需要反复在骰子塔中哗啦啦的扔骰子。
真正第一个围绕这个游戏机制设计的桌游是 2008 年的 Dominion 领土。在领土之前,也有诸多用不同卡牌构筑成一个玩家自己的牌库的游戏。例如经典的万智牌和游戏王。但它们最大的区别是,万智牌这样的玩家牌堆构筑过程是在游戏开始之前,而领土这样的游戏是以固定几张基础牌组成的牌库开始,在游戏过程中逐步完善自己的牌库。这给了玩家全新的体验:不仅需要用精心组合的卡牌击败对手,还要选择合理的成长线路。在 BoardGameGeek 网站上,把万智牌的组卡机制称为 Deck Construction ,而将领土的机制归为 Deck, Bag, and Pool Building 。本文讨论的是后者,在这个机制分类中,构筑的是卡堆中的卡片还是黑布包里的指示物并不重要。它们都是把玩家每次选择的可能性放在一个黑箱中抽取,玩家可以自主的在游戏过程中改变这些选择的可能性:购买新的卡片、升级、销毁已有的卡片。btw, 玩万智牌的同学跟我说,万智牌玩家也不总是提前组好自己的牌去和别人玩,临时开包轮抽组卡也是一个特别流行的玩法。这个轮抽机制在 BGG 上被列为 Closed Drafting ,和它差不多的机制还有把卡片公开摆放在桌面上,玩家轮流选择,被称为 Open Drafting 。
Dominion 于桌游就像 Slay the Spire 于电子游戏一样,卡牌构筑机制迅速的启发了大量的新游戏,各种细节被不断的打磨、和其它游戏机制整合在一起。现在打着这个标签的桌游超过了 4000 个。为什么这个机制如此吸引玩家?我觉得卡牌构筑机制就像 RPG 游戏的升级过程,不同的是,成长的不是玩家操作的角色的各项数值,而是一组卡牌。玩家可以在短短的几十分钟内就能享受到这种成长过程。卡片又是一个极好的游戏规则载体:它可以把不同新奇的游戏元素写在卡片上,减少了玩家一次性学习全部游戏规则的成本。同时,抽取卡牌的机制让玩家同一时间面对的选择变少:玩家只能从手牌中的行动中做选择,而游戏本身却可以设计更多的玩法,却不需要一下全扔给玩家。相比传统的扔骰子制造的随机性,牌堆的管理给了玩家更好的掌控感:概率是不断变化的,可以随游戏进程被玩家操控控制。
卡牌构筑游戏发展的这十多年,围绕游戏过程中,玩家卡组如何升级,不断有游戏做出不同的尝试。
市场,就是玩家在游戏进程中可以获得更强力卡片的地方。最早的领土采用静态市场,游戏一开始就把 10 叠王国卡放在桌面,每叠都是完全相同的卡片。游戏的核心玩法之一就是每个玩家从这个市场购买卡片完善自己的卡组。静态市场的优点是增强了策略性。玩家在游戏一开始就可以考虑如何构建自己的得分引擎,每盘游戏都是在贯彻这个策略。这同样也可能是缺点:单局游戏内的变化不足。
马上就有很多游戏尝试使用完全动态的卡组:洗混一组各不相同的卡片,在桌上拍成一列,玩家可以自由选择购买。一旦一张卡片被买下来,就会从卡堆中再翻出一张新卡进入市场。通常,这个设计还会伴随着市场上卡片的动态成本:一般会让新翻出来的卡片成本较高,随着卡片被买走,大家不要的卡片会移动到低价区,甚至放上一些游戏内的资源在卡片上作为购买额外奖励。
完全随机的市场提升了游戏的多样性,也降低了策略性。尤其是单人模式下,很容易让赢得游戏变成看脸。所以,又有游戏尝试改进,混合静态市场和动态市场的设计:部分卡片是固定出现在市场上的,部分随机;或者把卡片分级分到不同牌堆里洗混;还有把市场上的卡片变成若干小组,只有一小组买空,才从未来市场由玩家自主选择新的一组卡片,等等。
购买卡片,从市场上摆放的明牌选择,也有游戏尝试变成在一个小范围暗抽。对于多人游戏,还可以设计为竞拍;或是针对不同玩家安排完全独立而不同的商店,这会强制玩家在同一局游戏中有不同的发展路线。每个玩家拥有独立的商店,也让玩家对战时,攻击对方商店中的卡牌成为一种玩法。
购买新的卡片在传统上会进入玩家的弃牌堆,需要玩家在用完当前的抽牌堆后才有可能使用。但也有游戏尝试购买卡后直接放在抽牌堆顶部,下个回合就可以使用,甚至直接进入手牌。为卡牌设计一个购买时触发一次性能力也是一个选项。由于桌游不同于电子游戏,需要玩家在完全熟悉规则后手动做所有的操作,所以设计更复杂的机制并不常见。在电子游戏中常见卡牌升级桌游中比较少见。但也有桌游会使用替换手牌的形式升级卡牌。
在卡牌构筑游戏中通常会设计一种货币用于购买新卡。领土采用的形式是金币卡,这种卡片除了购买新卡没有别的功能。金币不可跨回合累积,玩家可以购买单张面额更大的金币卡提升自己的购买力。也有游戏把货币变成 token ,允许玩家累积。在这种设计下,常见的是设计多种货币,并辅以某种兑换规则。规则一般不会让玩家累积太多 token ,策略点会设计在玩家需要更有效的积攒不同的 token 达成目标,兑换很多时候是低效的方案,让玩家不至于卡死。货币可以视为游戏中的不同维度的可以积攒的数值点。多种货币也可以让不同的牌组发展方向分散在不同点上,例如,买新卡使用一种货币、升级卡片用另一种、把弱卡移除游戏又是一种、战斗力、生命值都可以是不同的货币。在单人游戏 Legacy of Yu 大禹治水以及同一作者的 Shipwrights of the North Sea: Redux 中都有不错的设计。
也有不使用额外货币用于买牌的游戏。买牌的费用可以使用行动点或多余的手牌支付。这样,玩家在每个回合行动时就需要权衡是否需要减少本回合的行动去购买更强的卡为未来计划;或是需要扔掉未来机会和可能用到的卡片来支付购牌成本。
也有不通过商店购卡来改变卡组的游戏。比如 Coffee Roaster 咖啡烘培师,每个回合不断的从袋子里抽出 token ,可以合成、分解、保留代表咖啡豆的 token ,并在每轮结束时对本轮的 token 统一升值。当玩家自己决定结束这个过程后,再在最后一轮依次抽出 token 组成最终的组合计算得分。btw, 这种赌下一次抽牌会保持好运气的游戏机制被称为 press your luck ,过去在骰子游戏中用的较多,咖啡烘培师把它用在构筑类游戏中非常成功。同样成功的以 press your luck 为核心机制的电子游戏当属今年的最佳独立游戏小丑牌了,玩家需要通过有限次的弃牌出牌,尽可能的让牌型组成基础高分。
打牌环节也并非千篇一律。
典型的游戏会选择一张张卡片打出,每张卡片对应一个行动。多张卡牌及它们的次序往往会形成一个 combo ,获得比单张卡片效果更大的收益。但也有不少游戏设计成直接把一把手牌一次全部打出,根据其组合兑现效果。小丑牌就是典型。桌游中这两年评价很高的沙丘,也是会在回合结束时一次结算未打出的卡片上的整体效果。
对于单张牌的效果上,除了设计打出产生效果外,还可以把弃牌也设计一个效果。即,每张牌都可以有两个不同的效果(同时列在卡片上),玩家可以选择弃掉这张卡(不效果行动点)获得其中一效果,或是打出这张卡(消耗行动点或其它费用)获得另一个效果。这种多效果的设计,比较多见于有多种货币/资源设定的游戏中。玩家通常可以弃掉一些打不出的卡牌来换取一些不同的资源。
有些游戏还会设计超过两种使用卡片的方式:例如,打出并同时销毁卡片可以相比普通打出后回到弃牌堆的方式,多获得一些收益,可以让玩家杀鸡取卵来应对眼下的危机;支付一些费用把卡片打到桌面,让这张卡片在以后的游戏进程中持续发挥功能,或是在未来回合再使用它的一次性功能。
把卡片先打在桌面,之后再发挥卡片作用,这个点子比卡牌构筑游戏出现的更早。像万智牌和炉石传说等游戏,都需要玩家把随从牌先打在场上,再发挥作用。一些卡牌构筑类游戏继承了这个机制,但通常会做一些简化。这是因为,卡牌构筑类游戏,卡组是在单局游戏过程中进化的,把卡片一直留在桌面不太合适。Core worlds 就是典型,战斗部队卡需要消耗费用打在战区(桌面),之后在占领星球卡时可做一次性使用。但玩家不必在当回合使用,而可以选择保留在未来任意时机。在 Aeon's End 中,这个规则增加了变化。打在桌面的法术卡,可以选择放在 open 区一直保留到需要时使用,也可以用较小成本使用专注能力施法,但强制在下个回合结算,无法保留。
对于打出发生效果的卡片,传统的规则处理方式是暂留在桌面,待整个回合结束后同所有手牌一起置入弃牌堆,然后从抽牌堆补充固定数量的手牌。如果抽牌堆抽空,则重洗弃牌堆,形成新的抽牌堆。这里的每个细节都可以改变,尝试新的规则变体。例如:打出的卡片可以立刻回到抽牌堆,这样就让玩家在小牌组的基础上尝试更长的 combo ,同一个回合把牌组里的单张卡使用多次。还有许多游戏并不把抽牌堆重置为新的抽牌堆,而是把抽牌堆抽空作为推进游戏进程的一种方式,或是让玩家在抽空牌堆时直接失败。
还有像 Aeon's End 这样的游戏,完全不洗牌,需要完整决定每张弃牌的次序,待抽牌堆抽空时,直接把弃牌堆翻过来形成新抽牌堆使用。这虽然减少了洗牌带来的随机变化,但增加了玩家的策略深度:玩家需要一边打当回合的牌,一边为未来回合的手牌做规划。
传统游戏规则倾向于让每个回合相对独立,所以回合结束会弃掉所有手牌,下个回合再抽新卡。但也有许多游戏选择保留手牌,玩家需要做手牌管理。亦或是两者混用:玩家可以选择花掉一些费用保留部分手牌。有些卡片打出会有延迟效应,其效果是在下一回合发生。影响下回合的行动点、购买新卡的能力、抽牌数量等等。这样让回合之间构成更多的联系,玩家需要做较为长期的规划。
卡牌构筑游戏中,通常会设计一些对游戏进程没有好处,甚至是有负面作用的卡片,塞入玩家的卡组。以领土为例,得分卡只在终局积分时才有意义,打牌过程抽到卡组里的积分卡,纯粹是占据手牌位置,降低当回合玩家的能力。但得分又是游戏目的,玩家不得不购入计分卡。这种对游戏目标有高价值,但游戏功能为零或是很弱甚至负面效果的卡片,对游戏领先玩家有制衡作用。玩家可以是主动购入的,也会因为玩家间的交互行为被动加入(如领土中的诅咒卡)。在单人游戏中,也常见系统规则为玩家牌组添加许多这种负面卡片。
围绕这种负面卡片机制,很多后续游戏也设计出新花样。Heat: Pedal to the Metal 热力狂飙中的热量卡设计就非常有趣。这里推荐作者的设计笔记 ,值得一读。Heat 中的热量卡在回合结束后是不可弃掉的,需要特定的冷却行动才可以主动弃掉。所以,玩家在游戏过程中,累积了太多热量卡在手牌中,有可能面临整手牌没有行动卡可打(赛车过热),造成失控。同时,热量卡又是其它一些行动的费用,完全没有热量卡也无法让赛车跑得更快。这个设计真的是非常巧妙。
玩炉石传说的玩家都知道,并不是组足够多的强力卡片在卡组里就更强。反而强力卡组往往是牌的总数越少越好。所以炉石这类游戏会限制构成牌组的卡牌总数下限,而不对上限做限制。这是因为,卡组数量越少,手牌抽到计划内组合的概率就越大。但卡牌构筑游戏的单局游戏中,玩家卡组是不断变化的,通常以很少量的恒定基础卡组开始(传统上是 10 张),玩家需要不断的加入效能更高的卡牌,但又有一个渐进的发展过程。卡组瘦身 Deck thinning 是需要设计的玩法。大部分卡牌构筑游戏,玩家裁剪自己的卡组都是提升卡组质量的总要途径。
比较简单粗暴的方式是用购买新卡相同的资源去掉初期的弱卡,例如杀戮尖塔的核心规则里,就可以在商店花钱去掉不要的卡。把删除卡片的功能放在中后期的强力卡片功能上也是一种方法,或者放在游戏进程的阶段性奖励上。另一种方式是把裁剪牌组和得分结合起来,Dale of Merchants 商人谷里面玩家可以通过把一套组合集齐在手中 (Set Collection)然后移出游戏的过程即得了分,又对卡组瘦身。
并不是所有游戏都把 deck thinning 当作增强卡组的手段而鼓励玩家不断删除自己卡组里的卡片。比如在大禹治水中,更快的抽空牌堆意味着游戏进程加快,导致玩家没有足够多的行动次数来完成游戏。即使用不上商店中新卡片的功能,玩家也不得不持续购买新卡保持自己的卡组大小。同时,游戏规则也让玩家更轻易的永久移除卡片(获得临时的收益加成)。
毁掉卡片获得一次性收益这点,在单局时间较短的游戏中比较常见。这种游戏玩家往往洗不了几次牌,比如 Star Realms 中,每张卡片打出是选择进入弃牌堆还是移出游戏就是非常重要的决策点。
因为卡牌构筑这种机制非常受欢迎,所以慢慢的,出现了许多并非单纯围绕卡牌构筑机制的游戏。对于桌游来说,引入版图、棋子、这种混合机制的游戏就越来越多。基于版图的区域控制、走格子的竞速、工人放置都可以很好的结合起来。对于传统的领土类游戏,游戏目标通常是获得更多积分。但结合其它游戏机制后,游戏目标就多种多样了。
对于单人游戏(或多人协作)以及双人对战游戏,一种更常见的游戏目标是通过战斗击败对手。而战斗计量值是用 HP 衡量的。尤其是电子化以后,卡牌构筑类电子游戏大多数以战斗为主。使用不断成长的卡组,不断的击败一个又一个的 boss ,最终抵达终点,俗称爬塔。但也不乏星际孤儿和小丑牌这样桌游向规则的电子游戏。
同样是卡牌构筑机制,桌游和电子游戏有很多相似之处,却因为载体不同有很大区别。
我个人认为最大的差异是,玩桌游需要玩家先明白完整的游戏规则才可以开始玩,而电子游戏是逐步将游戏规则铺开的。这会带来很多设计上的不同。电子游戏会倾向于设计更多变化的规则,可以包含许多特例,因为它不必一次向玩家交代清楚。这些多半是为了增加玩家的沉浸感而设,也为了增加游戏时间。电子游戏玩家会更早更快的接触到游戏的核心规则,而主动忽略枝节问题,留待体验核心玩法的的过程种,同时慢慢学习新内容(如果游戏能持续吸引他)。过于简单缺少足够变化的游戏机制会让玩家提前流失。
桌游和电子游戏在交互上有很大不同。总的来说,电子游戏容易实现得比桌游对玩家更友好。程序会阻止玩家做不符合规则的行动,可以在玩家操作的过程中时刻给予反馈和提示。玩家能通过电脑的反馈来学习游戏规则(而不需要啃说明书)。但有些方面电子游戏也相对较弱,导致一些桌游电子化后反而体验下降。
例如,当同一时刻,玩家可以有多种选择时,玩实体桌游时,选择仅仅是玩家脑子里的一个念头,玩家很快就能决定哪一种生效。而电子化后,这些选择过程会变得非常繁琐。又比如,对于对战类卡牌,卡牌经常需要指定作用对象,在桌面玩的时候,选择过程非常自然,但在电脑上就会相当麻烦。对比炉石传说和万智牌,就能察觉到两个本质上相似的游戏,在规则细节的不同。
电子游戏的强项在于可以用程序辅助记录更多游戏信息。大多数细节玩家并不需要时刻关心,但需要时又可以随时关注。这些游戏状态信息背后的机制可以很复杂,但展现出来可以非常简洁。而在桌游中,任何游戏状态的变化都需要玩家主动跟踪。过于复杂的状态变化会极大增加游戏成本,还非常容易出错。
电子游戏还能非常自然的做单局游戏间的玩家成长,让玩家持续玩同一个游戏有不断的新体验。早期的桌游是通过设计不同的游戏难度来适应玩家的成长,而近年来传承类桌游部分解决了这个问题。这种桌游会额外提供一个剧本和若干传承道具。玩家每进行一局游戏,无论成功还是失败,都可以通过剧本推进游戏进度,逐个取出道具改变游戏规则,升级自己的角色。