吴军 答读者问25 | 用“递归”做事有哪些缺点?
一名游戏客户端开发人员向吴军提问,游戏开发也是需要递归向下进行的,但游戏的需求变化相比其他计算机行业而言是快不少。因此如果架构做得太深入,会适应不了这么快的变化,导致浪费了架构的一部分时间,架构做得不够深入又会出现后期扩展的问题。
吴军的回答
自己没有开发过游戏,只能转述“游戏老兵”的观点,他们包括完美世界创始人池宇峰先生和腾讯的一些高管。
首先,要把游戏看成是一部电影,而不是一个简单的IT产品。既然是电影,就是先要有大的情节,再有细节,因此你说递归向下一点没错。但是,电影是有流派风格的,游戏也一样,这种流派风格是改变的,也就是说,游戏成败第一条是流派风格符合了当前的主题,因此有很大的随意性和运气的成分。
池先生讲,很多好的游戏设计师在一款成功的游戏之后,要潜行很多年,才能再出第二款爆款。因此,对于成败只能说不要太在意,成了,有很大的运气成分,败了,并非说明自己做得不好,要总结经验往前走。
第二,脚本很重要,你做游戏,这点应该会有体会,就不多讲了。
第三,接下来才是产品和工程的工作。游戏开发总体上是“强干弱枝”,也就是说架构设计远比开发重要。根据腾讯的经验,架构完成后,下面开发赶时间是赶的出来的,架构出了问题,几乎没有修补的可能,整个都玩完了。因此,宁可多花一点时间把架构做好,以便后面有回旋余地,或者加班加点赶进度的可能,也不要一开始就把树种歪了。
第四,也是不能忽略的,用户体验的细节很重要。这是腾讯首席运营官任宇昕总结出来的。腾讯最初很多游戏也是很失败,看着其他公司的同类游戏就很成功,不知道原因。后来任宇昕发现在于体验的细节上。
今天正好看了一个游戏资讯类节目详谈腾讯的第一个成功游戏运营产品DNF的背后故事。当时腾讯简直是盛大,网易,九游都看不起那家韩国公司的情形下才得到运营资格的。而且也确实面对了不少服务器和bug的问题。机遇加上拼搏吧。
计算机在用递归处理事务的时候,都有哪些缺点?
采用递归的方法,逻辑简单,代码很短,非常漂亮。但是,由于要不断地把中间状态放到堆栈中(成为压栈或者入栈),然后再出来(成为弹出栈或者出栈),占用空间很多。
因此,在具体实现时,很多情况是使用递归的原则设计,递推的原则实现。比如真正做阶乘运算,并不需要从大往小计算,还是可以从小往大算的。
世界上很多事情,分为逻辑上的解决方案和物理上的两种,先搞清逻辑,再进行物理设计。
木鱼水心今天发了“血观音”讲解。考虑了一下。这算是中等局吧。
而我是怎么分局的呢?我也问了一下自己:
局——零和博弈时无可避免的游戏。
低等级应该就是那种办公室斗争,内斗消耗。不会产生实质性生命损害。最终得到的比付出的少那种过家家。
中等,应该就是血观音或金色梦乡这种。牵扯出至少两项人性黑暗面的模样。商为财死,官位权亡。然而总会有坐收渔翁之利者。有赢家的局才是局,并且其利益要远大于付出。否则叫乱斗。
高等局,这个很难,雨血是个例子。至少是富可敌国的组织级别,或者直接国家级别。高等局都不完美。总是太过惨烈。牺牲属911级别。而大多都会被掩盖。血色?琅琊榜?将就着往这方面想吧。
end