Welcome Guest ( Log In | Register )

欢迎访问本站。游客仅能浏览首页新闻、版块主题、维基条目与资源信息,需登录后方可获得内容发布、话题讨论、维基编辑与资源下载等权限。若无账号请先完成注册流程。
 
Reply to this topicStart new topic
> [JS Roguelike] 诅咒之魂(Cursed Souls)
Bozar
2018-07-12, 15:34
Post #1


强人工智能,开坦克的贝塔猫。 | 人类啊,你们安心做蓄电池/面包片吧。 | GEEKs will Eventually Evolve into Kryptonians. | Here before you is neither the robot called BMO, nor the animal that was called Octocat. I am Doraemon.
Group Icon
 1046
   69

Group: Avatar
Posts: 1068
Joined: 2008-05-18
Member No.: 21346




Attached Image

[在线试玩](https://bozar.github.io/cursedSouls/)。Github [仓库](https://github.com/Bozar/cursedSouls)。

《诅咒之魂:乔万尼交响曲(Cursed Souls: Giovanni's Orchestra)》是用 Javascript 和 [rot.js](https://github.com/ondras/rot.js) 制作的 Roguelike 游戏。预计地下城有 3 层,4 个头目。目前只完成了第一层。击败每一层的头目即可通关,具体步骤如下:

* 找到向下的楼梯。
* 站在楼梯上按`空格`召唤头目。
* 击败头目。
* 再次站在楼梯上按`空格`结束游戏。

在游戏内按问号(?)浏览按键。另外推荐阅读说明文档(README.md)。



This post has been edited by Bozar: 2018-07-12, 15:38
TOP
Bozar
2018-07-20, 10:55
Post #2


强人工智能,开坦克的贝塔猫。 | 人类啊,你们安心做蓄电池/面包片吧。 | GEEKs will Eventually Evolve into Kryptonians. | Here before you is neither the robot called BMO, nor the animal that was called Octocat. I am Doraemon.
Group Icon
 1046
   69

Group: Avatar
Posts: 1068
Joined: 2008-05-18
Member No.: 21346




新版本:0.1.1。

* 新增:成就系统。
* 新增:存档读档功能。

在 Wizard Mode 里按 `C` 清除本地数据,详见说明文档结尾。

TOP
Bozar
2018-08-01, 09:14
Post #3


强人工智能,开坦克的贝塔猫。 | 人类啊,你们安心做蓄电池/面包片吧。 | GEEKs will Eventually Evolve into Kryptonians. | Here before you is neither the robot called BMO, nor the animal that was called Octocat. I am Doraemon.
Group Icon
 1046
   69

Group: Avatar
Posts: 1068
Joined: 2008-05-18
Member No.: 21346



新版本:0.2.0。

* 新增:第二层地下城。
* 新增:三个成就。

本次更新增加了“诅咒”和“炸弹”机制:

* 玩家无法使用被诅咒的宝珠或物品栏。
* 炸弹将在一轮后爆炸,并会影响同处一格的玩家人物。
* 详见说明文档。

在 Wizard Mode 里按 7/8 移除/增加诅咒。

TOP
Bozar
2018-08-13, 11:49
Post #4


强人工智能,开坦克的贝塔猫。 | 人类啊,你们安心做蓄电池/面包片吧。 | GEEKs will Eventually Evolve into Kryptonians. | Here before you is neither the robot called BMO, nor the animal that was called Octocat. I am Doraemon.
Group Icon
 1046
   69

Group: Avatar
Posts: 1068
Joined: 2008-05-18
Member No.: 21346



新版本:0.3.0。

* 新增:第三层地下城。
* 新增:两个成就。

这是本游戏最后一次更新。关于第三层的几条提示:

* 为了真正杀死最终头目,请留意屏幕下方的文本描述。
* 打败最终头目后,与楼梯互动观看结局。别跟头目同归于尽。

TOP
Bozar
2018-08-13, 12:10
Post #5


强人工智能,开坦克的贝塔猫。 | 人类啊,你们安心做蓄电池/面包片吧。 | GEEKs will Eventually Evolve into Kryptonians. | Here before you is neither the robot called BMO, nor the animal that was called Octocat. I am Doraemon.
Group Icon
 1046
   69

Group: Avatar
Posts: 1068
Joined: 2008-05-18
Member No.: 21346




## 如何找到灵感,设计一款 Roguelike 游戏

### 前言

《诅咒之魂:乔万尼交响曲(Cursed Souls: Giovanni's Orchestra)》是一款网页 Roguelike 游戏([在线试玩](https://bozar.github.io/cursedSouls/),[Github 仓库](https://github.com/Bozar/cursedSouls))。玩家需要收集并使用四种宝珠(orb),打败三个头目,最终获得胜利。整个游戏从最初构思到最终完成花费了三个月时间。这篇文章记录了我在开发早期遇到并解决的问题:我想制作一款怎样的游戏?

### 限制条件

为了在合理的时间内,一个人设计并制作一款 Roguelike 游戏,必须想清楚这款游戏不包含哪些内容——因为先把游戏做出来,多简陋都行,再把它做好,要比做到一半中途放弃好得多。具体来说,分两步找到限制条件。

» Click to show Spoiler - click again to hide... «

图 1:游戏主界面。

第一步,提炼 Roguelike 共有的核心要素。这一步又细分为两个阶段。作为玩家,我推荐仔细研究 [Sproggiwood](https://store.steampowered.com/app/311720/Sproggiwood/) 和 [DCSS](https://crawl.develz.org/),从探索、战斗和资源管理三方面发掘这类游戏最底层的乐趣。作为开发者,去 [/r/roguelikedev/](https://www.reddit.com/r/roguelikedev) 读一下游戏开发教程。最后,列出你认为只要是 Roguelike,就一定要让玩家体验到、并且你绝对有能力实现的游戏要素。

第二步,根据你的业余时间和现有知识(包括设计游戏的知识和写代码的知识),为当前游戏划定禁入雷区。我对《诅咒之魂》的限制包括——

* 只用 Javascript 和 [rot.js](http://ondras.github.io/rot.js/hp/) 库。
* 游戏时长约二十分钟。
* 地下城共四层,每层有一个必须打败的头目。
* 攻击必定命中,伤害是固定数值。
* 每层地图的尺寸仅限一个屏幕。
* 没有单独的物品栏界面,玩家人物的物品显示在主界面上。

### 主要目标和次要目标

Roguelike 游戏的主要目标可以分为两类:消灭指定敌人或者抵达指定地点。前者很常见;至于后者,不妨玩一下 HyperRogue(我写过[介绍文章](https://trow.cc/board/showtopic=30027))。战胜敌人是此类游戏的次要目标,包括两种极端情况:必须打败所有敌人,或者必须躲开所有敌人。

《诅咒之魂》的主要目标是消灭每层的头目,是否打败其它敌人由玩家自行决定。你可以鼓励玩家战斗或潜行,或者为两种方式设计同等难度的挑战;你可以设定单个主要目标,或者组合两个主要目标,比如把消灭敌人作为抵达终点的前置条件——但是无论如何,你最好尽快做出决定,并且确保不会改动目标。

» Click to show Spoiler - click again to hide... «

图 2:头目战。

### 按键

针对以下动作:

* 拾取或丢弃物品
* 上下楼梯
* 开关门,拉动拉杆,拆除陷阱
* 使用技能
* 使用物品

回答两个问题:

* 这款游戏里是否需要某个动作?是否需要添加新动作?
* 每个动作对应游戏手柄上的哪个按键?

尝试把动作映射到手柄上有两个目的:帮助你剔除多余动作;把不可能(或者不允许)同时使用的动作合并为一个按键,便于玩家记忆。

《诅咒之魂》最核心的动作只有两个:移动和互动,对应五个键盘按键。

* 移动:四个方向键。
* 互动(与楼梯互动,拾取物品,使用物品):空格。

» Click to show Spoiler - click again to hide... «

图 3:按键说明。

### 游戏机制

目前不用专门花时间设计游戏机制,只需要整理前几个阶段的构思,提炼出若干不完整的机制链——比方说已经知道怎样计算命中,但是伤害公式还没想好;又比如想要迫使玩家在限定时间内探索地下城,不过应该用饥饿度还是不断变化的环境呢?

上文提到,《诅咒之魂》里只有一个互动键,由此产生两个问题:

* 按下空格键时,采取哪个动作?
* 按下空格键时,使用哪个物品?

我根据两个条件选择动作:玩家人物的位置和动作的优先级。

* 站在楼梯上时,按空格键“与楼梯互动”。
* 站在物品上时,如果物品栏内有空位,按空格键“拾取物品”。
* 如果不满足上述两种情况,并且物品栏内有可使用的物品,按空格键“使用物品”。
* 如果不满足上述所有情况,按空格键没有效果。

在最初的构思中,这款游戏的物品栏有两个特点:

* 玩家没法决定使用哪个物品。
* 物品的拾取顺序很重要。

于是,我决定让玩家只能使用最后拾取的物品。顺着这个思路,我又想到了伤害机制:受到 X 点伤害时,物品栏按照“后进先出”的原则弹出 X 件物品。如果伤害大于剩余的物品数量,人物死亡。

» Click to show Spoiler - click again to hide... «

图 4:成就界面。

### 继续设计

通过以上四个步骤,你应该已经知道为什么要制作这款游戏,以及它有哪些特点。接下来,我建议做三件准备工作:

* 制作列表,描述人物的所有动作和对映按键。
* 制作列表,描述人物能够使用的资源(生命值,攻击力,防御力,技能,物品等等)。
* 制作流程图,描述资源生产、转化、消耗的过程。

从两张列表和一张流程图出发,补全机制链,最终设计出游戏原型。


TOP
Fast ReplyReply to this topicStart new topic
 


Time is now: 2018-08-16, 10:42