top of page

如何成为一名
好家长

课程: 设计教育游戏(CMU 05-418)。

讲师: 埃里克·哈普斯特德

队友: @Christina(Qianou) 马

项目类别: 游戏设计与研究

游戏文档:

游戏可执行文件(更新):

2021 年 5 月 24 日:版本 3.1 (en_US/zh_CN)

GitHub 链接:

要被更新

YouTube 演示视频(一个完整的分支):

项目摘要

在我的第四年,我参加了设计教育游戏 (CMU 05-418/818) 与 Erik Harpstead 教授。

 

对于这个项目,我们被分成 2-3 人的团队。我们本来应该设计一个教育游戏 ——没有那么多限制:只要我们不实现 3D 游戏,一切都应该很好(尽管如果你有足够的能力制作一款游戏,你可以和 Erik 谈谈)。因此,该项目需要团队成员通过有效的游戏设计工业流程进行良好的合作:集思广益、研究、实施、原型设计、脚本编写和迭代。我们只有不到一个月的时间来完成游戏的 MVP - 因此,建议我们不要制作数字游戏,因为编程可能非常耗时。

然而,由于我的团队对自己非常有信心,我们仍然决定不从我们的头脑风暴选择中禁止数字游戏。嗯,这为我们最终做出一款被赞为“的游戏”奠定了基础。本课程历史上最令人印象深刻的数字游戏”。 

准备阶段

在准备阶段,我们就在这个团队中设定了自己的角色。由于我拥有最多的游戏设计经验,所以我负责大部分的游戏设计、编程和游戏美术,我的队友克里斯蒂娜负责进行游戏研究、民意调查和游戏设计。调查分布和故事剧本写作。这里我会写更多关于我的部分,如果你对Christina的工作感兴趣,你可以参考她的页面这里

我们的首要任务是决定做什么。我们使用 Miro 板进行头脑风暴游戏的主题

05418-头脑风暴.png

我们决定制作一个家长教育游戏 很快。对于本课程来说,这可能是一个相对新颖的主题,因为很多人会选择金融、环境或编程等主题。

确定了主题后,我们就开始进行早期的头脑风暴。下图是该项目的早期提案。

1.png
2.png
3.png
4.png

* 项目视觉效果由托尼设计

 

结合同行评审的反馈,我们最终选择了第二个方案——聊天模拟器 作为我们最终的项目主题。

故事剧本

当我们决定游戏形式是聊天模拟器时,我们就无法逃避写一个像样的故事的责任。这个故事应该支持分支,因为父母、玩家会从故事的不同结局中学习。另一方面,我们只有一个月左右的时间,所以我们不能把故事做得太长。

最初我们希望故事能够经历某个角色的一生,但我们很快发现这太过雄心勃勃。因此,我们决定只做 角色生命的一部分。在这个选定的部分,玩家要经历一个相对复杂的亲子互动。另外,我们需要考虑我们所关注的父母群体,例如美国父母可能与中国父母完全不同。

我们最终的场景决策是这样的:

1.png

孩子们正在准备一场重要的考试。在这个精神压力很大的时期,孩子和父母之间的互动可能会变得困难和复杂。

我们从这里开始原型设计。故事的制作过程在这里就不多说了,想看一下故事是如何迭代的请参考游戏文档。

如果您有兴趣阅读中文故事迭代,请阅读前两个迭代。

第 1 版(繁体中文).pdf

迭代2(繁体中文).pdf

用户界面

我们遵循通用的 UI 设计流程。游戏流程比较简单,所以不应该画太多的UI元素。

以下列表显示了所有必需的场景。

  • 起始页

  • 加载页面

  • 家长办公室

  • 家(客厅)

  • 家(卧室)

  • 家(儿童房)

连接逻辑由游戏进程决定。我们的聊天模拟器的游戏日从玩家(作为家长)去办公室开始。在办公室里,玩家可以通过一些软件回复电脑屏幕上的消息,或者与某个NPC发起一些对话。当天的谈话结束后,他们就可以回家了;如果是星期五,孩子也会回家(否则孩子在寄宿学校)。玩家可以从客厅走到卧室,并从那里结束一天。第二天将从从家到办公室加载页面开始。

因此,以下页面是第一个低保真版本 的页面布局。我们对它们进行了测试,并且通过我们的游戏测试证明它们是直观的。

后来我们开始打磨界面,添加一些视觉艺术元素。最初我们决定以《女神异闻录5》作为我们的风格参考,因为它相对轻松且容易在一个月内完成。这是我们的 第二个用户界面版本

由于时间实在有限,本次迭代中部分背景图并未完成;我用谷歌的照片代替。然而,尽管这次迭代收到了我的游戏测试者的一些好评,但他们中的许多人也反映 UI 风格看起来与游戏风格有些无关。这款游戏看起来并不像某些需要流行风格UI的游戏;故事发生在学校,很多测试者(40-50岁左右)并不喜欢这种风格。因此,我们做了 UI风格的第三次迭代,这次真的是花了我很多时间来画的。  

游戏设计

这是游戏闭环和游戏系统图。

闭环.png
游戏系统.png

我认为他们解释了游戏系统如何运作良好。如果您想阅读我们如何将辅助系统添加到系统中的整个过程,请参阅游戏文档,因为这对于本网站来说可能太长了。

编程

最后是编程阶段。编程部分涉及到更高层次的微妙之处。第一个挑战,也是我们遇到的重大挑战,是我们应该如何存储故事的分支。最初我们考虑使用树结构作为数据结构,为了方便起见,因为我们不想手动将故事逐行输入到Unity3D中。一开始我们想到的是写一个txt文件,写一个解析() 函数自动将txt文件变成树节点。它看起来像这样:

4.png

使用 &作为分隔符,每个节点存储消息组和响应组以及子索引。然而,这很快就失败了,因为故事分支实际上并不是一棵树!

许多节点聚合,这意味着多个父节点可能共享同一个子节点。此外,这个简单的解析器使得合并游戏值变得极其困难:如果我们想为每个选择设置阈值,以及我们从选择选项中获得的奖励,则该节点可能很难阅读。
最后,我们通过构建指定为的数据结构来实现故事节点
文本组 在统一中。 A文本组 看起来如下:

每个文本组 知道传入的消息
由指定
传入消息[] 文本,以及每一个 传入消息 知道它的 WaitTime(收到玩家回复和开始打字之间的时间间隔)并且打字时间 (输入传入消息所花费的时间)。这些变量允许对即时消息进行高保真模拟。另外,每个 文本组 知道由指定的玩家选择回答[] 答案,每个答案都知道一堆信息:它的最小小时,最小整数 (最低心理健康水平

5.png

亲密)和MH_buff,整数buff (做出选择所获得的奖金)。它也知道提示 警告,用于在做出选择后给玩家提示和提示。最重要的是,下一个集团下一个可用 允许节点识别其唯一的子节点。底层的线性是树层存储的基础;这些文本组工作得相当稳健。

 

第二个挑战看似相似,但也有根本不同。面对面聊天模拟器:基本逻辑类似,但是这次单个对话可能涉及两个以上的说话者。因此,我们需要额外关注角色的切换方式。另外,请注意,字符不会“打字”,也不会“等待”,因此,即时消息模拟器的基本逻辑实际上并不适用于此。看来完全不同的数据结构会更有帮助。由于时间限制,这部分并未完全由我们自己实现——我们正在使用 4.99 美元的 Unity 资源构建面对面聊天模拟器,DDSystem24
特别是,我们进行了自动创建和分配角色的调整。例如,在原始资产中,我们必须在检查器中创建角色,但这会产生一个问题,例如,如果玩家将孩子定义为儿子,而不是女儿,那么我们就不能使用女儿角色显示像孩子们一样。与其他重大挑战相比,这里的挑战更容易解决。


其他一些挑战还出现在现场管理上。我们在项目开始时确定游戏场景流程应如下:
1.周一至周四:办公室->加载(办公室到家庭)->卧室->加载(睡眠)->负载(家庭到办公室)->办公室;
2.周五:办公室->加载(办公室到家庭)->面对面聊天 ->卧室->加载(睡眠)->面对面聊天
3.周六:面对面聊天->卧室->负载(睡眠)->面对面聊天
4.周日:面对面聊天->卧室->负载(睡眠)->负载(家庭到办公室)->办公室


因此,跟踪日历可能很重要,并且需要将日期改为工作日。然而,只要确定数学关系,这个挑战也很快就能解决。


剩下的挑战都是微妙的调试和实现,例如玩家自定义变量替换、渲染管道优化、字体着色器和按钮/切换/输入字段渲染。这个游戏几乎肯定还存在隐性bug,但考虑到时间有限,挑战已经处理得很顺利,符合我们的预期。

bottom of page