如何做一个俄罗斯方块游戏(一)

简介: 从今天开始,我将开启一个新的游戏,并且顺带着会写一个新的系列教程,这个游戏就是人人都知道的——俄罗斯方块。我一直都在做消除类型的游戏,在所有消除类型的游戏里,俄罗斯方块可以称得上是“鼻祖”了,所以,不论怎样这个系列里都不能少的了它。

嗨!大家好,我是小蚂蚁。


从今天开始,我将开启一个新的游戏,并且顺带着会写一个新的系列教程,这个游戏就是人人都知道的——俄罗斯方块。


我一直都在做消除类型的游戏,在所有消除类型的游戏里,俄罗斯方块可以称得上是“鼻祖”了,所以,不论怎样这个系列里都不能少的了它。


我特别喜欢俄罗斯方块创造者帕吉特诺夫对俄罗斯方块的评价:

谈到俄罗斯方块成功的奥妙,可能在于这个游戏非常简单,而且拼图的过程有“从混乱中寻找秩序”的成就感。

从混乱中寻找秩序可能是人的一种本能,这大概也是人们之所以喜欢玩消除游戏的深层次原因。


俄罗斯方块已经有那么多了,即使是在微信小游戏平台上搜索“俄罗斯方块”也能找到大把的同类型的游戏。为什么我还要去做一个呢?因为我觉得有些地方我还可以做的更好一点儿。是的,这就是制作一个游戏的原因,它可能并不是一个绝无仅有的创意,也不是一个光芒万丈的点子,只是因为我觉得自己还可以把它做的再好那么一点点,这就够了。


好了,下面就让我们来一起踏上这段俄罗斯方块游戏开发之旅吧!


在正式开始游戏制作之前,有一件事情是必须要做的,那就是先要对自己所做的游戏有一个清晰的了解。俄罗斯方块是一个很简单的游戏,但即使是再简单的游戏,我们依旧有必要对其进行清晰而详细的了解。


怎么样了解呢?先去玩一下。

这里是一个经典的俄罗斯方块游戏,长按识别上方的二维码,可以直接开玩。好了,现在你可以先暂停阅读,前去玩几分钟的游戏,因为我们对这个游戏太熟悉了,所以只需要几分钟你大概就能把小时候的那些回忆都找回来了。


现在,你玩过游戏了。试着来回答一下下面的这几个问题:

俄罗斯方块游戏的整个流程是怎样的?

俄罗斯方块中一共有几种不同形状的方块?

俄罗斯方块游戏的整体布局一共有多少行多少列?

有哪些形状的方块可以调整旋转?有哪些形状的方块不能调整旋转?

可以调整旋转的方块都可以调整几次?

好了,请回答一下上面的这几个问题。什么?一个也答不出来?没关系,这很正常。因为你刚才玩游戏的时候是以一个玩家的角度在玩游戏。现在,你需要切换成游戏制作者的视角,带着这几个问题,再去玩一会儿游戏,然后记录下你所观察到的答案。


如果让玩家带着寻找指定问题答案的动机去玩游戏的话,那么游戏的乐趣一定会大打折扣,可能很少有人想要再继续玩了,但是我们是游戏制作者,带着问题去玩游戏是必须要做的事。


游戏制作者应该具备一双能够洞悉游戏表象的眼睛,看到那些玩家所看不到的东西(数据,规则,原理)。即使是一个非常“简单”的俄罗斯方块,如果上方的这些问题,你无法通过观察得到准确答案的话,那你也是做不出来的。


今天的这篇教程,我们从第一个问题开始。先了解游戏的整个流程,在了解了流程之后,我们就能够找到着手点了。



如图,是俄罗斯方块的整个流程:游戏开始之后,会在屏幕上方随机的生成一个形状,然后形状开始下落,在形状下落的过程中,玩家可以对形状进行控制,例如左右移动,加速向下移动,切换形状的旋转。形状会一直下落,在下落的过程中需要进行“碰撞检测”,当形状碰撞到下方的任何一个方块时,则进行形状的“停靠”,“停靠”完成之后,接下要做就是消除判断,判断下方这些已经堆叠的方块是否有满足消除条件(凑满一行)的,如果有的话,则进行消除处理,消除完成后,上方的方块会下落进行填充,然后再次随机创建一个形状。如果没有消除,则进行游戏结束的判断,如果游戏结束了(堆叠到最上方),执行游戏结束的处理,否的话,继续随机生成下一个形状,进入下一次循环。


除了游戏开始和游戏结束两个节点,其余的时间游戏就是在不停的循环着中间的这个过程。


现在整个游戏的流程我们已经清晰了,接下来,只需要从流程的起点,依次的向下,实现每一个模块的具体功能,然后再把整个流程串起来,这样一个完整的俄罗斯方块游戏基本上就做出来了。


“老手”开发者和“新手”开发者之间有一个很大的区别,就是在开始出发之前,手中有没有一张清晰的“地图”,而这个游戏流程其实就是一张清晰的“地图”。新手开发者很容易在“地图”未完成之前,先一头扎进去,结果往往是东一头,西一头,最后越做越乱,一个简单的游戏或许还好,但是遇到一个稍微复杂一些的游戏,就会完全不知所措了。


如果,你在开始之前,有了上方这张游戏流程地图,那你大概就很难再迷失方向了,因为它会清楚而明确的告诉你,哪些地方你已经去了,哪些地方你还没有去,哪些地方应该先去,哪些地方应该后去。


如果你想成为一个厉害的游戏开发者,希望你能够具备“绘制地图”的能力。即使现在没有也没关系,这个跟做游戏一样,都需要刻意练习。


从今天就开始练习这项技能吧!一旦你熟练掌握了,对游戏的整个制作就会有更强力的把控,你会变得更加胸有成竹。


因为地图在手,天下我有。




我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号就对啦!

相关文章
|
26天前
|
前端开发 JavaScript
前端复刻经典小游戏之飞机大战(一)
前端复刻经典小游戏之飞机大战(一)
21 1
|
26天前
|
前端开发 JavaScript 安全
前端复刻经典小游戏之飞机大战(三)
前端复刻经典小游戏之飞机大战(三)
15 0
|
26天前
|
前端开发 JavaScript 测试技术
前端复刻经典小游戏之飞机大战(二)
前端复刻经典小游戏之飞机大战(二)
37 0
|
算法 索引 容器
如何做一个俄罗斯方块游戏(二)
嗨!大家好,我是小蚂蚁。今天我们继续学习如何做一个俄罗斯方块游戏。整个系列教程计划按照这个流程图开展,这也是我制作整个游戏的过程,今天我们就来看一下“随机生成形状”这个模块。想要实现随机的生成形状,首先必须要知道在俄罗斯方块中一共有多少种形状(也就是我们上一节中留下的第二个问题)。
134 0
|
小程序
如何做一个泡泡龙游戏(一)
嗨!大家好,我是小蚂蚁。从今天开始,我将会用几篇文章讲一下如何制作一个泡泡龙游戏,泡泡龙是一个传统经典的消除游戏,也是一个经久不衰永不过时的游戏。 这篇文章我们主要来了解一下如何设置泡泡龙游戏的初始布局。
120 0
|
算法 小程序
如何做一个泡泡龙游戏(六)
嗨!大家好,我是小蚂蚁。 上一节中,我们学习了泡泡龙游戏中的查找算法,这个算法可以帮助我们找到所有相邻的相同颜色的泡泡,在查找完泡泡之后,再通过判断满足条件的泡泡的数量是否大于等于 3,来决定是否应该进行消除。
88 0
|
小程序 流计算
如何做个泡泡龙游戏(三)
嗨!大家好,我是小蚂蚁。今天我们来继续了解在泡泡龙游戏中,泡泡是如何发射,移动,反弹和停靠的。 这一节里会涉及到比较多的数学运算,不过完全不用担心,试着找一张纸和一支笔,画一画,很容易理解的。
110 0
|
小程序
如何做个泡泡龙游戏(四)
嗨!大家好,我是小蚂蚁。在上一节中,我们学习了泡泡的发射,移动,反弹和停靠。所有的这些都是以计算的方式来实现的,我们没有选择使用物理,碰撞检测这些方式,因为泡泡龙游戏需要一定的精准性,而通过在每一帧进行计算,可以保证游戏的精准。
92 0
|
小程序 索引
如何做一个泡泡龙游戏(二)
嗨!大家好,我是小蚂蚁。今天我们继续学习制作一个泡泡龙游戏。 绝大部分的泡泡龙游戏都是关卡制的,你玩过了一关,然后接着再玩下一关。每个关卡其实都是预先设计好的,闯关的过程就是游戏将一个一个设计好的关卡呈现给玩家的过程。这些关卡都是怎样设计的呢?游戏又是怎样将这些设计好的关卡呈现出来的呢?欢迎带着这两个疑问开启今天的阅读之旅。
110 0
|
算法 小程序
如何做一个泡泡龙游戏(五)
嗨!大家好,我是小蚂蚁。我们今天来继续学习泡泡龙游戏中最核心的东西:查找匹配算法。 其实这也不算是什么新东西了,如果你有看过我的其它关于消除游戏的教程,应该会知道,消除游戏的查找算法就那么一个,不论何种类型的消除游戏,这个算法的核心是不变的,只不过会根据不同类型的消除稍作调整而已。所以,如果你之前对查找算法还不是很了解的话,那么就尝试跟随着这篇教程把它彻底搞懂吧!
98 0