标题很长,但本质上本篇是个游戏开发新手入门的介绍,和cocos2d-x还有IWBTG基本没有关系,所以不要慌。
Warning:和cocos2d-x以及模仿IWBTG相关的正文从下篇开始,本篇主要对游戏开发做一个简单的、片面的介绍
本人才疏学浅咸鱼一条,对游戏开发的相关的一点知识简单说下自己的了解,说得不对的地方,欢迎指教,以便我提高姿势水平。
关于游戏开发平台和游戏引擎
你常玩的游戏是在哪些平台上的?手机上?笔记本电脑上?还是游戏主机上?
如果你想开发一款游戏,又会希望ta跑在哪个平台呢?
游戏平台:主机、PC、移动端,内部又有细分,像ps、xbox啊,Windows、linux啊,iOS、Android啊。
我个人关注移动端多一些,所以相关的了解也就会偏一些:
打算摸一下的游戏引擎有这三个:unreal,Unity,cocos2d-x;
有些团队使用自己研发的引擎;
因为了解过一点iOS开发,所以也顺便了解了一点点苹果的原生框架SpriteKit。
unreal和Unity目前还没动手碰过,就SpriteKit和cocos2d-x对于我这个初学狗来说,挺像的,也许毕竟游戏开发的套路就是这样吧,所以大胆猜测一下:熟悉了一款之后再玩别的估计会容易些,和学语言差不多吧,但是想要深入就比较难吧。
我目前选了cocos2d-x没选SpriteKit是因为前者跨平台;没选unreal因为之前只熟悉iOS开发所以偏向做手游,据说手游团队相对较少用unreal(因为授权问题?);剩下两个随便挑一个那就cocos2d-x吧。
关于游戏引擎,专门拎出来说一下
如果你从来、从来没有接触过游戏开发,不知道为什么游戏开发一般都是要用游戏引擎的话,这里稍微解释一下。
Q:不用游戏引擎写个游戏行吗?
A:行,当然行,但所有的渲染、动画、物理等等你都要自己写。如果是做个简单的小游戏不涉及这些当然可以,比如做个简易的扫雷、或是纯文字冒险的游戏,但如果你有目的做复杂一些的游戏或者是团队合作,还是要用游戏引擎。
Q:初学者选哪款?(此条面对的是自由学习者,如果是进团队的话是不可能让你一个人来决定的)
A:这绝对可以入选任何领域入门的十大死亡问题之一,估计还能高居前列。比如:选哪个语言?选哪本书?哪个老师讲得好些?……
这个问题重要吗?也许挺重要,可能会决定你接下来的选择走向。
但,也没那么重要,听别人说你是得不到答案的,稍微了解下有哪些选择,自己去体验就好了。
选哪本书?都翻一翻,喜欢哪本、哪本能看懂、能看下去、看了能学到东西就选哪本。
学哪门语言?先上手学个一门,之后后再入门别的就快得很(当然只是入门)。
选哪个游戏引擎?常用的和最近比较hot的都去了解一下,然后:自己想做什么平台的游戏,这个平台哪款游戏引擎较为主流优先选;自己熟悉或者喜欢的语言匹配的优先选;学起来简单的优先选……如果玩了一阵觉得不爱就再换啊,一直不喜欢就多试几个呗,给自己一个决定的缓冲时间。
总之,不去亲身了解一下、摸一下,只是问别人的话,永远都没用。
Q:游戏引擎到底是什么鬼?
A:个人理解就是个工具箱,把那些和游戏逻辑没那么相关但又必须有的东西抽出来放一起,方便你用,脏活累活它干了,你只要操心自己的游戏业务逻辑就行。就好比你要画画不需要自己先制作颜料,买了直接用就可以。
06-19-update:游戏引擎到底是什么?
最近订阅了一个游戏开发的专栏,学习了一下发现自己的理解算是对的,但还是浅薄了。(以下引用的部分都摘自专栏:极客时间-从0开始学游戏开发,欢迎大家也来订阅,我们一起学习)
关于游戏引擎的重要性:
汽车没有发动机就无法跑起来,人类没有心脏就会死亡,而引擎就是发动机,就是心脏。
游戏引擎到底干了什么:
大多数游戏引擎包含以下系统:渲染引擎、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。(来自维基百科)
如果看完这些名词之后觉得一脸懵逼,没关系,没有基础的初学者一开始都是这样的(我当初就是)。有些单看名词吧,感觉模模糊糊好像知道是干嘛的,但如果让自己解释一下又完全说不上来,如果你也这样,请不要方,你先眼熟一下这些名词,特别不能理解的可以去搜一搜做个大致理解,想要这些概念真正在心里落地扎根,还是需要更多的了解的,现在不用着急,慢慢耐心学习就好。
游戏引擎是一整套游戏解决方案
一款好的游戏引擎,不仅要看它对于图形图像的处理能力,也要看它对于其他部分的处理能力。
所谓其他部分的处理能力,参考之前说的游戏引擎包含的系统,我们就可以大致知道一些了,比如音频的播放啊、对鼠标键盘以及触摸的响应啊、碰撞检测啊等等,还有「各种处理工具」:
地图编辑器、关卡编辑器、人物编辑器、资源编辑器
所有这些合在一起,确实是一整套游戏解决方案了,也就是说,你要开发一个游戏所涉及到的方方面面,都有引擎来帮你。
再说一遍!名词可能有点多但不要怕,先眼熟一下然后继续学习,很快就对这些名词都了解了。
其他背景知识
关于游戏的背景知识还有很多,但限于篇幅,也为了不让我写作以及你阅读得太过辛苦,这些背景知识都分散在以后慢慢来介绍,或者也许会出个合集(哟,flag立起来了呢)。
前提条件:开发环境
开发设备:要开发游戏,你必须先有个计算机吧。
操作系统:你的计算机上搭载的操作系统最好是Windows,因为用的人多,工具也多,教程自然也多,适合初学者。
开发语言:根据自己选的游戏引擎,先对要使用的语言有个基础应用能力,这是最最基本的,如果一点计算机语言都不懂的话想要做个游戏,推荐 RPG Maker 这种,或者先去把语言学了。
你要有个对应语言的编译器,你要有相应的脚步工具,你要有个IDE:如果是计科相关专业的同学,这些都不是事儿,估计连准备都不需要准备,但如果是完全新手、零基础、刚刚入门、没认真学过编程语言的同学,我大致猜测一下,光是了解、安装、试用这些东西就会要了你半条命,剩下的半条命你会格外珍惜以至于重新考虑要不要入这个坑……所以本着对新手友好的目的,建议先去学一门编程语言(优质网课不要太多),在这些课程里,一般来说老师都会指导你搞定这些。
所以,计科相关专业的同学就不说了,如果你是完全新手、零基础、刚刚入门,在认真学完一门编程语言的课,就算是完成这个前提条件了。
别的……好像真没啥要求了。反正暂时没想到,至少其他都不是硬要求了,什么对游戏要有了解要有爱啊这种(废话,没爱也不会想做游戏开发了)。
准备工作:在你真正开发自己的游戏之前,你要完成这些
假设已经满足了前提条件,距离你能够亲自动手开发自己想要的游戏就差这一步了。
准备工作简单来说就两点(也基本上是学习任何技术的方式?),拿起你的游戏引擎:
看guide,看文档
抄例子,看别人的代码
看guide是要对该游戏引擎有个大致了解,都有哪些部件,起什么作用,在心里建立个大致的框架出来,顺便可以思考下平时见到的游戏都运用了哪些部件。
抄例子就是为了直观感受,毕竟看文档太抽象,游戏开发还是要写代码的,抄别人或者官方的例子实际地去应用一下之前看到的概念,免得一脑子概念混在一团也不知道都干嘛用的。
这两个可以交替着来,看看文档抄抄代码,代码不懂的地方去看文档,文档无法理解的时候去抄个相应的应用。
什么时候可以开始动手自己尝试游戏开发了呢?我个人的一点看法就是:当你对要开发/模仿的游戏有个构思之后,能够大致了解自己要用什么组件去实现,不需要很细节,知道该找哪个来用就行,这时就可以开始动手实现自己的想法了,边学边做。
总结一下
这次介绍了游戏平台和游戏引擎(尤其是在游戏引擎上花费了大量篇幅),开发前要先准备好开发环境,并对要使用的游戏引擎有了一定的了解,接下来就可以真正动手开发自己想要的游戏了。
一点废话:下篇预告
开始用cocos2d-x自己动手开发游戏了,并不打算立刻就创新个游戏(其实是我苦思冥想绞尽乳汁也没想出来,而且想出来也未必有能力做出来),先做个模仿吧,想到i wanna be系列游戏那就它了吧,因为看得多也摸过相对熟悉模仿起来顺手,这个系列又可以做出很简单的关卡适合新手的我进行尝试。
目前就先写个耐久boss上手,因为可以足够简单地开始,也可以变得较为复杂,适合由浅入深地进行学习和开发。
从下篇开始就会进行具体的实现了。
好了废话说完了,我们下期再见!
领取专属 10元无门槛券
私享最新 技术干货