CIGA Game Jam 2022 “Trick” 参赛回顾

作者:OwlBaby
2022-07-08
3 2 0

前言

上周末参加了今年的 CGJ,收获还是挺多的,一方面,队友之间虽然都是第一次合作并且还是线上,然而相互之间却合作得非常愉快;另一方面,也去尝试实现了一些自己的想法。虽然我工作部分受到了绝大部分测评反馈的否定(哭哭),但是我个人还是觉得这次参赛对自己十分有价值,不枉自己花了这么精力在这次比赛上。

队伍名:阿猫阿狗组一队

作品:《动物世界》视频链接 1  视频链接 2

队员:

  • 阿猫:领队/程序/数值
  • 小强:程序/文案
  • 阿棒:美术(主要负责人物)
  • 小硕:美术(主要负责场景)
  • 我:程序/玩法

由于我们组的美术十分优秀,反馈来的评价也很高,我在这先展示一下他们 48 小时内的画出来的部分素材

比赛题目

在这个图片之前,主办方还播了一段视频。其实从视频中可以看出,不论是恶作剧、魔术,还是一些日常小技能,都算是“Trick”。可以说内容可选择范围非常广,个人觉得,比去年“拉火车”要好想很多。我能够马上想到的游戏类型就有卡牌类 trick 的《千爵史诗》(Card Shark)、视觉类 trick 的《纪念碑谷》、恶作剧类 trick 的《西游梗传》......亦或者对“Trick”做一个扩词“Trick Or Treat”做万圣节主题的游戏。

但是,上述的想法要么没有新意,要么比较空洞,且不少对美术需求比较大,所以最后就没有选择往这方向去想。

最后我们组选择的是组合两种玩法来完成这次的作品。一种是探索地图的“真假话”玩法,另一种是战斗用的“元素骰子”玩法。

真假话”玩法:你需要分辨 NPC 提供信息的真假,从而探索地图。可以说不论是 NPC 的“假话”(Trick:诡计)还是去判断真假的过程(Trick:技巧)都可以说非常的贴题。

元素骰子”玩法:在掷骰子时,你不仅可以向自己一侧掷骰子,也可以投元素骰子去对手一侧破坏他场上的骰子,例如“火”骰子或被“水”骰子消灭。这种“投毒”的做法可以称作是一种“花招(Trick)”。

由于这两个玩法都是我提出来的,所以我这里就讲一下我的思考过程以及实现过程中遇到的问题。

玩法一:“真假话”玩法

如果有人看过我之前写过的“魔法阵”玩法的文章,其实在那个文章里面我有提到过这个“真假话”的玩法,只不过没有细化。实际上这个想法的最初念头是从很多历史故事中来的。由于古时信息传播效率低下,人们能获取到的多是流言蜚语,众多历史人物由于对繁杂的信息做出了各自的判断,从而影响了自身不一样的结局。

哪怕是现如今信息爆炸的时代,盲目偏听的人也不在少数。所以,去设计一款“情报分析”的游戏玩法,也是有着一定的现实意义。

对于这个玩法,我最开始脑中的画面就是“运筹帷幄之中”,是一个没有上帝视角的游戏体验。一方面,如果洞察了全局也就无所谓“分辨真假信息”;另一方面,整个流程在一个固定区域内,游戏所需要的素材就相对较少,体量就不会太大,也比较好实现。实际上,是有一个十分类似的游戏《Radio Commander》,其整个游戏流程就是指挥官坐在营帐中,通过无线电指挥小队作战。

《Radio Commander》游戏截图

那么这里的“情报分析”玩法是否就是做个“情报推演”呢?我认为既然我们是做游戏,就应该以趣味为主,而不是一味地去做一种“兵棋推演”的变种。

这里举个例子,《资治通鉴》中有这么个故事:有下属报告一头驴被割了一只耳朵。当众人都不解时,首领做出了判断“有奸细偷偷来打探动静,割了驴耳作为打探凭证。敌人马上要来袭,大家做好准备。”不一会敌人果然来袭。

司马楚之别将兵督军粮,镇北将军封沓亡降柔然,说柔然令击楚之以绝军食。俄而军中有告失驴耳者,诸将莫晓其故,楚之曰:“此必贼遣奸人入营觇伺,割驴耳以为信耳。贼至不久,宜急为之备。”乃伐柳为城,以水灌之令冻;城立而柔然至,冰坚滑,不可攻,乃散走。

这是一个很有趣的片段。但是现代的兵棋推演自然不会把“一只驴耳”作为情报。然而我们却可以将类似的有趣片段做入游戏中。

上述这些都比较空洞,所以我就尝试做过一个 demo,以逻辑推理题中常见的“真假话”为“情报分析”的对象,也就是“多句假话中有一句真话”或者“多句真话中有一句假话”。

“真假话”demo

demo 做下来的感受就是,如果要做一个“运筹帷幄”的游戏体验,那么一定是需要非常多的游戏内容,因为需要展示的内容就已经不少了,而这些内容背后的关系就更加的复杂。

所以,这是不太适合 48 小时的 Game Jam 的。

于是,这次 Game Jam 中“真假话”我只是提议,因为这非常符合这次的题目“Trick”。具体的细节实现是由队中的阿猫和小强去完成的。他们是以文案为基础,做了一个“真假话”玩法,类似于《隐形守护者》这类的 AVG。

玩法二:骰子扑克

既然已经有了一个地图探索玩法,我就着手去做一个战斗玩法(事后想来,一个 48 小时的 Game Jam 去做两个玩法,不是什么好选择)。

由于我感觉我们的游戏非常像《Curious Expedition》,所以我便受到影响想去做一个“骰子”相关的玩法。

《Curious Expedition》

在网上搜寻了一圈之后,我发现了“骰子扑克”这个老玩法。《巫师 1》中也有这个小游戏。

“骰子扑克”的玩法是 5 枚骰子,最后按组合价值比大小,组合价值从低到高依次是:

  • 对子(同样的图案有两个)
  • 两对(有两对同样的图案)
  • 三条(同样的图案有三个)
  • 低顺子(KQJ 红黑)
  • 高顺子(AKQJ 红)
  • 葫芦(一图案有三个,另一图案有两个)
  • 四条(同样的图案有四个)
  • 五条 (五个都是同样的图案)   

这个规则对于国内来说,还是比较冷门的。以至于我在《巫师 1》中第一次接触这种规则都十分懵,我一直以为骰子就是比大小。

在了解玩法之后,其实可以看出这个玩法十分简单,所以可拓展的地方也很多。由于我之前一直在思考类似《noita》里面元素反应相关的玩法,所以这里我一下子就想到了“元素骰子”这个概念。

在骰子掷出去之后,不同骰子会相互反应,形成新骰子,最后依据场上还存在着的骰子来评判输赢。又因为这次题目是“Trick”所以自然而然的就想到了“出千”的内容。一个“相互投毒”往对方场上投元素骰子来干扰的玩法就出现在我的脑中了。

在准备着手开始实现时,一个最基础的问题就出现了:骰子如何投出去,又如何碰撞?“掷骰子”实际上是个 3D 动作,如何反应在我们这个 2D 游戏里呢?

我一开始是想做个“3 渲 2”,但是我自己之前没有这样的制作经历,不确定能否在 48 小时内完成;然后的想法是做一个 2D 的骰子碰撞,因为我在 itch.io 上看到了相类似的实现例子,但是依旧是担心自己不能完成,所以也放弃了这种实现方式;最后选择了最简单的实现方式,就是把战斗的部分全做成 UI,这样也尽可能少的与其他模块冲突,骰子相互碰撞就固定为按排列顺序依次相互碰撞。

由于事后反馈中,我做的这个战斗部分可以说是“差评如潮”,所以我这里就反思一下,回顾我在实现过程中遇到的一些问题:


1. 骰子数量与伤害计算

在“骰子扑克”中骰子的数量是 5 个,最后输赢的判断是 5 个骰子的组合类型。由于加入了“元素”概念,所以在对局结算是会出现同元素骰子组成的组合,这种“元素组合”的分数自然应该要比非同元素的要高。

                    骰子组合类型:是指骰子是对子还是顺子这类的组合,价值差异类似“骰子扑克”。
                    元素加成:是指该组合中全部骰子都是一种元素,则会有数值加成,类似于同花顺与普通顺子的差别。
                    弱点加成:是指如果该组合即使同元素又是敌人的弱点元素,则会有数值加成。

为了凸显这种元素组合,就需要在场上有更多的骰子,特别是还有往对方一侧掷骰子的机制在,那么场上的骰子数量就变得多了起来,远多于“骰子扑克”中的数量。

最后,我决定每次掷向一侧的骰子数量为 8。又由于对局人数是 2,所以一侧最多会结算 16 个骰子。

这样就带来了一个直接的问题,这么多骰子,如何对结果进行结算?

我确实没有想到特别好的方法。我这里的处理方式是,分别根据点数和元素种类进行桶排序,然后进行结算。为了方便实现,我也忽略了一部分重复计数的问题。

引入元素为参考的桶排序的原因是我要判断是否有“元素顺子”,只有先判断完是否有“元素顺子”,我才好去判断是否有“杂顺子”。这里为了实现方便,我判定至少 5 个才算是顺子。实际上,“骰子扑克”里 3 个骰子能连起来就算是顺子了。


2. 元素种类与元素骰子碰撞结果

最开始我只想了 3 种元素:火、草、水。元素骰子相互碰撞的结果也很简单,就是火骰子碰水骰子就消失,其他的类推。实现起来也很简单,就是如果火骰子碰水骰子就原地消失,不参与结算。至于是否有连锁反应,也就是往一堆火骰子里扔一个水骰子,是否所有火骰子都消失?我这里是否定的,只要与其他骰子碰过一次就静默。由于我这个是按顺序碰撞,所以也比较好实现(实现的时候我还放了个递归进去,事后发现其实也不是一个好做法,出了问题很难调试)。

我感觉元素有些少,然后跟组里其他人交流了一下,发现其实他们设计了很多角色,三种元素是远不够用的,所以我就又加了电、冰、毒、金四种元素。

金元素不与其他元素反应,也就放在一旁。主要是我在加入冰元素时,我的想法与我的实现出现了比较大的出入。

我的想法是:“火”碰到“冰”,“火”消失,“冰”变成水;“水”碰到“冰”,“水”变成“冰”。然而我原来的实现中是没有考虑到,会有新骰子在反应中出现的。虽然我最初的想法中有考虑过新骰子出现,但是在实现的过程中忘记了这个想法。

新出来的骰子位置放哪?又需不需要再跟别的骰子反应呢?在我实现到一半的时候出现这些问题总是比较头疼。

然而,我也不希望去删除冰元素。因为它很好的弥补了水元素的弱势。玩家在前期得到的水骰子完全可以和后期的冰骰子搭配。


3. 重新投掷

这种单局内有选择的重投骰子,类似“叫牌”的行为,是对场上局面的再操作,也是从“骰子扑克”开始就有的老规则。而我也是在实现到一半,才发现需要加入这个功能。

这就导致我的一些界面显示逻辑受到了改变,一时间也改的手忙脚乱。


4. 其他内容

像是敌人 AI,我都没有时间去做。最后两小时我为了优化一下选骰子的布局甚至还造成了一个 BUG 遗留在 48 小时上传的版本中。

界面优化前 → 界面优化后

事后想来,实际上这个玩法有很多可以拓展的形式,因为其有趣的点就在于“如何触发元素反应”和“触发反应的结果”。这里我就列举几种我想到的更有趣的形式。

  • 2D 骰盅

  • 骰子列阵冲锋

  • 弹骰子

总结

首先感谢同队伙伴们的理解与支持。对于大部分人不太满意我实现的这个玩法,我也十分抱歉。

不过我自己还是认为这两个玩法的可塑性非常强,如果设计得当,应该能被做一种很有趣的玩法。