全部作品
Game Jam

浪漫的不是玫瑰是泥Roses And Mud

一款双人对战游戏:潜伏在地下,在恰当的时机破土而出,用笑声感染村民。

类型
双人对战游戏
角色
与队友共同设计核心机制;主要负责游戏开发与视觉特效制作
团队
5 人团队
工具
Unity、Rewired
活动
2024 Global Game Jam
主题
Make Me Laugh
游戏主视觉:蓝色中文标题“浪漫的不是玫瑰是泥”弯曲排列,中间是一朵被红叉划掉的红玫瑰;下方是一个顶着绿色蓬松头发、咧嘴大笑的脑袋,长在一根细茎上;画面底部是一排小红玫瑰,茎上都画着红叉。

概述

《浪漫的不是玫瑰是泥》是一款双人对战游戏。你将扮演一只潜伏在地下的神秘生物,在恰当的时机破土而出,用笑声感染村民。注意,如果你成功感染了一些不寻常的村民,他们可能会做出你意想不到的事情。

亮点

  • 以“笑声是会传染的”为核心设计游戏机制。
  • 三种 NPC:要逗笑的村民、被逗笑后追杀村民的杀手、被逗笑后骚扰村民并把村民吓跑的流氓。
  • 借助 Rewired 插件实现更简洁的输入系统:可用手柄或键盘进行游戏,无需重启游戏。
本页目录
  1. 创作背景
  2. 团队合作
  3. 头脑风暴
  4. 灵感来源
  5. 背景设定
  6. 核心机制
  7. 游戏目标
  8. NPC
  9. 游戏开发
  10. 程序示例
  11. 游戏画面

创作背景

2024 Global Game Jam 标志,黄色涂鸦字体配霓虹紫蓝背景。

这款游戏是在 2024 Global Game Jam 期间创作的,使用 Unity 引擎开发。本次 Game Jam 的主题是“Make Me Laugh”。

团队合作

这是一款由团队设计开发的游戏。我所在的团队共有 5 名成员,在与队友共同完成游戏核心机制的设计后,我主要负责游戏的开发与视觉特效制作。

头脑风暴

在主题公布后,我们团队立刻开展了头脑风暴,这里是我们的核心创意分支。

团队头脑风暴思维导图的局部:橙色分支是“快节奏(感染)”方向,包括主要行为、感染目标和笑声传播方式;深蓝色分支是玩家行为,如移动、大笑蓄力和插玫瑰。

灵感来源

社交媒体视频截图:一名穿黑色外套的男子,头部是一朵巨大的红玫瑰,手里绿色花茎的顶端是他自己的小脸照片。

我们的游戏灵感来自一段在社交媒体上广泛传播的搞笑视频:一名年轻男子试图向屏幕前的观众送上一束玫瑰来表达爱意,但意外的是,他的头变成了一朵玫瑰,而原本玫瑰所在的位置却变成了他的头。我们决定以“笑声是会传染的”为核心,设计这款游戏的机制。

背景设定

悲伤与不快笼罩着整个村庄,所有 NPC 都郁郁寡欢。作为一名拥有逗笑能力的“魔术师”,你需要让村民们开怀大笑;但村里也有一些特殊人物,如果你逗笑了他们,可能会引发糟糕的后果。

核心机制

玩家有两种行动:移动和表演搞笑节目。

  1. 移动:操作简单,玩家需要移动到村民更多的位置进行表演。
  2. 表演:有冷却时间。冷却结束后,表演的指示灯会变为红色。玩家进行表演时会累积“表演能量”,能量越高,表演的范围就越大。玩家需要把握好表演范围——因为有些 NPC 被逗笑后会做出不良行为。

游戏目标

玩家需要用自己的“玫瑰”逗笑尽可能多的沮丧村民。倒计时结束时,被感染(逗笑)村民数量更多的一方获胜。

NPC

我们设计了三种主要 NPC,它们功能不同,都会影响玩家的体验:

村民

村民的两张头像,绿色蓬松头发:左边蓝色皮肤、愁眉苦脸,右边粉色皮肤、咧嘴露齿大笑。

游戏中数量最多的 NPC。玩家需要感染尽可能多的村民来获胜。

杀手

杀手的两张头像,红色头发、手里拿着刀:左边蓝色皮肤、一脸愁容,右边粉色皮肤、咧嘴大笑,身上有血迹。

被笑声感染后,杀手会开始追杀村民;如果有村民被杀手抓到,就会被杀死。

流氓

流氓的两张头像,深棕色锅盖头、白色圆眼:左边蓝色皮肤、龇牙咧嘴,右边粉色皮肤、张嘴大笑。

被笑声感染后,流氓会开始骚扰无辜的村民,受惊的村民会四散逃跑。

游戏开发

输入管理器

这是我制作的第一款双人游戏。除了键盘输入,我还希望玩家能够使用游戏手柄进行操作。因此,我开始寻找让多名玩家分别使用不同手柄进行操作的方案。

Rewired 插件的商店页面:左边是带各类输入设备图标的 Rewired “Advanced Input”标志,右边是一条五星用户评价。
Rewired——一款能够解决我输入问题的插件。

通过使用 Rewired 插件,我实现了一套更简洁的输入系统,让玩家可以使用手柄或键盘进行游戏(无需重启游戏),同时也让按键映射的修改变得更加便捷。

借助 Rewired 插件,我实现了手柄震动的效果。

C# 代码片段:角色刚体移动时,用 player.SetVibration 以余弦变化的强度驱动两个震动马达。
震动代码

分屏功能

除了输入问题,将游戏画面分为两部分也带来了巨大挑战。经过研究,我通过以下步骤为游戏创建了分屏效果:

Unity Inspector 中的 CinemachineVirtualCamera 组件,Follow 和 Look At 字段设为 Player_0,并用红框标出。
创建两个独立的相机,让它们分别跟随并聚焦于两名玩家控制的角色。
Unity 相机设置,Viewport Rect 设为 X 0.5、Y 0、W 0.5、H 1,并用红框标出。
调整相机的 Viewport Rect 参数,使两个相机分别占据屏幕的左半部分和右半部分。

相机视角

虽然游戏的美术是 2D 绘制的,但我们借鉴了《饥荒》的相机视角,以营造空间感和深度感。所有 2D 精灵都垂直于地面进行渲染。

数字原型的迭代过程

程序示例

游戏画面