小偷:挤奶女强盗

几个星期前,我在Cole Shapiro的Flatiron学校与一个朋友和同伴在Ruby中构建了一个CLI游戏,名为Thief:Milkmaid Heist。 TMH 是一款基于文本的冒险游戏,您可以在其中扮演国际艺术小偷文斯·佩鲁吉(Vince Peruggi)闯入阿姆斯特丹的Rijskmuseum博物馆,窃取有价值的艺术品。 我们在三天内就完成了游戏。 原来这是一个有趣的项目。

游戏于2005年在阿姆斯特丹国立博物馆的大型翻修中进行。 翻新工程为闯入和窃取无价艺术品提供了绝佳的机会。 玩家可以选择要随身携带的小工具,以帮助他们克服博物馆中的障碍物,例如激光传感器,噪音警报器和保安员。 展示了熟悉的基于文本的冒险游戏元素,例如开放式用户输入,以及一些很酷的彩色ascii艺术,它们表示在博物馆展出的作品。 玩家闯入博物馆,浏览走廊以发现自己可能会窃取的艺术品,并在使用小工具时必须克服的障碍中遇到障碍。

游戏的目标是从国家博物馆中窃取尽可能多的艺术品,并最终窃取威​​猛(Vermeer)著名的绘画《挤奶女仆》。 游戏从小偷的藏身处开始。 玩家必须选择5个小工具才能将它们带到抢劫中。 抢劫开始时,玩家会发现自己在国家博物馆之外,他们必须在此选择进入博物馆的入口。 一旦进入,玩家就会遇到游戏引擎随机生成的障碍。 例如,玩家可能会注意到墙壁上的激光发射器,暗示走廊上装有迷宫般的激光传感器。 如果玩家明智地选择了他们的小玩意,那么他们将能够使用小玩意来克服障碍。 玩家也有可能尝试依靠自己的基本技能作为贼来克服障碍。 但是,这将消耗玩家的数据,从而降低将来能够以相同方式克服障碍的可能性。

玩家成功克服所有障碍之后,他们便到达了博物馆的新走廊,那里有可供窃取的艺术品。 每次他们尝试窃取艺术品时,都有随机的机会触发警报。 如果玩家可以禁用警报,则他们可以窃取艺术品并继续抢劫。 如果玩家避开所有障碍并能够到达包含“挤奶女仆”的大厅,那么他们可以偷走它并逃脱博物馆。

我们从国家博物馆API中提取了与游戏中艺术品相关的所有数据,包括艺术品图像。 我们将JSON数据解析为艺术品属性,并将其存储在数据库中。 然后,我们使用Active Record从数据库中实例化具有相应属性的Ruby对象。 当玩家在国家博物馆中探索新的走廊时,我们会从数据库中随机生成艺术品(并以ascii艺术形式渲染图像),玩家可以遇到并尝试窃取这些艺术品。

我们的目标之一是融入随机性,并尝试鼓励游戏中的紧急行为。 我们想要避免完全线性的和明显脚本化的体验。 我们实现了多种设计选择,以便为每个播放过程带来有趣而独特的游戏体验。

  • 玩家遇到的障碍是随机选择的。
  • 玩家可以选择在每次游戏开始时抢劫时携带哪些小工具。
  • 每个小工具和障碍物都有独特的统计信息,包括:技术复杂性,物理需求和意志力。
  • 小工具可以通过多种独特方式来克服障碍。
  • 在每个播放中生成的作品是随机选择的。
  • 当玩家试图窃取艺术品时,有随机的机会触发警报并撤防。

使用Ruby gem’asciiart’和一个名为Image Magick的程序,将Rijskmuseum博物馆展出的艺术品图像转换为ascii艺术。 另一个Ruby宝石“彩虹”使图像可以转换为彩色ascii艺术。


与Cole一起构建Thief:Milkmaid Heist时,我感到很开心,我对我们在如此短的时间内创造的东西感到满意。 如果您有兴趣,请随时查看github存储库: https : //github.com/bitwitch/THIEF-cli