前言

之前已经有预告过,所以UP这次会教大家入门游戏开发,这里选择的是unity3D引擎,实际上相关的教程在互联网上已经成千上万了吧,所以也没有必要再把别人做过的事情重新做一遍,这个教程能教会你如何学习做游戏,但是却不会教你技术

UP能做的只有引导如何学习做游戏,接下来你将面临不断的失败、不断的失败、再次不断的失败,有时候可能会失败到打击你的身心,但是请记住,能从跌倒中爬起来并再次面临下一次跌倒的人,才可以成为强者。

这就是“从零开始的做游戏”,本次并没有规划专栏会写多少篇,仅仅规划了会做一个怎样的项目,所以或许这是个深坑。

这次的专题,都是以程序技术为主的描述,所以关于如何做策划、美术和音乐不在探讨范围内。

“我有一个很好的脑洞,但是我既不是游戏策划也不是程序员,我怎么可以实现我的想法”

那么这期文章即会让你入门游戏制作,这篇应该算是一个门槛非常低的文章了,你只需要拥有如下能力就能上手:

  1.  认识简体中文能看懂UP在说什么

  2. 有软件使用基础,这里指的是使用过ps或ppt这种开发类软件。

  3. 自学能力强,懂得如何通过网络来找到学习资料

“授人予鱼不如授人予渔”,学习不是靠别人的,而是靠自己的,学会自学吧,有些知识,你无法找到老师。

不过在干货之前,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想呼吁一下:

  1.  unity3D的官网是unity3d.com,请务必记得去官网下载,不要偷懒到网盘或使用迅雷等软件,因为曾经有发生过下图所说的事情,不排除U3D也会发生,所以即使下载速度慢也要走官网(况且U3D下载速度很快),再次强调说明,走官网点的连接并通过迅雷下载的也有风险。


  2. 当年Xcode的问题教育我们一定要从官网下载

    U3D免费版和破解版的区别目前主要在于破解版可以去掉启动画面的U3D的LOGO,以及少了一个黑色的界面皮肤,强烈呼吁有能力购买正版(850元/月),否则使用免费版,一个是破解有可能带来不安全因素(类似上图问题),另一点是尊重U3D的开发公司,别人都已经免费给你无限期使用了,并且功能方面几乎和付费没有区别,为何还要去破解它呢。

  3. 呼吁使用英文版,不要去找什么汉化补丁,一开始或许会看着头疼,实际也不需要能立即看懂,记得什么字母大概是什么意思就行,毕竟现在写代码也基本上是使用英文的(当然现在也有使用汉字编程的工具了),多看看英文还能提高英语水平,不是还要考四级吗,学程序顺带还能把英语学了,多好啊。

接下来,各位去装好您的U3D吧,装好后我们接着来。


第一个代码HELLO WORLD

可能很多人不解,为何程序学习总要从HELLO WORLD开始,跟着UP的步伐,等你成功的说出“你好 世界”后我就会告诉你。

UP计划利用教程时间设计一款简单的小游戏,不过在此之前我们先不考虑游戏做什么,我们先执行项目创建

点NEW
按照图里的描述来创建项目

之后你会看见这样的界面,不过很多小伙伴可能都会遇到项目启动就报错,反正这个报错不影响开发,总之可以无视。

启动界面

可能上面的界面还和有些小伙伴的不一样,比如界面的顺序不同、又或者截图中多出了一个窗口(即Console),这个窗口只需点击一下底部红色的文字就能弹出来了。

关于界面的每一块是做什么的,各位也可以先不用去管,现在仅需按照这样的步骤做。

找到界面里标注Project的地方

在界面中找到“Project”的窗口(如上图),然后在“点右键”提示处点右键

之后选择Create - Floder,创建一个文件夹,为文件夹起名为Script(这里提示一下,点击文件夹按F2可重命名)

实际上在选择文件夹后,单击箭头指向的地方也可以重命名

这里建立文件夹的目的是为了将不同资源区分开,其作用就跟整理房间类似,把相同的东西收纳到一个地方,避免内容乱七八糟,到时候看着自己都头疼。

接下来,跟着下图继续点右键

在Script里创建内容,在哪个文件夹点右键就创建在哪后面

Create - C# Script,然后你可以创建一个C#(读作:C sharp)脚本,我们起名叫HelloWorld,各位需要注意一点,创建脚本的时候,第一次起名就定好,不要重命名,不然你可能会遇到问题。

创建脚本

题外话:U3D支持C#和JS格式的脚本,其基本上都相同,甚至可以在一个项目里又用C#又用JS混搭,两种脚本各有优缺点,不过UP推荐全部使用C#,因为C#对插件的兼容性更好

接下来双击HelloWorld,就像打开你的电脑一样,接下来你会打开一个这样的窗口。

在VS.NET里的效果

或许有些小伙伴发现,我也打开窗口了,我怎么不是VS.NET呢,我是一个叫MONO什么的。

实际上在U3D开发中,你可以更换编译器,用什么都差不多,只是UP喜欢VS.NET,至于具体怎么换,这里就不教学了,如果想学习,自己去搜索吧。

建议写代码用深色皮肤,自行搜索如何用吧,因为相对来说对眼睛好一点。

如果你有两个显示器,可以一横一竖摆放成双屏(UP没有,所以就不展示了),坚屏放代码,又显得比格又增加开发效率。

大家都注意到吗,下图圈里的名字和C#文件名是一样的,创建C#文件时命名后里面会自动生成这个名字,所以为什么之前有说到,“创建脚本的时候,第一次起名就定好,不要重命名”,以后一定要注意这点,否则就会莫名报错了。

注意圈里的名字和C#文件名要同步

图中,自动生成了一些代码,这些代码也可以不用管,首先你按照下图中的方式写出这样的代码,注意其位置在Start下面的两个大括号里,以及代码的最后有个分号;

print("Hello World");

实际上,很多程序员的入门代码就是抄,UP一向不反对技术抄袭,因为技术是死的,不存在抄袭问题,而创意才是活的,没有谁会关心你的代码写得怎么样,除非BUG太多了。

这个print的意思就是打印括号里的字,写好后Ctrl+S保存。

保存后返回U3D,返回的时候你会发现U3D右下角有个Loading一样的转圈圈动画

在任务栏里点U3D的窗口就可以返回了

接下来按照图里的箭头,把文件拖动到其位置里

拖动脚本,到箭头所指的地方
如果带*,说明没有保存 Ctrl+S保存
将场景保存下来

接下来我们来运行下程序

按照箭头所示的步骤来

如果你此时点击一下下面的文字,则会弹出“控制台”窗口,该窗口就是用来看一些问题的,比如游戏有BUG,报错就会在那显示。

好的至此你已经U3D入门了,就是这么简单,这时候UP可以解答下为何要用Hello World来做教程的原因了。

好的程序员通常拥有一个技能叫做找问题,也被称为“DEBUG”,即可以快速的找到问题并修复它,所以之后你会发现print是你做项目时会从头用到尾的功能,你需要靠输出来查找问题,甚至验证游戏中的隐藏数据是否正确。

预告

UP会随心所欲的通过教程并做一款玩数值的类挂机手游,考虑到流行趋势等因素,可能会做一些类似氪金系统的功能开发,甚至还会教学如何通过植入广告赚些零花钱,由于平时很忙,所以只会在不能现充的周末写一写,更新速度或许比较慢,但是通过这一套教程,希望可以让各位一点点的了解到U3D里的常用功能,让各位也可以开发出游戏来。

因为是第一期,为了不把各位吓跑,所以教程还算做得很详细,不过逐渐的UP会增加入门的门槛,加大教程难度,减少细节说明,让各位小伙伴更多的需要靠自学和查资料才可以了解,因为UP希望教会的是学习方法。

你想成为游戏程序员吗?