封闭真的彻底结束了,想起来不知不觉就会有好心情( 你看这折磨的 ). 把生活和工作几乎耦合,说实话其实也带来不了多少效率. 来做游戏有这么一段时间了,最开始的天书,这算是比较成功的一款webgame了.可惜对项目本身涉足不深. 帝国才是一直都有在开发的游戏,航海是被中途借调过去的. 经历了这些个项目, 有些想法,说不上什么心得,就是记录,总结一下.
首先,态度和心态很重要. 我说的不是什么盈利,不是什么推广,不是什么一定要得到多大的收入.仅仅是对于开发人员. 最初我觉得,做游戏赚钱不赚钱基本上和技术无关,有没人来玩,游戏吸引不吸引人都是策划他们的事情.哈哈诚然,技术人员大多数时候都是拿到需求,讨论需求,然后设计,最终进入开发阶段. "我只要完成功能就好好了,其他爱谁管谁管"大体就是这样吧. 我们可以换个角度思考这个问题. 作为一个技术人员, 我们实际上是提供了一个平台. 由于这个平台,策划们的idea和美术的创意才能结合到一起,才能正常,顺利的运行并且展现给玩家. 虽然工作性质没有改变,但至少这是一个积极的心态,能使眼界更宽,考虑问题更加周全.
接着是信息构建和层级. 一个游戏的主界面的空间是有限的. 不可能把所有的东西都放在主界面上. 这样无非就是让页面显得混乱,拥挤,让玩家迷惑,不知从何下手.在功能区(类似网站的导航条),应当保证功能的独立性,就帝国而言,以前功能区有个label叫做"工具"的按钮(图已经找不到了) , 它又和 联盟 , 英雄 , 军队这样的按钮放在一起.我第一次看到的时候就想,这玩意到底是干什么的.结果点开了之后弹出一框, 里面又是一排按钮,进入其他功能区,这就相当让人费解了.
说信息构建就不得不说到层级,如果客户端使用的是flash,我个人觉得这个层级比较容易控制.能把信息分类,合理的控制在某一层里.比如弹出,窗口,面板或是场景切换,优秀的兼容性也是现在大多数webgame采用flash的重要原因之一. 无论是在天书还好是航海,层级都是最先要设计的.把信息都分开来,放在不同的层级里,开发or管理都是方便的. 特别是有战斗切换的,这个尤其重要. 相对传统网页客户端,我觉得控制起来要困难一些. 那时候经验不足. 没有做信息分类,限制层级也显得力不从心. 在帝国这个项目里出现过茫茫然多的 二级窗口把弹出窗口覆盖的情况 . 一个窗口出现了, 技术策划都不清楚这个到底应该是在哪个区域,大家你看看我,我看看你..哎.
再就是组件,框架这样的东西. 对于帝国来说选用的是jquery这个框架. 说来惭愧,当时对javascript不甚了解.糊里糊涂就用这个了,也没来得及比较. 回过头来看, 选用成熟的框架是可行之举. 可以大大提高开发效率, 风险在于如果出现框架之内的问题就难以入手,修改费劲. 其实碰到这样的问题的机率比较小,一般问题都有多个方法来解决.绕绕也就过去了. 自己开发呢,当然可控性是最高的,没事自己改着玩的都可以,额外的工作量自然也就是它的不足了. 毕竟现在javascript框架多得跟什么似的,有句广告语不是说 "总有一款是适合你的" . actionscript就没什么悬念了,这里框架的meaning和前面的不大相同,这个主要功能是提供合理的OO结构,将代码模块化,解耦化,使应用能够更好的维护和扩展. 虽然官方的,民间的优秀框架不少,但大多数还是选择自己实现为自己游戏定制开发.大体思想对的就好,正乃, 思想在我心中,万变不离其宗(前些日子说是又有什么依赖注入的框架..还没来得及看..人生啊.)
组件嘛,传统网页客户端大多数还是使用DOM,偶尔也有像YUI那样,完全自己实现的一套UI.在游戏里面用的UI并不多,75%几乎都是按钮. 帝国里面按钮全部都是用<a>来定义的(其实我很奇怪为什么要这样), 实在是有需要的就如Tree这样的组件, 但凡是框架都会有各种各样的选择,这个自己写,还是用别人的都是可行的.如果对组件不是很熟悉,其实工作量感觉差不了多少. flash对于组件的要求就要高很多了.自带的组件一般都是不能忍的.除非你用的是flex framework. Aswing是个不错的选择,组件丰富齐全,能够极大的节省开发时间.但是需要一些学习成本, 不是每一个人都用过Aswing并且很熟悉的. 自己写也不错,实际上,天书和航海都是自己写, 可控性只是一方面,甚至我觉得是很小的一方面,在游戏里自己写组件最大的好处在于精简. 前面也说了,游戏里面用到的组件其实并没有多少.有的组件等游戏倒闭了都没出场机会,一辈子做板凳. 这里还是要说一句迷惑大家却又是正确的话: 用什么不用什么,自己写还是使用开源的,都取决于项目本身,根据实际情况而定.
最后嘛说个标准和体验. 标准就只针对帝国了. 有时候真的很不想打开那些个恶心的,看了让人头昏眼花的代码. 都不用验证我就能知道红的肯定是一大片. 上次忘记是谁说的要到手机上试试. 当时心里就想, 你耍吧, 我还想让自己手机的寿命更长一些. 现在也不能追究但是页面为什么会写成这样,css为什么让我修改得这么痛心疾首. 在可能的情况下 能标准一点还是标准一点吧. 如果突然有一天说要支持无线平台,你也许会觉得手机这玩意真是该死,谁发明来着的.
体验就是我们常说常听到人们说的用户体验.这里我就不瞎叽歪什么可用性,自我解释这些东西了.我觉得一款游戏,特别是一款webgame, 流畅是体验的重中之重. 这不仅仅是你页面或是flash加载的速度, 你的代码效率有多高. 是让玩家能顺利的玩下去. 如果让玩家出现 "我现在应该干什么"这样的问题那就不好了.我们应该有个,是应该让玩家有个阶段性的目标,他们为了达到这样的目标才会在游戏里面投入时间投入精力. 任务是个非常好的idea. 就和wow一样,任务能让玩家完成短期的目标,然后到一个新的目标. 问题就在于如何把这个目标清晰的明确的传达给玩家.
好了,先到这里吧. 封闭回来还是没有缓过劲. 写着写着感觉还有遗漏,再补,再补.