程序: 良好的架构,游戏核心与逻辑分离 在Unity3D环境下开发游戏, 游戏核心自然是最影响效率的部分,一般来说战斗是最消耗CPU的,因为IOS平台不支持C#反射, 所以这部分代码只能通过unity官方提供的il2cpp编译成二进制执行,剩下的就是逻辑代码, 所谓逻辑代码是什么,比如商城,好友,公会,任务,剧情,背包等, 这些代码最明显的特征是不需要在Update或者Update很少,所以这部分代码可以用第三方的代码来编写, 这样的好处是可以实现代码的热更新。 客户端的资源管理也是一个非常重要的环节,首先unity3d只提供了一个最底层的资源加载及释放系统, 这就是说资源什么时候加载,什么时候释放,需要开发者自己手动完成, 而且assetbunbele如何实现版本管理及更新,也需要开发者自己完成, 这些都是开发前期需要做的, 服务器: 为了最高效率的开发, 服务采用类似Unity3d的架构, 就是说服务也采用C++做底层,C#开发逻辑的模式, 在实践中我发现,如果采用这样的架构,游戏开发时则不需要专门写服务器代码, 因为只要会用C#开发客户端,那么即使是从没有做过服务器开发的程序员也不需要学习成本,马上就能上手做服务开发, 比如一个聊天系统,可以把所有的代码都在客户端完成,再通过固定的方法,做很小的改动, 就可以把服务器要用到的部分分离出来,移植到服务端,这样做的好处是一个功能一个程序员完成,这样大减少了勾通时间成本, 同理数据库,登录服务器也采用这样的架构。 策划: 对于策划来说,最有效率的开发方式莫过于提供最方便易用的工具, 一般来说Excel表格是常用的工具,那么Excel填写完后再转为其他格式,就有点麻烦了, 所以需要采用Unity3d直接读Excel表格的方式,做ARPG最大的表格是技能配置表, 我现在做的动作技能配置可填选项有151个,可以实现任何动技能, 这种技能是动作技能而非像moba类的特效技能, 而是鬼泣,拳皇,街霸一样的一招一式的技能, 所以我做了一个简单易用的技能配置工具, 当然这些技能不光是策划的事,更需要美术来配合, 怪物AI 一个真正意义是的动作游戏,怪物AI也得很高才行,不然就算用了很华丽的连招, 打死一个很弱智的怪物,也不会有多少成就感, 怪物AI的核心很简单就,比如BOSS会见招拆招,防御闪避逃跑一个不能少,就是要跟玩家周旋到底, 举个例子 如果出玩家一个边腿去踢Boss, 一般的游戏处理方式肯定是能打到怪物的,不管有没有踢到怪物身上, 而我处理的方式是如果没有踢到怪物身上, 那么怪物不但不会被打到,而且还会因为你的失误, BOSS会马上做出反击,给你吃个连击, 美术: 程序策划对我来说是基本上是小儿科了, 美术是最让我头痛的了,首先是动作,我们都知道开发3D游戏最重要的一个美术工具就是3dmax, 而开发动作游戏最重要的就是动画,调一个好的动画是非常耗时的, 那如实现快速开发呢,方法就在于CS骨骼,我们都知道骨骼动画一般来说是不可以通用的, 就是说一套骨骼不能套用另一套骨骼的动作,所幸的是CS骨骼是可以通用的, 那么方法就有了,网上有大量的CS骨骼动画文件可以下载, 可以下载下来直接套用,而且有的骨骼动画是非常好的, 打击感很强烈的,比如网上就有很多街霸4,鬼泣等游戏的动画文件, 还有一个问题是一个动作不能光有CS骨骼,还需要有披风,裙摆,头发等外骨骼, 其实这个问题也很好解决,下载一个3dMax的动画软体插件,可以很方便的实现像裙摆这一类的软件体动画, 其次是模型, 我做的是可换装的游戏,这种换装是单个换装,而不是换整个模型, 就是说衣服,头发,鞋子,被子等都可以单个替换, 这样做的好处是可以利用以前端游戏的资源,因为有大量的端游主角资源模型是拆分的, 复用这些资源可以最大限度的提高开发效率,当然有的模型贴图太大,需要把贴图改小,面数太高需要减面, 这些都不怎么废时间, 场景方面, 基本也是复用端游的场景模型,最大的一个问题是,模型面数太高, 所以基本上都是选一些中低模的场景模型,一个好场景,需要合理的规划及部局, 比如这个场景需要什么样的树,什么样的房子,模型放在什么位置, 都是有讲究的,更重要的一点是场景的灯光怎么打, 一个场景就算模型一般,但如果灯光打好了,烘焙出来的效果,一样很惊艳, UI方面: 如果说场景,模型动画是一个人的脸,那么UI好比是面部装容, 好的化装可以让人增色不少,问题是UI也很需要时间的事, 自己画UI基本上不现实,所以只能借鉴别人的, 最直接的办法就是找几套风格差不多的UI, 用这些UI的一部分或几部分做拼接, 其实效果如何主要是看所找的UI水平怎么样和自己的细心程度, 但多半会比半调子的UI美术原创出来的好, 总结 一个人做一个3D游戏,而且是一个动作游戏,难度是极大的, 首先,必须得懂游戏开发的方方面面,如果有一个环节出了问题,或者搞不定, 结果是会浪费很多时间,必须要会借用别人的东西, 举个例子: 比如你要实现一个水面的效果,但又不是unity3d带的那种效果,那怎么办呢? 如果你自己写shader来实现,理论上来说是不难的,但也是要花时间的, 那还不如干脆用别人写好的shader,几分钟就搞定了, 其实很多shader效果都不是程序写出来的, 而是国外美术人员写的,因为程序员一般都不懂美术, 很多效果只有懂美术才能想得到,能把效果在电脑上画出来,你才能用shader写能出来, 所以不要像国内的程序员一样,研究了几个别人的shader,就觉得自己很牛B了, 要自己写shader实现如何如何牛X的效果,其实TM还是用的别人的, 游戏不是shader写出来的。为什么要扯这些没用的,在公司的时候可以用这些东西装装B, 但自己做的时候就不能这样了,装B是装给别人看的,不是给自己看的,实用才是最好的。 游戏的竞争力在什么地方 如今随便一个可以打怪升的游戏都宣称自己是APRG, 这些开发人员可能没几个人玩过真正的动作游戏,根本不懂什么是动作游戏, 动作游戏大都是日本出的,而且基本都是主机游戏, 现在的策划都是玩moba,魔兽一类的游戏出身的, 让他们策划一个动作游戏,他们怎么做都不知道, 因为动作游戏,不是我用一个什么技能,你掉多少血,再加个Buff那么简单, 动作游戏需要程序和动画师高度配全,才能做出好的效果, 动作游戏只需要一些简单的物理知识, 至少要知道速度,加速度,重力,对人物有什么影响, 比如一个动作,有加速度和没有加速度是给人的感觉是完全不同的, 而这些靠嘴和文字是实现不了的,因为现在游戏公司里的策划多数连牛顿三定律都不会用, 动量守恒都不知为何物,更不用说解析几何这类高中生都会的数学知识了, 所以我做的游戏是其他公司做不出来的,因为其他公司的程序不会自找麻烦做这种高难度事,而策划都不会做, 当然光靠这些是没用的, 但是如果没钱,只能把自己能做的做到极致了 独立开发游戏一年多,总算把东西做完了, 现在只需要要往里面填充内容了,一个人做游戏确实挺苦的, 有时想想,有些人认识个有钱人,忽悠个百八十万,拉起个所谓的团队,再招个半调子主程,混日子的主策,不上心的主美, 玩个一年半载,然后挂掉,过得也挺爽的, 更可笑的是被忽悠的人,还很信任他们,如果产品做不好把原因都归结到是整个手游环境不景气, 其实手游环境都是被这帮人玩坏的, 你要明跟他说你被忽悠了,他还跟你急, 就好像你跟一个成天买彩票的人说彩票是骗人的,他也会跟你急道理是一样的, 当然这些有钱人肯定也不是傻子,可能他们也想找个更二的下家吧, 不过2015年把很多这种游戏公司淘汰了, 希望2016年是美好的一年, 期间也找过投资,一看我做的产品都觉得很不错,都有投的意向, 但一听我团队就我一个人,就不干了,我也挺无奈的,但实在不想找一些充个数,组团忽悠投资, 不是节不节操的问题,而是不屑这么去做,觉得好的产品才是王道, 其实不然,投资投的是团队不是个人, 如果同两个一模一样的游戏,一个是由一个人完成的,另一个是一个团队完成的, 那么投资人肯定是投团队的,这就是人多的好处,当然其中原因很多,没有绝对的对错, 比如投资人会觉得如果人多可以快速的做个换皮产品,然后干一票先把本捞回来,然后再复制一个, 什么样的游戏开发团队是高效的,谈谈我个人的看法, 前几天我去了一家游戏公司谈投资,这家公司是个富二代开的, 我提前了十分钟到,那时他还没到公司,我发现他们公司的人大多挺闲的, 公司十几个人,我仔细观察了一下,两个美术在画原画,有一个在建模 有两个在写代码,有一个人再看网页,有一个看着电脑屏幕发呆, 有一个人时不时有在看手机,还有两个是商务在聊QQ,其他的没看清楚 搞笑的是有一个人躺在椅子上发呆,我站在他后面,他发现背后有人立马弹了起来,一副打了鸡血的样子, 两眼直盯屏幕上的Excel,双手紧张的放在键盘上,装做很忙的样子,然后小幅度的扭头用余光一看, 也许他发现背后那人不是老板,整个人立刻放松,表情很是悠然自得。 跟那个老板聊了一会,我说你们公司的项目不紧嘛,他说公司目前在赶进度,都忙得要命, 我随口说了句:但我看你们公司员工都挺闲的嘛,他脸色微变,淡淡的说:没有的事有时还会加班。 我无言以对只能说:哦。。。。 很明显这不是什么好团队,然后项目也没谈成, 我认为一个高效的游戏开发团队最重要的是,让每个人在任何时候都是有事做的, 没有打酱油的。但很多时候员工都会打打酱油,或者偷偷的打酱油让老板发现不了, 比如一个人一动不动的盯着屏幕看,谁也不知道他在干什么,他会说他在思考吧。 团队要发挥最高的效率和CPU发挥最高的效率是一样的, 多核心CPU发挥最高效率的办法是多任务处理也就是多进程, 美术,程序,策划就是团队中一个任务进程, 相互协做,最终完成一个游戏。 这个道理每个人都知道的, 但这是不够的,学过编程的人都知道,很多时候只有并发线程才能最大限度的利用CPU, 那么很明显,团队里面的每一个人就是一个线程, 在开发游戏的过程中,往会出现一种现象:程序等策划,策划等美术,美术等策划,各种等待, 这样极大的浪费了时间, 如果要解决这个问题,那么就必须做出合理的规划,给每个人安排好各自的任务,不要出现谁等谁的情况, 要做出合理的规划,前提是要熟悉游戏开发的每一个环节,知道团队里每个人的水平如何,知道开发一个功能需要多少时间, 做出合理的时间规划才能最大限度的发挥团队的生产效率,这是不懂技术的人做不到的,这么说肯定会得罪很多不懂游戏开发的项目经理, 公司里出现打酱油的人,归根结底是管理者出现了问题, 很多时候员工心里会想:你又不懂,凭什么指挥我,不就因为你有钱吗,或者是你不就因为你跟老板沾亲带故吗, 我就打酱油了,两天能做完的东西,我就要五天,你能怎么样,你又不懂,你也不知道。 这是员工人品问题吗?应该不是,我觉得这应该是人性问题,这是一个人的本能反应,没有对错。 每个都不想屈居人下,当一个人要听从另一个人指挥的时候,他肯定会拿这个人跟自己做比较,如果他觉得他不得不服从一个不如自己的人的命令的时候, 他会觉得自己的尊严受到的侮辱,虽然表面上不会表现出来,他当然不会用心给你做事,所以管理者只能画饼诱惑员工,事成之后如何如何, 这些基本上没什么用,还不如时不时的自掏腰包请人吃个饭收买人心来得实在, 如果拿公司的钱搞个聚餐,员工多办不会感激,也不会觉得自己占了便宜, 因为又不是自己一个人占了便宜。 如果不懂游戏开发,那么有马云一样的人格魅力,那也行, 但一般来说这种管理者都会不懂装懂, 要是有谁说他说得不对,他心里就不爽了, 结果公司员工表面上都说这个人的想法很好,说得很对, 其实背后都说这个人是SX, 所谓团队精神我认为不是什么所谓团队凝聚力,团队利益至上,有共同的理想,有共同的价值观, 而是各司其职,各尽其力,共同创造利益,然后合理分赃,干多少拿多少,不亏待任何人。 以前总听人说:我们团队关系如何如何好,讨论问题急了都会拍桌子瞪眼,但事后跟没事一样, 很明显这是有问题的,多半是两个都把气憋在心里了,不说出来,表面和气而以,背地里都骂对方是SB。 拍桌子瞪眼说明谁都不服谁,以我的经验而言,如果两个人谁都不服谁,这两个人多半水平都差不多,而且肯定水平不会很高, 两个牛X的人遇到一起了,会有一种英雄惜英雄的感觉,就算我不同意你的观点,但我也会觉得,你这样做肯定有你的道理, 我试图站你的角度思考思考,而不是无谓的打嘴仗,牛X的人都知道吵架是解决不了问题的,只会让问题越来越严重。 牛X的人一般来说都懒得跟一个比自己水平低的人吵。 一个人没有责任和义务为另一个人创造利益,其实给员工给老板打工就像卖菜一样,你买我的东西我没有必要管你做出来的菜好不好吃, 买了菜要怎么做那是你的事,是好是坏跟我没关系, 但大多数老板都想花买白菜的钱,还要让员工做一顿美味可口的大餐, 员工就算能做也不会给你做,做出来又不是给我吃的,结果是两天能做好的东西,员工就要五天,可能老板还认为员工干得很好。 为什么会这样呢,因游戏开发是个技术活,不是富士康的组装工,不是想剥削就剥削,想压榨就能压榨的,除非你干得比我好,我能在你身上学到东西, |
|