之前已经有预告过,所以UP这次会教大家入门游戏开发,这里选择的是unity3D引擎,实际上相关的教程在互联网上已经成千上万了吧,所以也没有必要再把别人做过的事情重新做一遍,这个教程能教会你如何学习做游戏,但是却不会教你技术。
UP能做的只有引导如何学习做游戏,接下来你将面临不断的失败、不断的失败、再次不断的失败,有时候可能会失败到打击你的身心,但是请记住,能从跌倒中爬起来并再次面临下一次跌倒的人,才可以成为强者。
这就是“从零开始的做游戏”,本次并没有规划专栏会写多少篇,仅仅规划了会做一个怎样的项目,所以或许这是个深坑。
这次的专题,都是以程序技术为主的描述,所以关于如何做策划、美术和音乐不在探讨范围内。
序“我有一个很好的脑洞,但是我既不是游戏策划也不是程序员,我怎么可以实现我的想法”
那么这期文章即会让你入门游戏制作,这篇应该算是一个门槛非常低的文章了,你只需要拥有如下能力就能上手:
认识简体中文能看懂UP在说什么
有软件使用基础,这里指的是使用过ps或ppt这种开发类软件。
自学能力强,懂得如何通过网络来找到学习资料
“授人予鱼不如授人予渔”,学习不是靠别人的,而是靠自己的,学会自学吧,有些知识,你无法找到老师。
不过在干货之前,UP依然会先科普一点知识
游戏引擎是什么各位游戏玩家应该经常听说“引擎”这个词,比如某个游戏用“虚幻引擎”开发,某个游戏又是“寒霜引擎”,那么引擎到底是什么呢。
可能有些小伙伴想到了UP开头所说要学会用搜索自己学习,于是就试了试搜索一个叫做unity3D的引擎,百科介绍是这样的。
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。
那么请问可爱的UP,Director,Blender game engine, Virtools ,Torque Game Builder这些都是什么鬼,虽然我也很想自学啊,但是我看着这些专业术语后我选择死亡。
所以这里就要提倡一下我的学习方法了,先实践再理论,因为一开始你所知道的知识并不多,学理论经常会让你懵在很多专业词语上,不如先实践,等你发现到了瓶颈的时候,再回来学习理论你会发现好像当初看不懂的都懂了。
另外则是,UP会以设计游戏的理念来做教程,这里不会一来就塞给你无尽的知识,而是以“将知识隐藏在关卡中”这种方式来让你一点点的学习,所以UP没提到的事,可以先不用管它,不用你懂。
所以关于“游戏引擎”到底是个什么玩意,它的原理是什么,此时你只用了解这一点就行了:游戏引擎就是为开发游戏用的软件,就像做视频要用AE,画图要用sai,做幻灯片也要用PPT一样,您只管用就行。
现在是个商业竞争的时代,对于游戏引擎来说也是一样,并不是一家独大的,而同样的每个游戏引擎也就都有它的优点和缺点,所以说也就是没有绝对“好”的引擎,只有适合你的,实际上现在各家引擎也在互相取长补短,就像手机系统“IOS”和“安卓”一样,不断的更新,不断的做得更好,也不断的互相借鉴。
UP选择unity3D引擎(后面简称U3D)的原因是因为刚开始学习的那个年代,仅有unity3d引擎免费提供以及文档齐全、教程多、需要电脑配置低、入门简单、可以方便的开发电脑和手机游戏。
实际上最近几年虚幻等引擎也开始弥补自己的短缺,比如推出UDK免费套件,和U3D一样的支持游戏跨平台发布等,实际上如今UDK开发的游戏效果会比U3D更好,毕竟虚幻的底子是很厉害的。
UP是个懂得感恩的人,当年是U3D让我踏入了游戏开发的领域,所以在未来,只要U3D还在持续良好的发展,我则会一直坚守这个引擎的。
当然,还有一些其他的入门门槛更低的开发工具,比如RPGMAKER,又比如橙光,这些开发工具的优点是可以让你0代码做出一款游戏来,缺点是技术限制很严重,只能按照它所提供的模板开发,有些工具可以通过改脚本的方式来做一些特别的功能,但想自己编写里面的脚本也不是很简单,跟写程序没什么区别。
之前提到的RPGMAKER或橙光等开发工具不知看这篇文章的小伙伴们有尝试过吗,用那种开发工具可以0代码开发游戏,所以也得到了广大的游戏开发爱好者参与,但是要用到U3D这种游戏引擎了,那么写代码也就是必然需要的事情了。
所以,是不是还得先去看一本代码书?是的,您先去啃一下名叫《C#入门经典》的这本书吧,然后我们的下一期教程将在3年后继续更新,各位小伙伴先加油学习程序哦~。
——要是这样的话这篇文章可以不写了
所以需要多少代码基础才可以做游戏呢,答案是0基础。也就是不用先看任何书、也不用对程序有任何入门,就可以开始开发游戏了。
或许看到此时很多人都觉得UP您在搞笑吧,就算没有写过代码的你也知道“程序员你new一个对象出来啊”这个梗,所以这个new是什么意思,我连这些都不懂怎么写啊。
是的,你目前完全不用懂得这些,根本不必去考虑或许你道听途说过的INT、IF是什么,程序没有那么难,都是一个个小目标积累起来的。
所以现在就开始干干干吧。
安装一个U3D如今U3D的版本已经来到了2017版,因为这个引擎每一代更新的时候都会有非常大的变化,所以各位去搜索教程的时候建议以“unity 2017 安装”这样的方式去搜索。
所以,具体怎么装一个引擎UP就不再说明了,网上教程有亿千万,也不必由我来写。
不过这里UP想呼吁一下:
unity3D的官网是unity3d.com,请务必记得去官网下载,不要偷懒到网盘或使用迅雷等软件,因为曾经有发生过下图所说的事情,不排除U3D也会发生,所以即使下载速度慢也要走官网(况且U3D下载速度很快),再次强调说明,走官网点的连接并通过迅雷下载的也有风险。
U3D免费版和破解版的区别目前主要在于破解版可以去掉启动画面的U3D的LOGO,以及少了一个黑色的界面皮肤,强烈呼吁有能力购买正版(850元/月),否则使用免费版,一个是破解有可能带来不安全因素(类似上图问题),另一点是尊重U3D的开发公司,别人都已经免费给你无限期使用了,并且功能方面几乎和付费没有区别,为何还要去破解它呢。
呼吁使用英文版,不要去找什么汉化补丁,一开始或许会看着头疼,实际也不需要能立即看懂,记得什么字母大概是什么意思就行,毕竟现在写代码也基本上是使用英文的(当然现在也有使用汉字编程的工具了),多看看英文还能提高英语水平,不是还要考四级吗,学程序顺带还能把英语学了,多好啊。
接下来,各位去装好您的U3D吧,装好后我们接着来。
可能很多人不解,为何程序学习总要从HELLO WORLD开始,跟着UP的步伐,等你成功的说出“你好 世界”后我就会告诉你。
UP计划利用教程时间设计一款简单的小游戏,不过在此之前我们先不考虑游戏做什么,我们先执行项目创建
之后你会看见这样的界面,不过很多小伙伴可能都会遇到项目启动就报错,反正这个报错不影响开发,总之可以无视。
可能上面的界面还和有些小伙伴的不一样,比如界面的顺序不同、又或者截图中多出了一个窗口(即Console),这个窗口只需点击一下底部红色的文字就能弹出来了。
关于界面的每一块是做什么的,各位也可以先不用去管,现在仅需按照这样的步骤做。
在界面中找到“Project”的窗口(如上图),然后在“点右键”提示处点右键
之后选择Create - Floder,创建一个文件夹,为文件夹起名为Script(这里提示一下,点击文件夹按F2可重命名)
这里建立文件夹的目的是为了将不同资源区分开,其作用就跟整理房间类似,把相同的东西收纳到一个地方,避免内容乱七八糟,到时候看着自己都头疼。
接下来,跟着下图继续点右键
Create - C# Script,然后你可以创建一个C#(读作:C sharp)脚本,我们起名叫HelloWorld,各位需要注意一点,创建脚本的时候,第一次起名就定好,不要重命名,不然你可能会遇到问题。
题外话:U3D支持C#和JS格式的脚本,其基本上都相同,甚至可以在一个项目里又用C#又用JS混搭,两种脚本各有优缺点,不过UP推荐全部使用C#,因为C#对插件的兼容性更好
接下来双击HelloWorld,就像打开你的电脑一样,接下来你会打开一个这样的窗口。
或许有些小伙伴发现,我也打开窗口了,我怎么不是VS.NET呢,我是一个叫MONO什么的。
实际上在U3D开发中,你可以更换编译器,用什么都差不多,只是UP喜欢VS.NET,至于具体怎么换,这里就不教学了,如果想学习,自己去搜索吧。
建议写代码用深色皮肤,自行搜索如何用吧,因为相对来说对眼睛好一点。
如果你有两个显示器,可以一横一竖摆放成双屏(UP没有,所以就不展示了),坚屏放代码,又显得比格又增加开发效率。
大家都注意到吗,下图圈里的名字和C#文件名是一样的,创建C#文件时命名后里面会自动生成这个名字,所以为什么之前有说到,“创建脚本的时候,第一次起名就定好,不要重命名”,以后一定要注意这点,否则就会莫名报错了。
图中,自动生成了一些代码,这些代码也可以不用管,首先你按照下图中的方式写出这样的代码,注意其位置在Start下面的两个大括号里,以及代码的最后有个分号;
实际上,很多程序员的入门代码就是抄,UP一向不反对技术抄袭,因为技术是死的,不存在抄袭问题,而创意才是活的,没有谁会关心你的代码写得怎么样,除非BUG太多了。
这个print的意思就是打印括号里的字,写好后Ctrl+S保存。
保存后返回U3D,返回的时候你会发现U3D右下角有个Loading一样的转圈圈动画
接下来按照图里的箭头,把文件拖动到其位置里
接下来我们来运行下程序
如果你此时点击一下下面的文字,则会弹出“控制台”窗口,该窗口就是用来看一些问题的,比如游戏有BUG,报错就会在那显示。
好的至此你已经U3D入门了,就是这么简单,这时候UP可以解答下为何要用Hello World来做教程的原因了。
好的程序员通常拥有一个技能叫做找问题,也被称为“DEBUG”,即可以快速的找到问题并修复它,所以之后你会发现print是你做项目时会从头用到尾的功能,你需要靠输出来查找问题,甚至验证游戏中的隐藏数据是否正确。
预告UP会随心所欲的通过教程并做一款玩数值的类挂机手游,考虑到流行趋势等因素,可能会做一些类似氪金系统的功能开发,甚至还会教学如何通过植入广告赚些零花钱,由于平时很忙,所以只会在不能现充的周末写一写,更新速度或许比较慢,但是通过这一套教程,希望可以让各位一点点的了解到U3D里的常用功能,让各位也可以开发出游戏来。
因为是第一期,为了不把各位吓跑,所以教程还算做得很详细,不过逐渐的UP会增加入门的门槛,加大教程难度,减少细节说明,让各位小伙伴更多的需要靠自学和查资料才可以了解,因为UP希望教会的是学习方法。
你想成为游戏程序员吗?