gamemaker工作室吧 关注:16贴子:130
  • 1回复贴,共1

游戏关卡设计由简入繁

只看楼主收藏回复

早前,我决定在《THE OCTOBER GAME》中植入有计划的关卡,而不是随机关卡。这个决定令我遇到众多复杂问题:
游戏的核心理念非常简单,玩家向上跳跃,攻击飞过屏幕的敌人。

core mechanic from eliolhan.com
一个复杂元素是,有些敌人击中后能够带来收获,有些则会带来糟糕影响。

good enemy vs bad from eliolhan.com
游戏需要具有多样性,所以我设计各种积极的攻击反馈:食物和奖励。

food and bonus types from eliolhan.com
更具体的子类型包括不同分数、行为和外观。我可以随意扩展机制。在这款小型游戏中,我将设置6种敌人、3类食物、2种奖励、1种危险及1种无形的无效元素,旨在间隔各类内容。它们从屏幕上看面积很小,而且移动非常迅速,所以我保持色彩的简单性。

full cast from eliolhan.com
我添加更多能够进行调节的参数,例如线性和弯曲路线,外加不同的飞行方向。

curves and directions from eliolhan.com
移动空间局限于5个飞行跑道上,所以我能够有目的地堆积成列的敌人或者将危险物放置于离玩家更近的地方。

lanes from eliolhan.com
这让每列敌人能够拥有350种变体。

columns from eliolhan.com
连同速度和间隔,这能够带来更多的变化,让我们设计出趣味横生的关卡。
这样你就能够基于少量的可调节参数呈现出丰富的多样性。若我不是从简单元素着手,那么融入多样性很快就变得让人招架不住。
虽然手动制作关卡并不是非常困难,但我们无法基于此预测关卡所将呈现的感觉:

raw level spec example from eliolhan.com
所以我需要创建关卡编辑器,这比我想象中的难很多。

enemy spec cell from eliolhan.com


1楼2015-07-23 21:53回复
    在《THE OCTOBER GAME》尝试的首个关卡编辑器是个颇具启发意义的失败案例。
    编写代码颇具趣味,这促使我一股脑投身于项目之中,然后逐步陷入日益提高的复杂性中不能自拔。为避免这一问题,我从具有可行性的最简单内容着手。
    最简单的内容就是不融入关卡编辑器,但这存在相应的问题。就如我之前提到的,我们可以通过指定敌人的各种属性(游戏邦注:包括类型、方向、运动曲线、飞行数量和飞行跑道)制作关卡。

    enemy datum from eliolhan.com
    1列敌人被称作AttackGroup。1组AttackGroups组成1个关卡。1组关卡组成1个游戏。

    game entity hierarchy from eliolhan.com
    关卡将变得越来越难,目的是向玩家呈现真正的挑战。我发现30是游戏长度和关卡创建所耗精力的最佳平衡点(游戏邦注:作者称这个数据是经过适当考虑和认真研究的,绝非凭空捏造)。
    结果证明,手动创建关卡很难进行预测,不仅容易出错,而且还非常缓慢。最明显的解决方案就是,从更抽象的层面着手。这意味着我们需要创建图形工具以设置敌人,呈现他们的即时互动。从理想角度看,这将带来一个能够植入游戏应用且配合测试工作的格式文件。

    swarmful app icon med from eliolhan.com
    这里的核心构思是创建包含动态预览的网格编辑器,无需融入详细结构,而只是切换分布于网格中的各类敌人。时间是由一个简单的滑动器控制。我觉得我可以先从这些基本要素着手,若内容运作顺利,再进一步进行具体化。

    Swarmful interface sm from eliolhan.com
    创建这些内容花费我几天的时间,我学到许多关于制作自定义控制装置的知识。我对此非常满意,直到我意识到,简单运动机制无法容纳重要的玩法功能:各种敌人飞行模式。我没有移植实际游戏应用中的动画机制,相反我决定终止有关编辑器的工作,专注于更直接的游戏功能。
    所耗时间:2天
    所获经验:从最低关卡着手,逐步提高其复杂性。将简单的控制装置拼凑成更大规模的内容。设置自然的停止点,这样项目就不会无限期延续。
    所犯错误:应该在制作代码前更多地进行设计内容的规划
    随着手动创建关卡难度的提高,我转而创建另一关卡编辑器


    2楼2015-07-23 21:55
    回复