《羊了个羊》游戏规则
一、概述
玩家游戏过程中主要是将一定量相同的游戏元素,如水桶、玉米、胡萝卜等,三个为一组使它们配对消除来获胜。
二、具体方法
收集游戏元素存储至临时栏,当临时栏里有3个相同的游戏元素时即可配对消除,当场面上所有的元素都被消除时即可进入下一关。
三、设计
玩家的临时存储栏最大上限为7个元素。
游戏一共分为两关。
第一关:通过简单的结构设计来引导玩家上手(类似于教程关卡)。第一关总共只出现了3个游戏元素,存储栏7格确保玩家不会在第一关折戟(随意点击就可以能通过第一关)同时给予玩家足够的信息收集:
- 元素收集没有顺序要求,只需收集三个同样的元素即可消除;
- 元素分布为分层式设计,某一元素的任意部分被上层的某元素所阻挡时无法收集,必须现将上层元素收集移除后方可继续;
第二关:层数的增加与游戏元素的陡升(13种)来刺激玩家挑战,这一部分的关卡结构设计非常巧妙,详见后表。
四、道具
移除道具:将储存栏里三个元素移出并把它们堆放到旁边;
撤回道具:撤回最近的一个元素并把它放到原位置;
洗牌道具:随机打乱未使用的所有元素。
- 获胜、失败条件
当第二关中所有元素都被消除时,玩家获胜; 如果玩家的储存栏已满且栏中没有元素可以配对消除时,玩家失败。
《羊了个羊》洗牌流程图
这需要简单概括下羊了个羊的结构设计。
结构设计
游戏开始时,客户端会向服务端申请数据,服务器返回数据信息,其中主要包括:
关卡ID:关卡规则ID
关卡宽度:每层最大的元素宽度容量;
关卡长度:每层最大的元素长度容量;
元素数组:不同元素的组数(白菜:6组;水桶:7组。。。);
层级结构数组:不同层数的分布规则,存储着这一层中元素分布的位置信息;
简单来说服务器返回的数据就是不同元素的组数与每层元素的分布信息。
客户端会维持一个总数组,然后将返回的元素数组里的每一个游戏元素组数 * 3,并且存入数组。(这个操作使得游戏不会存在有元素无法消除完的bug)存储完后,*打乱数组*。随后遍历每一层的元素分布位置,如果某个分布点没有元素(未分配),则从总数组中取出一个元素放置进去,从而完成关卡初始化。
所以,《羊了个羊》本质上就是一个真随机,实际就是将其所有的元素随机洗牌后按照其所给出的规则搭建起来。
流程图如下:
修改洗牌规则
可以在使用洗牌道具时采用伪随机的方式。
《羊了个羊》采用真随机的关卡设计,因为横截面小,层数高,对于消除类游戏来说真随机创造出来的无解的可能性要远大于有解的可能性。
1.我们可以在遍历剩余层级的元素分布位置分配元素时,在顶层优先放置与玩家存储栏中相同的元素,从而使得游戏可以进一步推进。
2.在洗牌时制定规则,控制相同元素在不同层级的分布间隔,一般来说间隔越短,玩家越容易消除。这样也可以帮助玩家通关。
3.《羊了个羊》最成功的地方在于其结构设计。消除类游戏横截面越大(一个层面所包含的元素多少),越容易消除。《羊》的关卡设计采取了一个类似于小————大————小的纺锤形结构。在一开始元素的遮盖比很小(一个元素遮盖着很多元素),玩家会容易操作,成就感颇高。但是随着层数的不断深入,横截面不断缩小,玩家的操作空间变得越来越少,最后失败。所以在洗牌时,也可以通过改变其分布结构,扩大可操作的横截面,从而使得玩家更容易操作。