使用免编程游戏引擎擎制作游戏是不是可以减少编程量,不同免编程游戏引擎擎编程语言是不是不一样?

汇众教育北京中关村游戏校区
当前位置: & 正文
如何学好3D游戏引擎编程(一)
  这篇文章是我一年半前,找工作时候写的,那时是发到学校的BBS上。现在我工作了,想法和以前也有不同,但对理念还是基本差不多。在我没遇到U3以前,一直研究WILDMAGIC,可以说是GAMEBRYO的前身吧,他们基本框架都差不多,是完全面向对象,代码容易读,但它发展存在严重的弊端,这个也是它为什么不是牛B引擎的原因。但从渲染和动画方面来看,U3的 MATERIAL TREE 和 ANIM TREEE 是2个飞跃的,当我对我自己引擎渲染材质和光照一筹莫展的时候,MATERIAL TREE带来的希望。对比 zfx (wildmagic)gamebryo 和ogre 还有U3,各有优缺点,而且你可以看到一个引擎发展,从一个以多边形为渲染单元,变成以mesh做为渲染单元(现在很少有引擎场景管理分割多边形来做的 我始终喜欢zfx引擎,它是00-02之间的引擎,完全让你可以理解那时候显卡不是很强的时候,一个引擎应该具备的特征。对于架构来讲,(wildmagic)gamebryo 和ogre 做的很好,u3的特点就是架构乱,没有什么可读性的技术文档,研究起来十分吃力。做为一个商业引擎,对于渲染方面,我认为(wildmagic)gamebryo 输给了ogre,框架设计还有弊端,ogre确实是一个好引擎。而U3对于渲染过程,光照,阴影,就是一帧的渲染过程,处理的十分得当。动态生成shader是一个引擎的发展的必然趋势,而往往动态生成最多的,也就是材质和光照,它们不能分开,分开谈无意义,MATERIAL TREE 我始终认为是个太好的想法了,任何特效不需要程序员过多参与,美术可以搞定一切,什么水,反射,折射,这些效果,编写起来易如反掌,还可以实时光看效果。其他动态生成,也就是根据配置不同,来做处理,动态编译shader弊端太大,不能做到所有,而且不灵活,如果动态生成和动态编译合起来,简直牛B透顶了。现在我的引擎已经有了MATERIAL TREE这个功能,ANIM TREEE在制作中。   这里面我重点谈的是图形方面,略带些动画方面,一个引擎最基本的是内核,包含内存管理,文件读写,资源管理等等吧,也十分重要,我的引擎这些写的都很简单,基本都是wildmagic里面的。   我总结3D引擎编程的4个阶段:   第一阶段是了解3D原理和数学基础,大学里面学的线性代数,概率统计和高等数学完全足够,在3D中都有充分体现。最好自己能做一个软引擎,这样整个3D流水线自己完全可以掌控,然后在学DX之类的API很容易。   第二阶段不要看引擎,还是应该以实现各种效果和基本算法为基础,包括各种图形特效,场景管理,剪裁算法,各种动画算法,等等,所有那些单一的算法,如果这些都不是了解很好,那么做引擎时引擎框架的接口也不会设计好!再添加这些算法和效果时 会很困难,效率也不会很高。   第三阶段,就是看大量的引擎,对引擎有很深刻的概念,3D引擎只是引擎的一部分,引擎主要是框架,如果框架搭建好了,那么引擎的效率是很显著的,其他底层细节优化,也会有明显的优势体现。   第四阶段,再好的引擎没有成功的游戏支撑都是白费,你不仅仅是做引擎,而是做的有开发价值的引擎,可以很好的为游戏服务的引擎。   下面这段话写于一年半前~~   前言   本人不才,姑且以自己经验来谈如何学,这个话题我酝酿了很久,它确实很难写,因为我也不是资深高手,才刚刚登堂入室,游戏编程大师功力一般都十几年左右,所以让我这样的小卒写的深入浅出更何谈容易,错误出现并不奇怪,高手见笑也在所难免,请大家指正,我会欣然笑纳。但这几年走过的路,让我知道这么学是正确的,大体过程经验告诉我,这样做是对的,高手的指引告诉我,这样做是对的。   这篇文章主要讨论如何学习游戏图形编程和游戏引擎编程,告诉没有接触游戏过编程或者现在关于怎么学好游戏编程还迷惑的PEOPLE所要走的方向,完全抛开技术和代码实现进行谈论。至于游戏逻辑这几年重点没有发到这个上面上,很难总结。   经验的限制,对于如何编写一个好的引擎(至于“好”这个词都是相对而言,能做的满意就是我所期望的),至今为止我还没有这个能力,但我相信经过我的努力,不久的将来,我会实现这个愿望,因为我的一个愿望就是实现一个好的引擎。   我从下面几个方面来说明如果学习,记住只是如何学习,要想学好就要靠你自己。   1。 你真的喜欢游戏编程吗?   2。 要了解游戏编程   3。 学会读书,自学与思考,交流与合作   4。 游戏编程需要的基础知识   5。 2D游戏编程   6。 3D游戏编程   7。 游戏引擎编程   8。浅谈游戏物理和AI   一。游戏编程,你真的爱她吗?   当你听完我的介绍后,你就要决定游戏编程是否适合你。   游戏编程可简单可复杂,简单的2D 《蛇吃豆》,复杂的现在流行的3D游戏。咱们不说简单的,因为你不想学习游戏编程就为了做一个简单的游戏。确实每个人对他所向往的东西都想彻底了解清楚,可是我给你的第一个警告,复杂的3D游戏,复杂到难以想象。   1、你思想需要改变吗?   打开话题,游戏是一个结合体,她是一个音乐,美术,技术,创意相结合的艺术品,你要用艺术的眼光去欣赏的,因为好的游戏是用艺术的眼光来设计,除了某国的网游不算外,很多经典的游戏流芳百世,成为真正游戏玩家佳话。   中国的游戏为什么这么落后,你要联想下,当年中国为什么会被八国联军所侵略。腐朽的思想是根本原因,从而导致了腐朽的社会制度。游戏行业也是这样,看待游戏的中国人,始终带着眼镜,用腐朽思想看待游戏,所以现在出现腐朽的游戏行业,导致中国游戏发展缓慢,有人曾经说中国游戏不久就赶超日本和美国,我认为是扯淡,而且不是一般的扯淡,具体原因后面我会详细说明。   从小的时候,国外的电子游戏产品就跑进了我的空间,废寝忘食的玩个没玩,因为耽误学习,从此电子游戏被老师和家长全部封杀,任何事物都有利有弊,鲁迅的《拿来主义》曾说过“去其糟粕,取其精华”。在中国,电子游戏被视为过街老鼠。确实要承认电子游戏有负面影响,但这些负面影响是谁产生的,本质上是我们自己,最后本来是精华的东西从我们身边擦肩而过,从小霸王以后的国外游戏机没有任何仿造,导致了游戏机技术从此断代,现在却又想起来赶超。   而现在,国人知道努力了,国家看到有钱可赚开始支持了,腐朽的游戏思想却还在蔓延,网络游戏就是这样环境下成长的新生儿,国内网络游戏每年要大批量生产,但存活的基本没几个。不能否定,没有利益的事情没人干,但你还不能否定,有些事情即使没有利益,但还是有人干,哪怕知道自己并不能得到什么。国内的人,很少是第2种人,他们把游戏做为赚钱工具,垃圾游戏隔三差五的纷纷涌出。相比来讲,我只拿日本举例子,虽然小日本和咱们有愁,但我们不得不承认小日本在游戏这方面思想层次完完全全超越我们,他们有严格游戏教育背景,他们做一款游戏,要按照严格的流程,从设计到编程,以至最后的测试,都有着干一行敬一行的精神,否则《生化危机》这样游戏你是永远看不到的。   所以你要改变自己的思想,游戏是一种艺术品,你要有一种艺术境界来去欣赏她。   2、你有毅力爱她爱到底吗?   也许我上面的话,你还能接受,残酷的在下面,以我的经验告诉我,如果你编程和游戏理论起步是零,你要对游戏编程达到略有小成的水平最少要4到5年,我比较蠢,花了6年。这6年来,几乎每天平均学习4-5个小时左右,当然假期都要算上。头3年半基本学习计算机基础知识,包括数学,数据结构,计算机体系结构,人工智能,汇编,编译原理,操作系统,网络,软件工程,离散数学,算法分析。我们大学4年基本就学这东西,这些都是基础,游戏编程都需要,还有一个就高等物理我没有学,导致我现在对于一些物理微积分方程很难理解,当然这里并不一定是问题,只要你肯努力,没有学不会的。完全把这些学好,花4年时间真的不容易。我曾经抱怨自己没保研而痛苦的经历考研,现在我却认为是值得的,我很难有时间在集中精力的复习这些专业课了,尤其是数学。   在游戏编程中,上面的基本知识都可以用到,所以我说游戏编程很复杂一点不假。就拿游戏中最难的部分——一个好的游戏引擎来说(这里说的好引擎),世界上能把她做出来的人很少,中国更是寥寥无几。   上面只是理论基础,要走进游戏编程最基本的。过硬的编程技能更是需要的,其实这些理论学习可以和编程相结合,在编程中学习理论,为了学习理论而增长编程经验。   有了基础,你才能进一步学习游戏编程,2D游戏和3D游戏理论都要学,这又要花费很长时间,这个是我下面要详细说的。   看完我写的,你可能心惊胆寒,所以你要爱她,深深的爱她,否则你承受痛苦的时候享受不到暗含的乐趣。   3、爱她请从游戏开始。   很多人可能不解,游戏编程为什么要从游戏开始,玩游戏时,有很多潜移默化的东西影响着我们编写游戏程序,很多灵感确实从游戏中得来。一般的游戏编程高手,都是从小由于游戏对他们巨大吸引,从而走上游戏道路,虽然不是绝对,但按统计学角度讲可以说是一个事实。一个不爱玩游戏的人,爱上游戏编程的几率是很小的。其实很多人小的时候都爱玩游戏,他们都是从游戏厅张大,只有一少部分,走向了游戏开发这个行业,他们之间有着明显不同,走向游戏开发的人,是真的被游戏背后那种神秘东西所吸引,并想要揭开它,而另一些人,则是完全迎合了游戏开发的需要——玩的高兴。   我想说的是,一个游戏编程高手,必定是一个游戏玩家,他们都是从玩游戏而爱上游戏,从而走上游戏编程道路。这条路充满了荆棘,不是一般人能走到最后的。所以你一定要爱她!   当然任何事情都不绝对的,你可能就是那不爱游戏但爱游戏编程(或者和游戏性无关的那部分编程)小概率的人。   二。游戏编程,你真的了解她吗?   游戏编程,这个概念包含了很多深层次的东西。   1、广义上,我给的定义是,游戏引擎开发和游戏逻辑开发。   游戏逻辑开发是集中力量只开发游戏中剧情部分,你只需要做的是什么时候显示什么,什么时候放出什么声音,什么时候通过网络传输什么数据,什么时候这个物体或者人物做什么动作。至于底层怎么显示,声音如何处理,网络如何传输,物体动作怎么实现的,你不用关心,关心这些的是游戏引擎。所以说游戏引擎负责技术方面,而游戏逻辑负责游戏文化内涵。   成功的游戏是以好的游戏逻辑为基础的,而游戏引擎并不是成功游戏主要条件,但好的游戏配上好的游戏引擎,确实会给人一种震撼,相比同样的游戏逻辑,好的游戏引擎显示效果会给人一种全新视觉和听觉感受。   至于游戏逻辑我不想过多解释,但并不是说游戏逻辑简单,游戏逻辑也可以复杂的要命,这取决与游戏复杂程度和游戏引擎与这个游戏的关联程度。为了解释这句话,我不得不从游戏引擎解释开始。   早期的游戏是没有游戏引擎这个概念,都是一个游戏一套代码,随着游戏越来越多,大家发现开发有些游戏中,有很多可重用的代码,逐渐把这些重用代码封状起来,这就是早期的引擎。对于引擎没有明确的概念,只有好坏和适应程度之分,所谓的好坏,就是引擎支持功能和显示特性等是否strong,而适应程度是指一个引擎是否适合开发这个游戏,开发这个游戏是否要自己再编写一些额外的代码。   我举个例子   如果我用开发混斗罗的引擎(假如它有引擎)来开发RPG,和开发RPG游戏的“RPG游戏开发大师”相比,我们还要做很多工作,才能完成玩法功能一样的游戏。   所以说很难有明确的界限划分这一堆代码是否是游戏引擎,但游戏引擎的任务是不用质疑的,它的任务就是尽量不用负责底层处理,而专心到游戏逻辑上来。   2、从狭义上分,我只分解游戏引擎部分,基本包括(1)游戏图形引擎(2)声音引擎(3)网络引擎(4)脚本引擎(5)GUI(6)人工智能引擎(7)物理引擎。   (6)(7)两个不是必须的,而前5个是一个好的游戏引擎要基本具备的,其实每个游戏引擎中都具备物理引擎,只不过很多游戏对于物理要求不是很高,所以就集成到了图形引擎中或者游戏逻辑中。   图形引擎是引擎中最难的,它基本要处理游戏引擎中70-80%的工作量,它的主要任务是负责图形高效显示,包括速度和精度。后面我会集中并详细解释。至于声音和网络引擎大家通过字面就可以知道它干什么。本人对声音处理和网络传输知道甚少,说出来只能误人子弟。   至于脚本我还略有研究,我想解释下什么是脚本,游戏中为什么用脚本。脚本有时很难给出一个定义,但大家都知道那些是脚本语言,我给出的解释是用软件 CPU(虚拟CPU)来运行的编程语言就是脚本语言,软件CPU和所说硬件CPU是对立的,也就是说脚本运行与否先是关联到这个虚拟CPU,在虚拟CPU上运行,然后再又映射到真正CPU,来真正运行。这个过程很抽象,我觉2个例子,第一个就是JAVA语言,它有一个虚拟机,这个虚拟机就是软件CPU。再举一个例子,我现在要编写这样一个指令、   PRINT S 这个指令表示打印S   S代表一个万能类型。   为了实现这个指令,你首先要有一个函数来负责处理打印   比如是这样的函数   void print(S)   {    cout&&S;   }   这里只是伪代码,只是表示这个意思。   你首先要找出PRINT这个单词,读入到一个buffer1,然后把参数读入buffer2   if(buffer1 == PRINT)    print(buffer2);   这里段代码其实就是一个软件CPU,它负责虚拟运行PRINT S 这个指令。   那么游戏中为什么要用脚本呢!最简单解释就是灵活性好。拿一个RPG游戏例子来说,游戏中有大量物品,每个物品有大量的属性,如果我把这些属性值直接写到游戏中,每一个小小的改变就要编译整个游戏,花费很多时间,灵活性很差。   如果我把这些写到一个文件中,用脚本语言来编辑,只需要编译脚本文件就可以了,当然如果你脚本是解释型的语言,不用编译直接可以运行。   当然脚本还有很多好处,主要目的还是方便性和灵活性。   其实GUI(图形用户接口)是一个重要部分。3D游戏中,出现的是大量的3D模型,这些模型是先用文件的形式存放好的,而文件里面包括的是3D数据和这些数据的组织方式。   至于数据怎么组织是你引擎要规定好的,这样也方便读取,最后把3D数据加载到内存。现在问题是3D数据上,我们怎么能有效的得到这些3D模型的数据,手工写进文本里?我靠,那是奴隶社会,SB的做法。我想你不会这么做。人类很聪明,这就是为什么人把其他动物关进笼子里,而不是其他动物把人关进笼子里的原因。既然我们很聪明,就要想一个办法快速的定义3D数据,然后保存成文件。这样一个3D编辑器就产生了。3D编辑器就是类似于3DMAX那种,但引擎中的编辑器是有特殊目的的,使用者要按照引擎指定要求编辑3D数据,这样引擎高效的显示和处理数据比较容易,至于3D数据是怎么组织的,是一个设计上的问题,由你引擎来决定,设计好坏,决定你引擎加载数据是否容易,关系到最后渲染。所以一般好的游戏引擎都有自己GUI,但你也可以用3DMAX这样的软件,然后读3DMAX文件变成自己可以利用的数据形式。   说到这里,不知道上面的概念大家是否理解,我想如果你没接触过引擎,可能真的不理解。其实我很难用简短的语言把这么复杂的问题说清楚,如果有一天你把3D学的融会贯通,你发现我说的是对的。我不知道大家是否发现一个共性的问题,有时你读一本书,无论你怎么认真把它看完一遍,你都很难掌握里面的知识,当你再认真看第二遍的时候,你突然觉得这本书没有第一次看那么晦涩难懂。有些知识都是前后呼应的,它们之间相互联系,要想完整的理解它们缺一不可。游戏编程的知识也是这样。我前面介绍的如果你看懂了,那你perfect,如果你没有看懂,也不要灰心,这里介绍的只是一个大纲,让你对游戏编程有一个了解,最基础层面的了解。
位于中国IT高科技产业中心--北京中关村动漫产业园区,紧邻中国人民大学、清华大学、北京大学,科技氛围强烈,学习气氛浓厚,并且交通便利。汇众教育自2004年成立以来,连年获得十佳CG培训机构、大学生最喜欢IT教育品牌、十佳品牌IT培训机构荣誉。中关村游戏学院本着以培养游戏开发与设计的游戏制作精英为目标,<FONT style="COLOR: #ff年获得“全国最佳十佳校区”,2009年获得“全国A级校区”称号。   凭借中关村动漫产业园区优越的地理位置,中关村游戏学院与多家游戏动漫企业组建了项目工作室并达成长期合作协议,为企业提供商业作品的同时,也给学员提供了项目锻炼的机会,及时有效的保证了学员的就业。
找工作,想高薪就业,就到汇众教育中关村游戏学院!
学院名称: 学院地址: 交通路线:地铁10号线苏州街站B出口旁(交通十分便利) 咨询热线:010-节假日正常开通 学院网站:在线报名网址:
【点击咨询】 ↓↓↓
推荐阅读Recommended Reading
开班信息Class Information
就业指导Employment
学校详细地址:北京市海淀区中关村大街18号中关村互联网教育创新中心17层
全国服务咨询热线
京ICP备号北京汇众益智科技有限公司 地址:北京市昌平区温都水城宏福大厦10层 电话:010-iPhone游戏引擎编写之项目事后分析&4&
使用本系列文章所描写的iPhone游戏引擎开发的首款游戏是《Monster Bowling》,它已经在圣诞前发布于App Store。(点击此处阅读文章第一、二、三部分)
Monster Bowling(from altdevblogaday)
你可能会好奇为何成品游戏与早前呈现的游戏截图(游戏邦注:即玩家需要控制着一艘船去探索世界的冒险游戏)不一样。因为之前参与该项目的人员失去了最初的创作激情,并退出了项目开发。但我不希望自己投入努力而创造出的引擎白白浪费(即未能基于该引擎创造游戏),我便与另外一名美术人员合作并最终创造出《Monster Bowling》。我花费了9个月的时间编写引擎和工具,并且在后来6个月中利用空闲时间里编写游戏代码,现在看来我真的为这款游戏投入了非常多的时间。
以下我将总结我们在这两个项目中所犯的错误:
首先,船舶游戏项目的失败原因在于游戏规模过大。尽管我们在制作过程中已经删减了一些内容,但是仍然有太多需要费心的内容,并因此抹灭了团队成员的激情。所以我建议那些利用业余时间制作游戏的人,特别是与别人首次合作之时,千万不要轻易尝试制作大型游戏。如果团队中有任何成员失去了创作激情,那么不论你付出了多少努力,都不可能完成游戏创作。
Monster Bowling (from altdevblogaday)
其次,船舶游戏失败的另外一个原因是开发团队缺少清晰的方向,未能明确游戏的发展,时间安排以及检查列表。如果缺少明确的目标,团队成员便很容易迷失方向,并失去激情。
第三点是关于《Monster Bowling》的发行;游戏刚发行时销量并不是很好。因为我们的开发团队中只有1名美术人员和1名程序员,我们将全部的精力都投入游戏开发但而忽略了市场营销,以及宣传游戏的时机。所以游戏在刚刚发行时并未出现任何能够提高销量的评论。
第四,引擎中的技术性问题。在引擎中,游戏执行时间和编辑器会使用相同的文件格式,即二进制格式。但是这导致我们很难合并文件,就像如果2个人都修改了游戏关卡中的物体,我们便很难整合这个过程中产生的变化。幸运的是,我们的团队规模不大,并且我们只需避免同时编辑相同文件就行,这就不会影响项目的整体发展。
谈论了错误之处后,我想也应该分享一些我们所做出的正确决定。
首先,在制作《Monster Bowling》期间,我们的团队内部总是进行各种交流。每隔1周或2周的时间我们便会讨论关于游戏的进程。这点对于那些利用休闲时间制作游戏的人来说尤为重要,因为通过讨论游戏,我们能够保持激情,并让团队成员掌握游戏项目的发展过程。
其次,制作编辑器以及Mac版本的游戏决定都很重要。因为这么做让美术人员能够脱离程序员而独立创造并测试游戏关卡。尽管编辑器并非用户友好型工具,美术人员仍建议添加一些自己能够承受的最低功能集(如在3D视口中添加变焦功能以拉近物体)而提高工作效率。明确地说,那些缺失的功能能够帮助程序员真正改善自己的工具。
游戏所使用的关卡编辑器(from altdevblogaday)
第三,在游戏中植入脚本语言非常有帮助。比起使用C++,在Lua中编写游戏玩法代码更加有效。并且,修改脚本文件也比编辑C++代码快得多,因为它的迭代速度更为迅速。除此之外,脚本语言能够明确区分引擎代码和游戏玩法代码。多亏了Lua,我们在从船舶游戏到《Monster Bowling》的转变中并不需要过多修改引擎代码。
使用Lua创建的《Monster Bowling》测试关卡(from altdevblogaday)
第四,我们坚持从头开始编写引擎,包括内存管理,渲染代码,动画等。我一直在使用的一些开放源码库包括:Bullet physics library,Lua以及SOIL(用于解压PNG纹理)。我之所以会坚持使用这些源码库是因为我希望借此学习如何创建一个能够与不同模块相互作用的引擎。并且,我也不擅长物理和脚本语言,所以如果要自己编写物理库和脚本语言将会花费更多时间,并且最终创造出来的代码可能也没有Bullet或Lua那般有效。所以我便选择了具有源代码的开放源码库,从而帮助我更轻松地进行调试。
这次的iPhone游戏引擎项目共花费了我们1年又3个月的时间,并且我们也最终创造了一款完整的游戏。尽管我们只有一名程序员,但是我们合理利用了开源码库,并且我也割舍了最喜欢的图像编程以减少我们的工作负荷。我认为编写了引擎但却不制作游戏实在太荒唐了,所以我便决定使用该引擎创造出《Monster Bowling》。不过从船舶游戏的转变的确浪费了我们之前所付出的一些努力(如游戏世界关卡流动传输)。所以对于那些只是单纯地想创造一款游戏的人来说,他们可以授权使用一些现有的商业引擎,如Unity或UDK,而不是自己花大量的时间编写引擎。但是对于我本人来说,编写引擎能够让我学习到更多知识并感受到更多乐趣。
游戏邦注:原文发表于日,所涉事件及数据以当时为准。
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.059 (s). 10 q(s)想说爱你不容易:独立游戏开发的背后_爱玩网
不拘一格的游戏文化专栏。在这里尽情分享你的观点、文采、还有情怀。欢迎专栏作家入驻。
想说爱你不容易:独立游戏开发的背后
2012年纪录片《独立游戏大电影》的海报已经说明了一切,外表光鲜、充满梦想的独立游戏开发的背后,渗透着如履薄冰的现实。
&活动投稿,作者 豪猪,未经授权请勿转载 最近在STEAM上发生了件有意思的事情,有一款国人制作的独立小游戏《商人传说》上架之后遭遇玩家差评,作为游戏开发者开始在游戏下面的差评里逐条回复,怒怼那些差评的用户,内容大意是“自己是女性,是带着梦想来制作国产游戏为何得不到支持,为什么多数中国玩家认为国外月亮就比较圆”之类。当然,游戏好不好玩,笔者不好进行主观的判断。STEAM的国区是不是喷子横行,是不是对国产游戏抱有偏见,这里也不去讨论。事实上,我本不打算对这位女性独立游戏开发者做什么评价,只不过游戏开发者谈及开发国产游戏初衷的一些话勾起了我的兴趣。“制作游戏,有梦想就够了吗?如果不够,还需要什么呢?” 令《商人传说》成为话题的不是游戏本身,而是制作者在Steam与差评玩家的对喷大戏:
名为CrazyPrince的开发者非常较真,认真硬刚每一条差评在正式谈到这个话题前,笔者想分享一个自己的故事。在2000年的时候,那时候我沉迷于《星际争霸》之中,某一天在网吧,我无意中接触到了一个基于星际的RPG塔防地图,让我欲罢不能,同时也对笔者打开了一扇通往新世界的大门——原来星际的地图编辑器可以这么牛B。自然而然,笔者就尝试着制作类似的地图。可以想象,对笔者这种完全没有游戏制作基础的新人,不要说搞清楚地图编辑器各种触发器这种技术含量较高的内容了,连搞清楚编辑器英文功能界面都力有未逮。对那时候的我而言,这一个“小小”的挫折当然无法磨灭自己制作一款有趣地图的热情。不懂英文?没关系,一个个功能的试总行了吧。然而,在几乎投进一个月的业余时间研究之后,笔者还是沮丧的发现,不要说重现那张“简单”的RPG塔防地图了,连如何触发怪物刷新的事件,如何更改单位的造价,如何调整单位的可建造列表这些简单功能,笔者都不知如何实现。说实在话,对那时的我而言,一个月没有任何回报的投入也差不多是自己热情的极限了。可就这么放弃,又心有不甘。冥思苦想之下,笔者突然灵光一闪——到网吧去把地图拷回家研究一下不就行了?为此,笔者还百般哀求网吧老板接上软驱让我拷贝……事实证明,即便有一模一样的地图原型摆在我面前也没用,我还是搞不懂诸多触发器如何运作,哪怕让我原样重现都不行。 即使是个小品游戏,开发也并不像想象那么轻松,要面对的困难和坎坷难以预计你愿意付出多少学习成本?之所以谈到这个故事,其实只想说明一件事:制作游戏,需要的学习成本远比你想象的要多。不管你脑袋里有多么优秀的创意,如果不知道该怎么实现,那这一切都没意义。所以,对每一位有志于推动国产游戏制作水平的热血新人而言,学习制作游戏的第一道门槛就是编程。不管你此前的专业是什么,只要想制作游戏就必须懂编程。当然,你可以使用诸如Unity3D、虚幻之类已经是成品的通用游戏引擎。但是这也只能稍微减少自己的学习时间,毕竟这些游戏引擎依然是基于诸如C++这样的语言制作而成,只不过把某些功能模块直接以更直观便捷的方式提供给开发者使用。所以,懂得基本的编程语言不仅可以更好的使用这些通用引擎,还可以节省更换通用引擎时的学习时间。 《Flappy Bird》的一炮而红令不少人产生“我也能做游戏”的错觉吧?一般来讲,要掌握靠谱的编程技术,没两三年系统专业的培训是不行的,那种几个月的速成班最多只能算带你入门,后面该学的东西一个没少。第二道门槛是游戏制作流程,如果你想要自行开发游戏,那至少要对游戏开发的成本,流程,周期和可能遇到的困难有一个相对准确估计。这可不是自己闷头单干或者脑补就能了解的,很多游戏开发项目的失败,其中一个重要的原因就是错估了游戏开发需要的时间,导致开发周期大大延长,资金无以为继。曾经的北方巨头之一的比尔罗伯在离职后,拉着北暴的三位创始人另起炉灶开发了《:伦敦》。游戏的创意相当不错,然而,错估游戏开发难度导致进度一拖再拖,许多创意设想都迟迟无法实现。此时,工作室的资金早已捉襟见肘。无奈之下,游戏只能匆忙启动测试,试图通过出售代理权换取开发资金。遗憾的是,《地狱之门》还是续命失败,游戏内到处是赶工的重复场景不说,游戏试图融合动作、射击、角色扮演的壮志未酬才是最遗憾的。这款错估开发难度和时间的游戏带给业内的唯一价值,恐怕就是给后来者提供反面教材——而后被众多玩家奉为经典的《无主之地》就成功规避了这些雷区,也算是完成了《地狱之门:伦敦》未完的事业。 《地狱之门》的各种情报表明它似乎是很有暴雪大作味道的游戏,可是…所以,有志于游戏开发的人往往都要到正规游戏开发企业去磨练很长的时间。这个过程无非两条主要的路可走:一条是直接进大公司,从初级程序员做起,一步步的接触到游戏开发的方方面面,努力扩展自己的知识面,然后再接触包括策划,运营,美术等岗位,期间你也许会经历多个项目,但总体而言升迁转岗的速度是偏慢的,好处是可以接触到正规的游戏开发流程——包括风险控制,开发周期估算,开发团队组建,跨部门协调等等。另一条路则是从小作坊小团队开始,这些地方由于工资低,对人才的要求相对偏低,人员跳槽比较频繁,可以相对轻易的获得三五个游戏项目的履历。而且开发团队小,难免需要身兼多职,对自己的成长帮助很大。等到有一定数量的项目经验,就可以一步步跳槽到小型、中型乃至大型游戏开发企业里。这么做的好处是可以迅速接触到游戏开发的方方面面,对自己整体素质的提高相对更大。当然,如果你对编程一无所知或者半路出家,那只能从开发团队中更低级的岗位做起,比如客服、文案之类……无论从哪个岗位起步,你终归要接触到策划、程序、美术这三个关键岗位。其中,最重要的是策划和程序这两个岗位——毕竟美术这个岗位需要的艺术细胞,绘画技巧,再考虑各种3D建模的绘图工具,一年半载的还真学不到什么东西(所以,游戏开发团队美术外包很普遍)。这个过程根据人的天分与努力程度长短不一,但无论如何五年以上的开发经验是少不了的,你准备好了吗? 从规则,玩法,设计,美工,编程……这些知识和资源缺一不可坚韧的神经必不可少?有读者会问,我们泱泱天朝上国,十几亿人里面就没有两三年就能学成出师的天才设计师吗?有,而且还不少。比如,手游《》的开发者谢创。此君大学毕业之后在百度不过工作三个月便辞职开发游戏,《奇怪的大冒险》画面并不算精美,画面是黑白色的线稿,游戏创意也说不上特别优秀(玩法基于《Trollface Quest》与《猫里奥》结合体)。就是这样一款耗时半年开发的游戏,在颠峰时期可以为他带来上万元的月收入。看上去开发游戏也不是那么难吧? 你会说,这种简笔画风的游戏有啥技术含量?还真有但你不知道的是,早在小学时期,谢创就已经接触到电脑,在大二时,他已经加入了华中科技大学创新团队“Dian团队”的国际项目合作组,独立完成了多个海外软件外包项目;在大三的时候他转入信息专业教育的“种子班”,按谢创的说法,在大学最后两年,他必须兼顾“种子班”的课程与Dian团队的项目,每天都要忙到凌晨。整个大学期间,同宿舍的舍友几乎见不到谢创的人影,彼此交往也很少。有这样如疯魔般的学习经历打底,才有谢创后来的“成功”。游戏的核心程序耗时不过一个月,但在关卡设计上,谢创足足用了五个月的时间,才设计出三章十八个关卡。在后续关卡设计上,谢创耗费半年时间才更新到第六章,此时的他已才思枯竭、精疲力尽,不得不终止了《奇怪的大冒险》的后续开发。在开发过程中还有一个小插曲,谢创因为侵权问题(游戏最早叫暴走大冒险),被迫更换了游戏所有美术资源——为了自行绘制风格类似的替代品,谢创的每日任务又多了一项:长达5小时的自学画画。但这样的成功也就止步于此了,此后谢创的几款游戏反响平平。虽然来自《奇怪的大冒险》的收入足以支持他两三年衣食无忧,但资金终归是有限的,在花光所有钱之前,他能开发出新的游戏吗?更何况,和科班出生的资深游戏开发者相比,谢创的不足还有很多,所以他必须坚持每天看书、玩游戏、学画画、学乐器(尽管他乐在其中),这些知识的积累还真没办法一蹴而就。 大多数独立游戏开发者怀揣梦想,直面惨淡的现实说到这里,相信诸位读者多少会理解文章开头那位女性开发者的行为了。她的《商人传说》固然有场景单一,玩法单调,随机性过强等诸多问题,甚至还有另一款小游戏《北京浮生记》的影子。但游戏无论画面,玩法改进(尽管可能改的不好),音效等内容却是开发者实实在在耗费自己心血做出来的。在一些玩家看来,这款游戏当然说不上有多好玩,对游戏谈一点批评意见(甚至嘲讽)也是人之常情。但对游戏制作者而言,这只是一款不过7元的定价,几百销量(目前游戏评论仅300余条)的游戏,区区几千块的收入不要说体现自己的劳动价值,连出去工作赚的钱都不止这么多(作者同济大学毕业)。这算是为中国游戏行业贡献自己的一份力量了吧?这种牺牲为什么不被理解就算了,还要批评?当然,双方看问题的立场不同,这里也不多评价,但从一个侧面我们也可以了解到游戏开发的繁琐与枯燥,尤其是对独自制作游戏的开发者而言,一个最现实的问题就摆在面前:假如一个项目需要3个人,耗时1年完成,那么这么多工作交由一个人来做,需要耗时多久?至少3年吧,为独立游戏开发者,你有多少经验和底气保证3年后你的游戏会不会过时? 如知名独立游戏开发人乔纳森·布洛,在那部惊艳世人的作品《时空幻境》中,也不是大包大揽独自开发——其中美术和音乐部分花费了20万美元外包制作,即便如此,他还是开发了4年的时间。在他的新作《见证者》的开发中,改用3D引擎的开发难度更是进一步提升,开发周期更是长达七年之久,在花光了从《时空幻境》上赚到的每一分钱之后,作品才堪堪面世。用乔纳森的话来说,在《见证者》的开发中,他不断地推翻曾经的构想,不断地加入全新的东西,在这个过程中还要反复地反问自己这些都足够好了么?如果答案是否定的,那么对不起,上面的过程再来一遍。即便付出如此艰辛的努力,《见证者》依然没能得到多数玩家的肯定,游戏口碑一落千丈。只不过乔纳森是幸运的,至少《见证者》还不至于影响他开发下一部作品的进度。对更多独立游戏的开发者而言,他们就没这个运气了,许多游戏作品甚至未能面世,就因为种种原因夭折。 美如画的《见证者》,但欣赏它的人并不很多游戏开发缺的不是激情,而是自律当兴趣爱好变成一项工作时,带给你的就不再是快乐,而是一种痛苦。对游戏开发者来说,这一点尤为明显。也许有玩家会问:游戏开发者每天玩游戏找灵感,或者“调教”自己开发的游戏有什么不的?首先明确一个概念,为打发时间(放松、找乐子)而玩游戏与“以开发(山寨)游戏为目的”来玩游戏的体验是截然不同的。像国外那些大企业——比如暴雪、SUPERCELL这样主动在公司里面放各种游戏娱乐设施,允许员工在工作时间里游戏的企业毕竟是少数(更何况人家放松也不是无限制的)。国内很多游戏开发企业上班时间一般不允许玩与正在研发的项目无关的游戏,即便是允许,那也一定是抱有强烈的目的性,比如研究同类产品的各种系统设定,至于研究来干嘛,你懂得。在这种情况下,你要提交给项目主管的绝不是“哇靠,这个游戏的剧情实在太感人了”,而是“这款游戏共有X大项系统,X项子系统,每一项实现方式如下……” 当然,对独立游戏开发者而言,自己的时间会更自由一点,既没有“上班时间不准玩无关游戏”的规定,也没人逼你带有强烈目的性的反复玩某些游戏(然后山寨)。但独立游戏制作者面临的压力同样不小——在企业里你给老板打工,旱涝保收,无非是多寡而已。而自己研发游戏,那就是拿自己的未来做赌注,花的是自己的钱(多数),这时候你沉迷其他游戏耽误了开发进度,钱花光了怎么办?在研发过程中,突然没有灵感了怎么办?有一天自己厌倦了这种看上去没有尽头的日子时,怎么办?讲点诛心的话,独立游戏制作人的身后没有管理者催促,也没有打卡上班的硬性要求。甚至,自己筹集到的研发资金(假如他能拉到投资的话)都没有监管和使用的要求,就算卷款潜逃似乎也大可以拿游戏研发失败的幌子含糊而过。对意志不坚定的人来说,还真是不小的考验。即便他能专注于游戏的开发,同样面临着许多意料之外的问题。比如,游戏在开发阶段必然是BUG横行,无论是程序闪退死机,贴图错误,人物对白或者场景错位,事件脚本或者关卡的修改等等。这些问题在大研发团队有专门的测试人员(QA)收集反馈,而对独立游戏制作人,他们只能靠自己。 面对一个满是BUG的游戏反复玩上几百上千遍,你的脑子就会变得烦躁且麻木,更可怕的是,你很难再从客观的角度判断游戏好玩与否,因为再好玩的玩法,在玩过千遍之后也变得无聊透顶。此时作为游戏开发者,你根本无从判断游戏到底是因为自己玩腻了才不好玩,还是它的玩法本身就没有吸引力。一边是一眼看不到头的枯燥工作和飘渺的希望,一边是轻轻一个念头就可以解脱的放松…没有相当自律,还真做不了独立游戏制作人。 请注意,上文提到的独立游戏制作人特指的是“单枪匹马”的制作者,随着游戏画面、玩法的持续,玩家对游戏的要求也愈发苛刻。以往那种靠一个人单打独斗创造经典的开发模式也越来越难以实现,只要游戏尝试使用更好的画质(哪怕是2D),研发时间就会大幅度增加。就算开发像素风这样以可玩性取胜的游戏类型,开发者一样要花费更多的时间打磨游戏的玩法(这样才能脱颖而出)——这同样增加了开发周期。在这种情况下,独立游戏制作就必须从“人”朝着“团队”进化。这种组织化的开发方式分工当然更明确,效率更高,而且更容易获得投资(一个人和一个团队给人的感官是不一样的)。随之而来的是失去了个人开发时的那种自由,因为你不仅要对项目负责,还要对合作伙伴负责。同时,你对游戏种种设想往往会受制于外部压力而放弃,这也是导致许多游戏开发小团队频繁解散重组的原因之一。不管怎么说,独立游戏制作都是一个看上去光鲜,实际成功几率极低的活。这些制作者的处境正像那句老话所说:你有狼牙棒,我有天灵盖。所以,对这些明知送死还不回头的壮士,还是宽容一点吧。 欢迎关注爱玩APP【精选】板块,更多精彩等着你!
你可能感兴趣:
48小时评论排行
一头爱玩游戏的猪
用微信扫描二维码分享至好友和朋友圈
执行主编:王欣_NG1662
用微信扫描二维码分享至好友和朋友圈

我要回帖

更多关于 不需要编程的游戏引擎 的文章

 

随机推荐