人人都能做游戏系列教程2(视频+图文版)

简介: 这是“人人都能做游戏”系列视频教程的第2节。这一节我讲会先带大家了解一下一个小游戏的全貌,然后会介绍一些游戏开发领域的“术语”。最后,会分享一些个人的经验和心得,希望能够对大家有所帮助。

这是“人人都能做游戏”系列视频教程的第2节。这一节我讲会先带大家了解一下一个小游戏的全貌,然后会介绍一些游戏开发领域的“术语”。最后,会分享一些个人的经验和心得,希望能够对大家有所帮助。


image.png

原文链接:https://mp.weixin.qq.com/s/4AYIgf_6J-9Pg5WcjJBrQg


哈喽!大家好,欢迎来到人人都能做游戏微信小游戏开发系列教程的第二篇,我是小蚂蚁,这一节里呢我将会先带大家看一下整个游戏的面貌,然后我们讲一下游戏开发领域中的一些常用的术语,最后分享一些个人的经验或者心得。

下面让我们直接步入正题。

640.png


首先呢小蚂蚁先带领大家看一下我们的游戏的全貌,这个太空保卫者就是我们将会学习去制作的一个小游戏,它是一个太空射击类型的游戏,非常的简单,但是它包含一个游戏所会包含的几乎所有的内容。麻雀虽小,但是五脏俱全。


640.png


640.png

现在我点击开始游戏,作为一个游戏的玩家,你所看到的是游戏的画面,比如说我们有战机,有不停向下飞行的敌机,以及我们不停发射的子弹以及一个太空的背景,另外还有一个动感的背景音乐,这些都是属于一些可见的部分。


那么对于游戏来说,它还存在着另一个世界,也就是不可见的部分是这些不可见的部分让我们的整个游戏运转起来。不可见的部分都包含哪些?比如说游戏的逻辑,比如说你可以看到现在小蚂蚁用鼠标点着我们的战机在太空里进行飞行,要实现这样的功能就需要用到我们的逻辑了。另外通常一个游戏都是有规则的,那么这个游戏中的规则是什么呢?就是你要尽量的躲避敌机,不要让敌机碰到,游戏通常也会包含一个目标,比如说这个游戏的目标就是我们要尽量的获得更高的分数,游戏也会有一个结束条件,一个游戏通常不会永远的运行下去。这个游戏的结束条件是当我们被敌机碰到以后,就GameOver了。


640.png

在你阅读一本专业性的书籍之前,通常都会有这样一个章节,其中会介绍一些书中将会使用到的术语。在你正式开始阅读之前,通常需要一些了解一些这样的术语,然后才能更好的明白作者在书中所表达的意思。


我们也参照这个模式,在正式开始游戏开发之前,先了解游戏开发这个领域的一些行话,我认为从实用主义的角度来讲,这些行话其实并不利于语言的理解和传播。尤其是对于非本行业的人来说,内行人平时用的这些话,他们都以为是日常用语,但是如果你想像外行人来介绍这些内容的时候,最好的方式是不要用那些“行话”,但是这里我们仍然不可避免的要先了解一些这些东西,因为这些是游戏开发行业以来长期的一些积累,因为大家都这么用,如果你不知道的话,当你听到一些行话你又听不懂,这样会影响你的学习和理解。


这些行话其实都不是什么深奥的东西,它只不过是一些专业的人喜欢用这些专业术语来体现自己的专业性而已。


640.png


- 精灵


首先呢让我们来看一下第一个精灵sprite,大家可以把精灵理解成图片,让我们在项目中看一下到底是什么是精灵呢?


640.png

*图中圈出来的图片,以及这个太空背景都是精灵。


大家不需要去急于理解这个项目这个工程里边各个部分的内容或者是都是什么意思,在这里只是借助这个工程带大家理解一下什么是精灵。可以看到在我们的这个游戏中是有一个太空的背景,这个太空的背景其实是一张图片,而一张图片我们就可以称作它为精灵。可以看一下这里的敌机是一张图片,那么敌机也是一个精灵,包括一个蓝色的子弹以及我们的战机,甚至是这个白色的数字都可以称作精灵。


在游戏开发中我们可以完全把精灵等同于图片,我猜测创造精灵这个术语的人可能是一个比较浪漫的人,当他在向别人介绍自己的第一个游戏的时候,他可能是这样说的:你看在这个屏幕上有一个跳动的小精灵,而不是说你看这个屏幕上有一个跳动的图片,如果创建这个数据的人是一个比较务实的人呢,那么很可能这个术语就不叫做精灵了,而是叫做图片(picture)。


我觉得这些术语可能还有这样的一个用处,它能够让你识别出人群中的同道中人,比如说当你听到别人说精灵而不是说图片的时候,你大概就会知道。唉呦这个是同道中人。


-场景


下一个场景,什么是场景呢?


你可以把它类比成一个房间,比如说一个游戏是一个整个的房子的话,那么场景就是这个房子里的每一个一个的房间,在你的房子里每间房间的布置和摆设都是不一样的,比如说你在客厅里可能会有电视机和沙发,在卧室里会有床和衣柜,就对应着游戏的场景里,每个场景也是都有不一样的布置,可能有的场景是负责显示菜单的,有的场景是负责显示结束界面的,有的场景是负责展示游戏的。


在房间里的每一个屋子通常是可以互通的,你可以从客厅走到厨房,然后可以从客厅走到卧室,这些房间之间是相互联系可以互通的,在游戏里呢每个场景也是互通的,比如说你可以从菜单场景进入到游戏场景,然后从游戏场景进入到菜单场景,接着呢我们就在工程里看一下,加深一下对场景的理解。


640.png

大家可以从左侧看到啊我这里是有两个场景的,比如说这个是我们刚才展示的游戏的主题,菜单界面非常的简单,只有一个游戏的标题和一个开始按钮,相当于一个开始的场景,然后我们的游戏场景呢就是这个它里包含了敌机战机以及我们的太空背景,这两个场景之间可以互相联系,比如说当我点击开始的时候是可以进入到游戏场景的,然后游戏结束了以后,如果有返回的话,又可以进入开始场景。


通常一个游戏会包含很多个场景,但是对一个小游戏来讲,很多的小游戏只有一个场景,类比到我们的房子里,通常一座房子会有很多的房间,但是比较简单的房子可能只有一个房间,一个游戏中通常会包含至少一个场景,就像是即使是最简单的房子也至少有一个房间。


-克隆体


接着来看克隆体,什么是克隆体?通俗的讲你可以把它理解成复制粘贴,就是你把一个物体A复制黏贴出一个物体B,这个B和A有着一模一样的特性,一模一样的特征。比如说我现在手里有一个红色的重量为一千克的球,现在我把它克隆出一个球B,那么这个球B和球A有着一模一样的特征,它也是红色也是一千克,我可以接着对A球进行克隆,然后可以克隆出C,D,E,F,GH。然后这些所有的球都有一个共同的特点,那就是它和A球有着一模一样的特性,它都是红色,而且都是一千克。下面我们可以在项目里看一下关于克隆体的东西来更好的理解。

640.png


大家可以看到我当前选中了我们的战机,现在我复制,黏贴一下,然后这里又出现了一个战机,这个战机就相当于我们战机本体的克隆体,它和原来的战机有的一模一样的特性,大家可以看到它有着同样的图片,然后它有着同样的大小,那么这个新的复制黏贴出来的战机,我们就可以把它称作一个克隆体了,这就是克隆体的概念。


- 脚本


接着是脚本,脚本可以把它理解成为游戏中的某个东西增加一种能力,比如说在我们的刚才展示的太空射击游戏中,我们需要为敌方的战斗机增加一种向下移动的能力,那么想要为它增加这种能力,我们就需要用到脚本了。


640.png

我们在工程里看一下,可以看到当前我选中了这个敌机,而敌机的脚本在哪里?呢就是这个区域就是我们为其增加的脚本,也就是为这个敌机增加了一系列的能力,比如说它可以不停的沿着场景向下飞行等等,在很多其他的引擎里,可能脚本指的是一些代码,但是这里我们不需要你去提前学习一门编程语言,我们将会使用这样一块一块的积木块拼凑出敌人的逻辑,然后为它赋予各种各样的能力。


-变量


接下来看变量,你可以把它理解成游戏中的记录员。比如说在一场篮球比赛中,我们需要记录两个队的得分,然后最终比赛结束时通过比较两个队的得分来决定哪个队获胜,这种记录得分的工作就可以交由变量来做。在我们的太空射击游戏中,我们需要记录玩家击毁的战机的数量,那么这个记录工作就可以交给我们的变量来做,我们可以创建一个变量,比如说名字叫“玩家得分”的变量,然后用这个变量来记录玩家在游戏中所得的分数。


总之呢,变量就是一个记录员的角色,你在游戏中不论何时需要记录任何的东西,不论是你需要记录一个数字,或者是你需要记录一句话,都可以让变量这个记录员来为你记录。


-属性


接着呢我们看一下什么是属性?打个比方,拿小蚂蚁举例,小蚂蚁都有哪些属性呢?身高、体重、性别、籍贯等等,这些小蚂蚁身上的可以表示某些特征的东西,我们都可以称之为属性。


640.png

结合一些项目中的图片,我们来更好的理解一下属性。大家可以看一下我当前选中了一个敌机,然后在我的属性区域中可以看到当前的,所有的图层属性,比如说这个图层叫什么名字,然后它的类型可以看到它是属于一个精灵类型,然后它是它的坐标位置,宽,高,旋转,它的中心点位于哪里,它是否透明,以及它的颜色是什么?这一系列的特性就可以称作这个图片精灵的属性。

游戏中不同类型的资源素材会有不同的属性,比如说当前我们看到的是图片的属性,然后对于声音也会有声音所独有的属性,例如声音的大小,声音的长短等等,这就是属性了,你可以把它理解为一个东西的所有的特征。


-通知


接着我们讲一下最后一个术语通知,什么是通知呢?可以把它理解成发送消息,比如说现在我要和王小明发信息,我给他发送了一条信息,问他“你吃饭了吗”?那么这条信息呢就可以被称作是一个通知。


一个通知通常是由两方来共同完成的,一个发送方,一个接收方,而作为我就属于发送方,发送方负责发送通知,就像我发送了一条消息给王小明,这是作为发送方的职责。而当接收到消息之后,采取如何应对就是接受方的责任。例如当王小明看到我发给他的消息之后,他有可能完全不予理睬,也有可能给我回复一下,说已经吃了。也有可能他看到我发的消息以后,就会想睡觉,总之他将作何反应,完全由接收方自己来做决定。


通知里通常会包含多种类型,比如说一对一的通知,一对多的通知,也有可能是群发,大家可以直接把它理解成在群里发消息。如果你想给某一个人发消息的话,那你直接@那个人,如果你想给多个人发消息的话,你可能会@多个人,但是如果你想发一个群里的通告的话,你会@所有的人。


这就是通知了,其实很好理解,就把它想象成发消息就行了。


640.png

最后,让我们来一起总结一下这节课我们所学过的内容。首先我带领大家了解了一下一个小游戏的全貌,我们看到了游戏包含图像声音这些看得见的东西,以及后面的一些看不见的东西,包括我们的一些互动以及游戏通常都会有一个规则,游戏也会有一个目标和结束条件。


接着,我们了解了一些游戏开发行业领域的一些术语,你可以把精灵直接类比成图片,其实精灵就是图片。

可以把场景比作是一个房子中的一个房间,一个游戏就是一个房子,一个场景就是房子中的一个房间。


脚本呢,大家可以把它想象成其实就是为游戏中的某个东西增加一项能力,它是一个幕后工作者。


当我们在游戏开发中遇到需要记录东西的时候,就要记得变量这个记录员,它就是负责为我们来记录东西的。


属性呢,就是物体的一个特点,这些特点来标识出这些物体是与众不同的。比如说小蚂蚁是一个独立游戏开发者,是一个90后等等,这些都属于小蚂蚁的属性。


最后,我们讲了一下通知,其实就是发消息,可以单聊,也可以群发通知,需要两方的参与一个发送方,一个接收方,发送方只负责发送消息,而接收方决定接收到消息以后该如何做。

640.png

在最后,我想跟大家分享一些东西,这些东西都是我从事游戏开发多年积累的一些经验,或者是踩过的一些坑,走过的一些弯路,或者总结的一些自己认为比较有用的方法,这些方法或者经验不一定对,但是也许可以给大家作为一个参考。


我希望这个系列教程不单单能够教给大家做游戏的一些知识和技能,也希望它能够在想法的层面或者是职业发展的层面给大家带来一些帮助。


我要分享的第一点就是:不要限制自己。有很多投入游戏开发行业的人,他可能的想法是这样的,比如说是我以技术出身,那么我进入游戏开发行业以后,我只是想做技术。


小蚂蚁自己也是以技术出身的,当初我进入游戏行业的想法是这样的,我只是想写写代码,因为写代码我认为是一件很酷的事情,然后我就想一辈子写代码,后来我就发现程序在游戏开发中只是一个部分,如果你想具备能够开发出一款游戏的能力,那么你只会写代码是远远不够的,因为你还有其他的很多东西要学,如果我当初坚持了自己的想法,一辈子只写代码,那么我现在大概也不可能成为一个独立游戏开发者。


所以,在这里给游戏开发新手的第一条建议是:当你进入这个行业的时候,不要把自己限定在某一处。你可以观察一下通常在一个公司或者团队里边,比如说你们程序组的老大,他可能并不是程序写得最好的,然后美术组的老大也可能并不是画画画的最好的,但是他们可能都会具备这样一些能力,他们善于沟通,善于制定分配任务,他们可能不是你这个技术领域最强的人,但是他们至少除了这个技术领域也会了解一些其他的部分。比如说你程序组的老大可能会了解一些美术的部分,所以呢如果你想在职场上有一个比较好的发展,那么你除了自己的本职领域要做好之外,要尽量的去涉猎一些其他领域的内容,否则的话如果你只会写代码,其他的什么都不会的话,那你大概也就只能当一个程序员了,这也就是为什么你不能把自己限定在某一块的原因。


这也就是为什么我建议刚进入游戏领域开发的新手,要先去了解整个游戏开发的过程,然后了解这个过程之后,你再去决定自己比较适合哪一块,然后往哪一块发展。当然在你决定往哪一块发展之后,不要忘记去了解一些其他方面的东西,因为这两者并不冲突,你可以在程序领域钻研技能,做到很厉害,但是这并不影响你去了解一些美术的知识,所以大家不要把自己限定在一个空间之内,如果你对自己加以了限制,那么相当于你只能处在自己的世界中,而看不到其他的世界。


第二点想要分享的就是:通过多个维度来加强竞争力。很有可能你会遇到这样的情况,虽然你在这个领域或者行业已经很努力了,但是你发现自己仍然做不了这个领域里的牛人,这时候先不要气馁,通常每一个领域中的牛人,他除了需要自己长期的努力和积累以外,也需要一定的机遇和运气。


你可能已经很努力了,但是发现自己仍然做不到这个领域里边的牛人,那么这时你该怎么办呢?不努力了吗?当然不是,这个时候,你可以试着改变一下自己的策略,比如说既然我做不了程序里面的大牛,那么我能不能做一个最懂美术的程序呢?或者说你在画画上实在没有天赋,只能画出一般的水平,那么你能不能成为会画画的人里面最懂游戏设计的人呢?


以我自己的经历举个例子,我是一个非常普通的游戏开发者,比我厉害的做游戏的人有非常的多,当我意识到自己很可能做不到很厉害时,我使用了另一种策略,我可不可以成为做游戏的人里面最会教别人做游戏的人呢?我可不可以成为做游戏的人里面最会写教程的人呢?所以我除了做游戏之外,也开始写教程,然后现在也开始录制视频教程。

我做的这些事在很多做游戏的人眼里看来是“不务正业”,因为做游戏就好好做游戏嘛,为什么要去做些其他的事情,但是对于我来讲,所谓这些“不务正业”的事却给我带来了很大的价值。


举个例子,当前看到这个视频教程的你因为看了我的视频教程,从而知道了有一个做游戏的家伙叫做小蚂蚁,而且他也在致力于帮助很多人去做游戏,并且这个家伙还会写游戏教程,甚至你有可能会去玩到我的游戏,让我的游戏在茫茫的游戏海洋里有机会会被更多的人玩到,对比那些默默无闻的比我厉害的做游戏的人,是不是从某方面来讲,我的综合竞争能力会更强一些呢?


所以这是我的第二个分享,大家要想办法通过多个维度来打造自己的综合竞争力,在一个维度上你可能和别人比的是长度,但是如果你能比别人多一个维度,那么你将能够用你的面积去对比他的长度。如果你可以具有三个维度,那么结果将会是你用你的体积去对比别人的长度,虽然我可能在一个维度上的长度不及你,但是在三个维度上,我的综合竞争力可能要强过你。


说了这么多,那么问题来了,去哪里看小蚂蚁写的教程呢?欢迎大家关注我的公众号小蚂蚁游戏开发,里面有很多的我的原创的游戏开发教程。

相关文章
|
4月前
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
408 0
|
5月前
|
移动开发 HTML5
经典的泡泡龙游戏源码免费下载
HTML5泡泡龙冒险小游戏是一款休闲网页游戏,游戏玩法是玩家从下方中央的弹珠发射台射出彩珠,多于3个同色珠相连则会消失。
41 2
经典的泡泡龙游戏源码免费下载
|
6月前
|
小程序
小蚂蚁的游戏模版
小蚂蚁的游戏模版
71 1
直播源码技术文字聊天功能的配置
我们要开发直播源码平台,直播源码技术文字聊天功能就务必要有,为什么会这么说那?直播源码技术文字聊天功能又该如何去实现那?接下里就进入到我们今天的知识分享:直播源码技术文字聊天功能的配置。
直播源码技术文字聊天功能的配置
|
自然语言处理 Python Windows
|
自然语言处理 Python Windows
|
开发工具 开发者
人人都能做游戏系列教程1(视频+图文版)
决定将“人人都能做游戏”系列教程做成视频教程,帮助更多的想要做游戏的人做出自己的小游戏。 第一次制作视频教程有很多的不足之处,望大家见谅,多提意见和建议,帮助我改进,共同把这个系列教程做的更好。
160 0
|
开发者 C++
微信不够好看的地方,只能自己来动手了 | 公众号卡片美化
微信不够好看的地方,只能自己来动手了 | 公众号卡片美化
|
程序员 开发者
人人都能做游戏系列教程2(视频+图文版)
这是“人人都能做游戏”系列视频教程的第2节。这一节我讲会先带大家了解一下一个小游戏的全貌,然后会介绍一些游戏开发领域的“术语”。最后,会分享一些个人的经验和心得,希望能够对大家有所帮助。
79 0