Welcome Guest ( Log In | Register )

欢迎访问本站。游客仅能浏览首页新闻、版块主题、维基条目与资源信息,需登录后方可获得内容发布、话题讨论、维基编辑与资源下载等权限。若无账号请先完成注册流程。
 
Reply to this topicStart new topic
> 《再下一层(One More Level)》1 月开发日志
Bozar
2021-01-13, 10:38
Post #1


GEEKs will Eventually Evolve into Kryptonians. | All my jokes are cries for help.
Group Icon
 1385
   75

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




《再下一层(One More Level)》是一款使用 [Godot 引擎](https://godotengine.org) 制作的回合制 Roguelike 游戏。最新版本是 0.1.3,可以通过 [GitHub](https://github.com/Bozar/OneMoreLevel/releases) 下载。该版本发布于 2020 年 11 月,开发日志延后了两个月(2021 年 1 月)才写完。整个 0.1.x 系列以“强制移动”为主题,新增了三座地下城:

* 0.1.0:冥河摆渡(Styx)
* 0.1.2:镜中世界(Mirror)
* 0.1.3:热气球探险(Balloon)

最初灵感来自这个问题:如果按下方向键无法完全控制 PC 的移动行为,游戏会变得怎么样?接下来,我想依次分享三座地下城的设计思路,最后谈谈游戏中的进度条。

## 冥河摆渡

玩家需要从冥河左下角移动到右上角。每轮按方向键移动一格,能否成功取决于移动方向与目的地的水流方向。

* 方向相反:无法移动。
* 方向相同:继续移动。
* 方向垂直:移动一格。

以图 2 为例,PC 可以向左或向下移动一格,向右移动四格,但是无法向上移动。

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

图 1:冥河。

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

图 2:移动示意图。

每隔若干轮,所有水流方向随机变化一次。随后在地城里划出几条线段,使河水朝一个方向流动。有时候玩家运气不好,被困在某处耗尽了时间。我考虑过添加更多朝向终点的水流,但是一方面这会降低难度,另一方面考虑到单局游戏时长不超过几分钟,哪怕因为随机性输掉了,挫败感不会太强。

## 镜中世界

镜中世界的灵感来自 [HyperRogue](https://store.steampowered.com/app/342610/HyperRogue/) 的地下城 [Hall of Mirrors](https://steamcommunity.com/sharedfiles/filedetails/?id=390176864)。这个世界的主要规则如下:

* 利用(PC 或者幻影的)镜像收集五颗水晶后获胜。
* PC 尝试移动时,如果 PC 被镜子挡住去路,或者“PC 镜像”被“幻影镜像”挡住去路,PC 无法移动。
* 幻影被攻击后,必定在镜中世界产生一个镜像,有可能在现实世界(通过镜面反射)产生一个或多个镜像。
* PC 被攻击后,与自己的镜像交换位置。

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

图 3:镜子。

PC 与幻影互动的代码稍微有点复杂,因为要同时考虑现实世界和镜中世界。具体分三种情况。

在镜像世界里,“PC 镜像”攻击“幻影镜像”。“PC 镜像”停在原地,移除“幻影镜像”。

在现实世界里,PC 攻击幻影。首先,如果镜中世界的对应位置已经存在“幻影镜像”,把它移除。其次,把现实世界里的幻影移动到镜中世界。最后,从现实中幻影的位置出发,往上下左右四个方向发出射线。如果射线接触到了镜面,尝试往现实世界添加新幻影。

在现实世界里,幻影攻击 PC。首先,交换 PC 与其镜像的位置。其次,每个 NPC 根据其新身份,幻影或“幻影镜像”,开始或停止行动。最后,如果某个镜像恰好覆盖了水晶,水晶将被自动拾取。

## 热气球探险

在热气球探险中,PC 的符号始终显示为箭头,代表当前的风向。五次停留在指定位置即可获胜。每一轮按照以下规则移动:

* 首先顺着风向移动一格。
* 随后朝着按键方向移动一格。
* 两次移动时,如果遇到障碍物,往反方向后退一格;如果越过地图边缘,移动到另一侧对应位置。

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

图 4:热气球。

为了确保玩家走遍整张地图,我把地下城分为两行三列六块区域,选择其中五个放置目标地点。利用反弹规则,玩家可以抵达看似不合理的位置,比方说在下图中按右方向键抵达位置 2。

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

图 5:反向移动。

## 游戏中的进度条

设计镜子地城时我在想,分隔两个世界的墙壁能否美化一下呢?不如把它改成进度条,显示已经收集的水晶数量吧。沿着这个思路往下想,能否给每座地下城都添加进度条,告诉玩家距离胜利还有多远?现有的进度条分为三类。

* 冥河:PC 在地图上的位置就是进度条。
* 镜子,热气球:特殊符号的数量代表了胜利进度。
* 骑士,沙漠:特殊符号本身暗示了游戏进度。

第三类稍微展开讲讲。在骑士地下城里,最终头目分为三个阶段,其符号依次为 S、P 和 D。当前版本(0.1.3)给沙漠地图新增了一个计数器(见下图),显示了已收集的优质香料数量,功能上相当于一格普通香料。

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

图 6:沙漠。

最后说一下未来计划。下一个大版本(0.2.x)以“武器攻击”为主题,可能包含三座地下城,第一个版本(0.2.0)预计一周内发布。希望大家喜欢!

TOP
Fast ReplyReply to this topicStart new topic
 


Time is now: 2021-01-22, 07:51