学习u3d两周总结

到今天为止,接触Unity3D算是两周了。
虽然很早以前就听说U3D是多么的强大与上手的简单,但我总是在有意识地逃避这个东西,因为我想要用现有的资源与代码框架做个RPG,不要分心去接触其他的东西。
但在RPG开发中遇到了各种的问题,因为所有的东西我都想要亲自去实现,亲自去控制,但开发到现在遇到的问题虽然看起来似乎都解决了,但我心里知道这只是自己不想去面对而已,而且肯定在以后的整合中还会出现各种各样的问题,甚至是推倒重来的问题,其中一个非常主要的原因就是想要实现的功能太多,而在前期规划的时候有没有很仔细的去定义,以至于在开发过程中不断地有想法冒出来,而又确实地想要将这个想法添加到代码中去,以至于各种的问题就接踵而来。
我曾经在中学的时候就在新浪搞了个博客,博客的名称叫“压燚”,意思是要压住自己的欲望的火焰,慢慢积累,厚积薄发。但实际也就是个意思而已,自己并没有做到什么,而好像做到的什么其实是自己根本没有什么,其实就是自己根本就没有什么拿得出手的东西,却还在告诉自己说不要拿出来。

对于RPG制作过程中的艰辛与痛苦,导致我对该游戏是否能够完成抱有的希望其实…虽然我一直在告诉自己“我一定要将它做出来”,而且我也确定我是有这个决心的,但就像是溢出的泪水模糊了视线,只能隐约感觉到前方的目标,但却看不清目标;只能确信自己迈出了一步,却不知道走的是什么路。

我其实常常是自以为是的,因为这种 自以为是 是通过 自以为是的思考 之后得出来的,所以更让我这种 自以为是 变得更 自以为是。这种 自以为是的思考 的土壤,就是我的性格。
我应该是内向的人,并没有什么话说,而且我也并不认为这是什么缺点,但在遇到的各种人里面总是在或多或少对我表达这种性格的偏见。其实我并不在乎,更也不会为了他们的偏见而改变这个天赋,不说话的时候我会进行自己的 自以为是的思考。
“思考”是比较文艺的词,事实是瞎想、胡想、猜想、乱想。
比如我会想象与刚才路过的一个面目可憎的人打了一架,结局当然是我会很华丽的胜利;或是看到了一个小新闻,然后想象自己是里面的主人公;或是看到一段采访,然后想象那个人是我之类之类的。。。
虽然总是想这些无聊的事情,但愚者千虑还有一得,总会有灵光一闪,感觉不错的想法,就想将这种想法记录下来。所以认识我的人都知道,我的屁股后面一定会有一本本子的,就是用来记录这种灵光一闪。
我不知道那种说“你感兴趣的东西自然就会用脑袋记住,不需要用笔记”的人到底是怎么得出的结论,但对我是深受其害的。我曾经想过接受这个结论,但实际在我有了灵光一闪之后我会开始下一个的想象,而这个时候那个灵光已经被忘记了。如果完全忘记还好,该吃饭吃饭,该睡觉睡觉,然后一有机会就说“能记住自然就记住不需要用笔记”的经验;但痛苦的是没忘干净,总感觉刚才有个很有趣的想法,但就是想不起来那是什么,纠结过几次之后我就完全放弃这种“经验”了,对我是不适用的。

自以为是的记录记得多了,就会总结一下发个文章之类的,但更希望的是想能够实现一下验证一下这个想法是否可靠。所以这也是我当时决定做RPG的一个重要原因,将自己的想法付诸实现,证明自己的“思考”不仅仅是“自以为是”。

但这个RPG想象的太大了,其中的内容太复杂了,尤其是对于我这样一个几乎没有完整制作RPG经验的人来说,只凭自己的对游戏完成度100%的想象的激励,也还是非常痛苦的过程。
“天下大事必作于细,难事必作于易”,“不积跬步无以至千里,不积小流无以成江海”。各种的前人经验就放在那里:从小的简单的做起。

最常听到的就是u3d的快速开发,所以就想抹抹眼泪让自己看的清楚一点,接触一下U3D,如果确实上手简单可以进行一些快速开发的话,那就通过U3D来验证自己的想法吧!
决定之后就开始搜集大量关于U3D的资料,然后晚上回家看视频教程,然后下了U3D然后各种熟悉各种学习,总算知道怎么个操作了。然后就想最好能做个小东西,这样对U3D能更好的熟悉,然后看了个关于用u3d做2d游戏的,但教程太简单,好多概念都不懂,所以从国内网站找到个从零开始做游戏的教程,是教做类似弹球的小游戏,然后跟着做了几章,突然感觉他教的没意思,想要自己去实现一个弹球。。。然后匆忙将剩下的教程看完,就迫不及待的做了一个。
这个其实就是抱着实验各种u3d的功能,抓住u3d的尿性来进行的,包括尝试使用插件,用VS编写脚本等等。感觉差不多了,就另起炉灶,稍微认真点地开发一个弹球游戏,包括了前期的头脑风暴,文档设计,数据结构、配置等等,虽然现在看来其实有些粗略,但在实际开发过程中确实是一个方向性的指导,不至于又突然冒出什么想法然后即时的加进去而又改变了实际的初衷。。

image[4]

这是第一个尝试性的弹球,非常简单,就是搭个桌面,摆放些砖块,一个平板,一个弹球,各种物理效果是现成的,很快就实现了。现在这个工程已经成为试验场,各种插件或功能都会在这个工程里试验一下,待确定了解功能之后再应用到其他工程中去。

目前新一版的弹球Demo也已经算是实现了吧,功能最后与文档描述的基本差不多。其实在开发过程中我又有点像重新开个工程的,因为总感觉好乱啊,其实是脑子乱,不是资源功能乱,然后就让自己冷静下来,估计又是想法太多了,其实现在这个Demo与文档中描述的功能还有相当大的差距,而且还有好多系统没有实现。开始跟自己说只实现其中的一个功能,其他不管了。好吧,现在这个Demo与我当时设想的“只实现一个功能”还多了不少功能能,哈哈哈,而且对于U3D的尿性也有一些把握了,我相信在之后的开发中关于U3D操作方面应该是难度不是很大了,毕竟还有GOOGLE在那。。顺便吐槽下百度,我靠,太弱了。

image[8]
这是目前Demo版本的截图,基本的UI与主要弹球的玩法已经基本实现,剩下还有大量关于技能与砖块、掉落物等等等等好多的东西,我很期待。。

接下来写下做的这个东西想到的东西。
首先,是切实的感觉到了数值的影响力。其实我也知道数值是游戏很重要的一部分,但总是听到外界对于数值到了崇拜的地步,所以总是自以为是地不以为然,虽然这次对于亲自做出的游戏中数值的影响力感到兴奋与惊讶,但也还是没有将数值放到神坛上。而且今天看到一篇文章《游戏的发动机——数值设计》,更是用“游戏发动机”来神话数值。其实在现在的我看来,还是那个观点,数值是可以控制的,所以对于开发者这边来说,为了能在道具收费的游戏中获取做大利益,就会对数值进行各种玩弄,从而将数值设计提高到现在这个位置。

在我的世界观里,这属于本末倒置。游戏的核心是体验、感觉,其中所有的设计都应该围绕这个体验来进行。而玩家能够感受到这种体验与感觉的前提是沉浸,沉浸需要的是引导,而现在,数值已经被我感觉到了它的引导力:
拿这个弹球Demo来说,其中有三个技能,鼠标左键技能,右键技能,以及空格键技能。
左键技能是平板发射子弹,每颗子弹消耗X红色材料;
右键技能是时间回退,每次使用消耗Y蓝色材料;
空格键技能是弹球技能,当弹球撞击到砖块时会集聚能量,当能量充满时可以使用。
红色与蓝色材料会在砖块摧毁时有Z几率掉落。
要想让玩家有射击的乐趣(当然现在是没什么乐趣的。。。),那就降低红色材料的消耗X,并提高Z几率,则玩家会主动的进行频繁的射击;
而实际上我只是想让玩家偶尔使用射击,时间回退也只是偶尔才能使用的救命技能,最多的是想让玩家控制弹球的方向从而有效率的使用弹球技能,所以提高了X与Y,并在砖块摧毁时有几率掉落能增加弹球能量的材料,这样玩家在过程中就会节省使用左右键技能,而会多考虑使用弹球技能。
虽然这件事看上去很简单,但在我来说是比较兴奋的一件事,这是一件非常有力的武器。
但我相信数值的功用不止这些,我会在以后的开发中多做实践与探索。

其次,是资源规划。虽然写了设计文档,但并没有对使用到的资源做一个规划。。。实在是失败,但即使要做规划,其实也不知道需要什么。。。关键还是文档写的太潦草。
在实际开发过程中,总是抱着“实验”的心态,所以对于其中的特效、图片等等资源都是随手放到一个文件夹里面。要说管理,那只是简单的建立了几个文件夹,但掩盖不了其中混乱的事实,尤其是对于精灵动画的管理。
还有就是资源的命名,使用英文单词,虽然能看出是什么意思,但却看不出来它是用在哪里,是个Skill?还是个UI?等等,看着比较混乱,在之后的开发中要逐渐纠正过来,当然首先要设计一份命名规定。

第三,就是用U3D设计对象的设计思想了。程序有什么面向过程,面向对象,还有面向组件。我不太了解什么是面向组件,但U3D中确实有Component的概念,而且场景中的一个对象并不是你创建了什么它就是什么,而是它有什么样的组件它才是什么。这是非常强大与灵活的设计方法,刚开始时我还是有些不太适应,但在制作Demo后期,才渐渐适应了这种设计方法,但也只是稍微抓住了它的尿性而已,剩下的应该是看下NGUI或其他插件的Script的设计,相信会有更深刻的理解的。
暂时先写这些吧,接下来的工作便是重新整理下设计文档,对于制作Demo的经验,相信下一份文档应该会更详细充实,更能指出明确目标来。还是希望自己能压抑住自己,不要在设计文档没写好的时候太兴奋忍不住去制作了。。

U3D的功能给我的感觉的确是太强大了,对于之前关于RPG说的“不会放弃”这是真的。

发表评论

邮箱地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *