室内儿童游乐场场里面往前方投币的游戏,投中了就有奖。前面有个台子大家都靠着这个台子投币,我坐在上面

游戏开发随笔游戏开发随笔聊聊游戏开发中的那些事,关于客户端技术和项目管理…关注专栏更多最新文章{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&title&:&为什么远程合作的游戏项目不好做(2)&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E继续说上次没说完的问题。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E信任感的缺失和文人相轻\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E随着沟通信息的缺失,两个团队会越来越认为,对方不值得信任,是一个很弱的团队。大家本能认为,自己身边团队是最棒的,原因是受到认知偏见的影响,自己是团队一部分,参与了大量决定过程,自然就认为自己是对的。\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E一旦我们团队做出一个保守的技术决定,那是小心谨慎,是对项目负责。如果是远程团队做同样的决策,那自然是保守落后不思进取。\u003C\u002Fli\u003E\u003Cli\u003E一旦我们团队作出激进的技术决定,那是锐意进取,挑战极限。如果远程团队做同样的决策,那是不尊重软件开发的客观规律,没有常识和智商。\u003C\u002Fli\u003E\u003Cli\u003E当我们的技术决策成功,那是高歌猛进,用一个成功替代另一个成功,为建设四个现代化添砖加瓦。当对方成功,那一定是开发内容太简单,对方合作中总是挑简单的工作做。\u003C\u002Fli\u003E\u003Cli\u003E当我们的技术决策失败,那就是小步迭代,顺应变化,勇敢跨出舒适区,拨乱反正,为下一个成功打好基础。当对方技术决策失败,大家哈哈大笑说你看我早就说过这样不行,他们不听我的。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E距离产生美,也产生怀疑,当沟通恶化,任何对决策的不解,无法及时通过沟通来化解,那就会淤积,就会发酵,就会爆发。\u003C\u002Fp\u003E\u003Cp\u003E《三体-黑暗森林》作了非常好的诠释,当宇宙中两个文明,无法沟通,那么任何哪怕是善意的举动,都可能被过度解读,最稳妥的方法,就是往那个黑暗中发出异响的方向开一枪。\u003C\u002Fp\u003E\u003Cp\u003E加强团队凝聚力的好办法,往往是树立一个共同的敌人,比如紧张的deadline,比如凶残的竞品,比如不合理的流程。但很不幸的,在合作项目,大家往往认为远端那个团队造成了所有的不幸。远程团队不给力,那我们自然不能把死活押宝在对方身上,我们要发奋,我们要图强,我们要改变。在职业化的团队,造反的欲望会被压制,最后大家都消极没动力;在叛逆的团队,团队会分化,一样没高效产出。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E依赖关系\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E罗马不是一天建成的,就像项目不是一天做成的。在项目开发中,有各种协作和依赖。越大型的项目越难做,其深层原因就是随着项目增大,内部的工作、资源和流程依赖,迅速膨胀,大大超过了要做的具体工作。\u003C\u002Fp\u003E\u003Cp\u003E依赖关系是最难处理的事情之一,比依赖关系更难处理的是远程依赖关系。由于远程的局限性,大家无法频繁沟通,所以一般的做法就是约定一些重要的节点,双方同步工作,让那些有依赖关系的项目能够推进。本质上,这就是在团队这里设了一些节点,节点内可以独立做,然后准时交付即可。可是你有做过可以准时交付的项目吗?准时交付是多么难的一件事啊?\u003C\u002Fp\u003E\u003Cp\u003E准时交付还有一个变种,就是按时不按量交付,就是时间是挺准时的,但是质量就很一般,这样远程团队交付的工作,在另一边往往没有办法好好使用,增加了非常多的沟通交流成本。\u003C\u002Fp\u003E\u003Cp\u003E当产生了延误,依赖关系不能被满足,就会引发更可怕的事情,我称它为Cascaded Delay。一个延误会引发另一个延误,冲击蔓延到整个项目,即使只在本团队扩散冲击也是一件非常可怕的事情了,更不要说会扩散到另一个团队。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E目标不同\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E两个不同团队有可能有不一样的目标。\u003C\u002Fp\u003E\u003Cp\u003E某个团队也许是发起方,更希望把产品做好,而另一个团队只是被拖上凑数的。那么双方的合作意愿,kpi目标,是完全不对等的。\u003C\u002Fp\u003E\u003Cp\u003E一边是主力团队拼命推进,谈着milestone和deadline,另一边是配合团队拖延敷衍,谈着vacation和beach,这明显没法谈到一起去啊。欠债的是孙子,拖进度是大爷,在一起合作是种缘分,不坑你还能坑谁。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E解决方案在哪里?\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E虽然说了这么多问题,但远程协作并不是一件完全不可行的事情。大致上,我们有这些手段可以提高协作质量:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E选择好的协作模式\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E在我看来,运作的比较良好的远程合作模式,大约有下列几种\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E外包模式,也包括公司集团内部的内包模式。 外包模式的本质,就是让一部分的内容,能被不同团队高效开发。这个模式已经被业界广为使用,美术外包、音频外包等等都是非常常见的外包方式,而最近也会有一些新的形态兴起,比如测试外包,用户研究外包等等,都极大提高了生产力。\u003Cbr\u003E\n相对来说,这些可以外包的模式,共同特点如下:\u003C\u002Fli\u003E\u003Cul\u003E\u003Cli\u003E有良好清晰的边界:美术外包只要做好模型即可,每个单独的模型就是自包含的,不会影响太多其他模块。测试外包的目的就是单独做好一个游戏版本的测试,没有太多和开发团队的交流。(其实这一点我有一定的保留,我们使用的最顺手的测试模式,一般都是dev tester模式,这个无法体现在外包测试中。)\u003C\u002Fli\u003E\u003Cli\u003E产出时间相对可控或是可预期:美术资源,包括模型贴图等等,相对容易标准化,容易定时定量,不会有太大的偏差,所以大量美术外包的业务模式就是根据不同外包人员的能力,来单纯的计时定价。\u003C\u002Fli\u003E\u003Cli\u003E一般不是游戏开发中最核心的内容,能够很好的把决策和执行解耦合。对于像核心玩法、关卡设计等等内容,必须通过多团队来协作开发的,不停迭代调整和改进的,它们的决策和执行是一体的,离得越近效率越高,所以很少有外包。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cli\u003E还有些更高端的外包,其实是整包,把整个游戏开发外包出去,原公司只需要有少量人跟进和监督即可,比如在上海的日本东星,就常年扮演很多游戏的幕后英雄,完成全部开发,贴个别的游戏公司的牌就出去卖了。\u003C\u002Fli\u003E\u003Cli\u003E独立开发,把工作边界划分在自然边界 所谓的自然边界,是指在这样一个地方切分开以后,两个团队的开发,互相影响很少,基本可以独立进行,定期在同步点整合即可。听上去非常美好,但似乎很多时候并不容易找到这样的独立无依赖模块。不过也不是绝无可能做到,以前做主机游戏的时候有过这样的案例:\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E一些游戏的单机和联网模式根本就是两个游戏,只是共享了接近的美术资源。于是公司就把单人模式和多人模式交给成两个独立团队负责开发,大家只需要遵守同一个deadline,做完以后做个launcher一整合,烧到同一张光盘上即可。玩家买一张盘,得到了两个游戏,实在是多赢局面。\u003C\u002Fp\u003E\u003Cp\u003E另外的一些例子,包括做出比较通用的组件,组件完全可以是独立开发,有相对固定的接口,到时候替换成新版本即可。当然这种神奇的替换,猫腻也不少,组件和主游戏关联越少,越容易实现无缝替换。\u003C\u002Fp\u003E\u003Cp\u003E听说过的最夸张的近乎骗局的案例,是有个外部团队说,你们团队在某个引擎上开发游戏吧,我们外面有一个团队来做高级引擎,到时候我们一起biu的一下就把你的引擎替换到我的引擎上了。biu一下谈何容易,欺负我没读过书呢?我们身处在改一行代码都会踩到10个臭虫的游戏开发领域,容不下你的理想主义。\u003C\u002Fp\u003E\u003Cp\u003E可以看出,这两个模式,本质都是通过合理的管理,来降低各个开发模块之间的依赖关系,从而达成目的。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E选择好的协作团队\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E远程团队要和你有一样的kpi目标,最好两个团队不是完全对等,而是主从关系。如果是都汇报给一个制作人,则更好,这意味着任何时候,只有一个项目,一个梦想。控制力是关键,对于项目来说,虽然人多力量大,但力量是矢量,如果有着不同的用力方向就不是什么好事了,一定程度上的整体控制是非常有效的。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E选择好的团队成员\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E不要情商低的,他会和远程团队闹僵,给你添堵,让你忙着处理人事,而不是业务。\u003C\u002Fp\u003E\u003Cp\u003E不要不守纪律的,远程团队本就不容易沟通,一举一动都不在眼皮底下,信任已经很难建立,别让情况变得更糟。\u003C\u002Fp\u003E\u003Cp\u003E不要表达能力不够且没有沟通意愿的,沟通本就是远程协作中的大问题,怎么强调都不为过。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E做好沟通\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E说来容易做到难,既要事无巨细沟通项目决策上下文,及时全面精确,又要控制沟通成本,不能整天开会同步信息无法推进具体工作。\u003C\u002Fp\u003E\u003Cp\u003E你还要对沟通辞令非常敏感,听懂复杂沟通中的潜台词。是的,我们活在一个温情脉脉的世界,人们用隐喻来交流,智商不够是无法识破种种含蓄的表达方式的。\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E当对方说资源不足,可能是对方工作室不再重视项目,抽调人手;\u003C\u002Fli\u003E\u003Cli\u003E当对方说进度来不及了,无法交付,可能是对方团队要去团建休假的婉转说法;\u003C\u002Fli\u003E\u003Cli\u003E当对方说今天太忙无法回复,可能是说今天我不想理你。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E不管多难,努力去做。那是真正重要的事情。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003EOnsite,出现在现场\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E常出差。\u003C\u002Fp\u003E\u003Cp\u003E冲刺攻关时甚至可以考虑让两个团队在一起工作。 但如果两个团队关系已经有裂痕的话,可能会适得其反。\u003C\u002Fp\u003E\u003Cp\u003E更好的方法是在项目启动早期就安排团队一起工作一段时间,至少leader级别同事要一起有深入的合作。然后定期有一些见面。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E更好的私交\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E职业化从来和私交不矛盾,更好的私人交情,是工作中的良好润滑剂。有可能的话,需要让协作团队培养更好的感情,这样大家就不会轻易觉得对方是SB了。\u003C\u002Fp\u003E\u003Cp\u003E该团建就团建,该旅游就旅游,多出差,多吃饭,在不让人反感的情况下,多挖掘远程合作团队和个人的优点,告诉大家对方是多么靠谱,在一起是缘分,错过他们是你们一辈子的损失。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E总结\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E远程合作的游戏项目,有大量的坑,主要体现在:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E沟通很困难,信息沟通不全面,延时比较长\u003C\u002Fli\u003E\u003Cli\u003E团队彼此缺乏信任感\u003C\u002Fli\u003E\u003Cli\u003E更长的依赖关系,导致一旦出问题,影响环节非常多\u003C\u002Fli\u003E\u003Cli\u003E多个团队可能有不同的目标\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E解决方案并不好找,对可能有的坑,做一些针对性的弥补,是一个好办法,另外还可以做的是:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E选择更好的协作模式,参考各类游戏外包业务\u003C\u002Fli\u003E\u003Cli\u003E选择好的协作团队\u003C\u002Fli\u003E\u003Cli\u003E找好的团队成员\u003C\u002Fli\u003E\u003Cli\u003E出差,一起工作\u003C\u002Fli\u003E\u003Cli\u003E私下交情也很重要\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E愿天下没有难做的项目.\u003C\u002Fp\u003E&,&updated&:new Date(&T00:02:19.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:11,&likeCount&:66,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T08:02:19+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fcf213d1eeda_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:11,&likesCount&:66},&&:{&title&:&大公司的四大定律&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E从业以来,我一直在大公司工作。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E大公司有光鲜亮丽的一面,工作环境好,同事职业化,薪酬稳定,福利优越。虽然每个人都只是一颗螺丝钉,但是公司会帮你镀金,作为一颗金色的螺丝钉,体面的生存是可以保证的。\u003C\u002Fp\u003E\u003Cp\u003E然后大公司也有让人啼笑皆非的一面。并不一定是由于官僚导致,很多问题是大公司体量上去以后不可避免带来的,就像肥胖是文明的副产品,又像扩张是帝国的诉求。\u003C\u002Fp\u003E\u003Cp\u003E考虑到今后还要继续在大公司讨生活,就不多吐槽,用人畜无害的方式戏说一番大公司。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E第一定律\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E由于工作原因,我一直和其他公司负责商务和开发者关系的员工接触比较多,和他们保持不错的关系。我们会经常交流,沟通项目情况,了解对方更多的信息,寻求合作机会,或者,占用一点彼此的时间,以满足对方的KPI。是的,开发者关系部门,就是要不停和合作伙伴交流,即使很多时候交流并不会导致直接的合作。\u003C\u002Fp\u003E\u003Cp\u003E一般有开发者关系部门的公司,都是大公司。不可避免,我们之间的交流,受到公司规模的影响,会呈现出戏剧化的结果。\u003C\u002Fp\u003E\u003Cp\u003E我们之间往往会有这样的对话:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E问:你们腾讯最近那个XXX产品非常不错啊,有啥进一步信息吗?\u003C\u002Fp\u003E\u003Cp\u003E答:啥?我没听说过啊。你从谁那里了解的,告诉我名字,我去打听打听。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E或者是\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E问:听说你们微软的Hololens非常棒啊,你体验过吗?什么时候会有开发者版本?\u003C\u002Fp\u003E\u003Cp\u003E答:啥?已经有体验版本了?我们内部都不知道,你怎么就先知道了,你找谁了解的,我也去问问。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E一次两次还好,时间多了,就不由让我们思考起为什么这样的情况总在大公司里面出现。开发者关系部门,名义上是用来服务外部公司,但其实也对自己公司的信息流动有很大的帮助。他们往往要和很多外部企业和团队沟通,是消息比较灵通的群体。他们的存在,在壁垒森严的商业公司之间,在消息闭塞的内部团队之间,打通了渠道,成为信息时代的蚯蚓,在高墙大坝上挖出一个个小洞,促进信息流动。\u003C\u002Fp\u003E\u003Cp\u003E大公司的内部信息,沟通给第三方开发者,再通过自己的开发者关系部门收集回来,反馈给其他需要了解的部门。在非战略业务层面,大公司各个部门之间信息流通不畅,是一个很常见的情况,却又通过各种第三方渠道,完成了信息的沟通。\u003C\u002Fp\u003E\u003Cp\u003E于是我总结出了大公司第一定律:所谓的大公司,因为体量如此之大,以至于\u003Cb\u003E内部的信息很难顺畅到达每一个部门,需要通过外部第三方渠道来转述。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimg src=\&b84c23b2edae921dbad4a.jpg\& data-rawwidth=\&640\& data-rawheight=\&360\&\u003E图片来自《疯狂动物城》:啊 ~~ 问 ~~ 号 ~~ 你 ~~ 说 ~~ 什 ~~ 么 ~~\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E第二定律\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E大公司,特别是有平台部门的大公司,做惯了甲方,往往在商务合作中会更强势,对于法律条款有着偏执的执着。\u003C\u002Fp\u003E\u003Cp\u003E每当有商务合作,需要审核合同的时候,法务部门就开始出手了。大公司,要有大公司的严谨,既严肃活泼,又平易近人。但平易近人不代表好欺负,条款上但凡有点不利,自然要以死相争,确保维护公司的利益。\u003C\u002Fp\u003E\u003Cp\u003E只是双方都是大公司,江湖上都是有地位的,谁肯吃亏?丢得起合同,丢不起面子。对你有利的,往往就是对我不利的条款,妄图在合同上找双赢谈何容易,你改完条款发给我,我再改回原来条款发回来,看谁在审核合同的时候先犯下错误,有了疏漏,才可能达成一致。偏偏法务同事都是写轮眼,天天修炼找茬游戏,上能睿智洞察法律风险,下能明眼细辩字体变化,想在合同上玩手脚怎么可能逃脱他们的法眼。\u003C\u002Fp\u003E\u003Cp\u003E来来回回合同审核,走上几轮,没有数个月,是定不了稿的。往往还要业务部门来哭诉进度来不及了,领导用大智慧来平衡各方利益,才能勉强拉住正在PK的法务,不情愿的盖上公章。\u003C\u002Fp\u003E\u003Cp\u003E大公司第二定律:\u003Cb\u003E越大的公司,法务越强势,两个大公司之间的合作,总会特别艰难。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cimg src=\&6fb5badec055c930fc9fb1f.png\& data-rawwidth=\&300\& data-rawheight=\&425\&\u003E\u003Cp\u003E配图来自\u003Ca href=\&http:\u002F\u002Fwww.123rf.com\u002F\& data-editable=\&true\& data-title=\&123rf.com 的页面\&\u003Ehttp:\u002F\u002Fwww.123rf.com\u002F\u003C\u002Fa\u003E:这个条款看上去对我们公司非常有利,一定有阴谋\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E第三定律\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E大公司内部的流程,特别严谨,严谨到没有人能完全了解,甚至复述一遍都成为不可能,巨大的篇幅会直接让你的脑细胞溢出。\u003C\u002Fp\u003E\u003Cp\u003E大公司是自然进化的产物,管理本来就是一件很复杂的事情,大量公司在一路进化中,演化出各类复杂的机构,这才能支持公司体量进一步扩大。如果没有坚实的基础,就如巨兽没有进化出坚硬的骨骼,那自然会变成一坨瘫倒在地的烂肉。\u003C\u002Fp\u003E\u003Cp\u003E这一路进化来的复杂机构,既帮助了公司扩张,也带来了副作用。\u003C\u002Fp\u003E\u003Cp\u003E每个机构都要有kpi,都试图服务更多人,他们就会有迫切的需求,希望把业务流程标准化下来,这样才能进一步扩张自己的势力,直到星辰大海。标准化的流程,一方面支持部门向前发展,一方面形成了对其他部门的障碍。第一代制定流程的创始人还好,业务精熟,人际关系良好,善于沟通和妥协。制度一代代传下去后,就开始僵化,接手的同事不知道变通,只知道有一个规章摆在这里,需要遵守;不知道全局情况,只知道自己这一个环节的业务流程应该如何走;不了解其他相关同事,遇到问题无法给出处理方法。各部门随着公司发展,一路向前狂奔,身后留下了满地的规章制度。\u003C\u002Fp\u003E\u003Cp\u003E当其他部门要办一件事情的时候,先不知道该找谁,找到了以后发现缺其他手续,在接待同事A耐心的指引下找到另一个部门B。B部门同事耐心了解情况后,表示我们的系统已经更新成新版本,内网的有完整的线上流程可以使用,这是说明书,然后发过来一个几十M的word文档。你读完后就开始信心十足的上线操作,然后发现自己是这个系统第一个小白鼠,系统bug一堆完全没法使用。拉了n个相关开发团队解决了问题后,又发现为了完成线上流程,还需要走其他流程。然后新的流程,往往会以各种极其诡异的方式,把你重新定位到接待同事A,形成了死循环。\u003C\u002Fp\u003E\u003Cp\u003E大公司第三定律:\u003Cb\u003E办公流程的复杂程度和严谨程度,和一个公司的规模成正比。\u003C\u002Fb\u003E没有在审批流程上折腾过几个人月,你都不好意思说自己是大公司出来的。\u003C\u002Fp\u003E\u003Cimg src=\&f6fae519eac585d22a205d0cf75257be.jpg\& data-rawwidth=\&960\& data-rawheight=\&640\&\u003E\u003Cp\u003E配图来自pixabay.com:岁月静好,夕阳下的护城河,守护着千年传承的流程和哀伤\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E第四定律\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E大公司内部成功进化出多个团队后,一方面大家为低层次的生存需求,进化出种种流程,作为自己生存和发展的护城河,另一方面,大家也会逐渐脱离低级生存需求,进化出\u003Cb\u003E独立意志\u003C\u002Fb\u003E,追求进一步的发展。\u003C\u002Fp\u003E\u003Cp\u003E独立意志会体现在很多方面,比如\u003Cb\u003E闭环化\u003C\u002Fb\u003E就是独立意志的一种。\u003C\u002Fp\u003E\u003Cp\u003E开始先要生存,然后为了降低成本成立平台部门,把公共业务抽离,可以更好的节约和复用。可是既然业务有了间接的层次,自然就有了隔阂,公共部门会有流程,对业务优先级排序,依次处理,带来了延时和服务质量的降低。于是业务部门开始不爽,表示前线正在打仗呢,你们后勤不给力,弹药运不上来,这样吧,你们别搞了,我找上级申请3个师的编制,自己管理往前线搬炮弹的事情吧。于是,一线战斗部队又有了自己的运输队,逐渐在闭环化的路上越走越远,规模就这么扩大了,效率也就降低了。在业务高速发展的时候,这么做无可厚非,只要高速发展的业务可以cover自己的成本支出,一切闭环化,对于单独业务的效率提高,是一定会有好处的。\u003C\u002Fp\u003E\u003Cp\u003E另一种独立意志是业务交叉,内部竞争。当新兴市场红利消耗殆尽后,大家的业务不可避免会有重叠。腾讯内部也有很多业务是有一定重叠的,最著名的例子就是微信和手机QQ了,不那么著名的案例也有不少,比如当年手机游戏也有很多不同的事业群在做,比如现在电影业务也是几个不同部门在做。吃着碗里的,看着隔壁锅里的,是一切居安思危的大公司都会有的情况。内部竞争不是坏事,适度的内部竞争可以保持活力,总有鲶鱼横冲直撞,粉碎内部团队一切妄图安逸的梦想。\u003C\u002Fp\u003E\u003Cp\u003E由于有了\u003Cb\u003E业务交叉\u003C\u002Fb\u003E和\u003Cb\u003E闭环化\u003C\u002Fb\u003E这两种独立意志,于是每个部门都努力拓展自己的势力,积极主动的开拓新的业务。对于热门的领域,这就相当于市场上多了N个小公司,同时在某一个领域耕作。\u003C\u002Fp\u003E\u003Cp\u003E可是对外部合作团队来说,他们就会非常郁闷。他们如果不是和大公司有非常密切业务往来的话,就永远不会了解,为什么经常会接待同一个公司的好几波不同团队,进行沟通,虽然他们都号称是某个公司出来的,但为什么他们说的话都不一样,他们的业务似乎彼此有矛盾,他们对市场的观点是冲突的,他们内部似乎也互相不待见。\u003C\u002Fp\u003E\u003Cp\u003E聪明的外部团队,就会努力搞清楚这些团队在大公司内部的定位,搞清楚公司的组织架构,然后一次次拜访不同的团队,争取让自己的信息能渗透进更多的部门;搞不清状况的外部团队,就在那里抱怨,说你们能不能统一成一个部门和我们接口啊?对于他们的这个问题,一般回答是每个部门会有自己的考量,会主攻不同的细分领域,服务不同的用户,所以我们没有办法统一起来沟通。但这个回答太长了,很难在短时间里面解释清楚,所以我们一般会用一个短的回答来回应:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E问: 你们能不能协调一下各个部门,统一和我们正式沟通一次?\u003C\u002Fp\u003E\u003Cp\u003E答: 不\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E大公司第四定律:\u003Cb\u003E独立意志促进竞争,也造成困扰,但了解大公司,离不开对部门独立意志的把握。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E总结\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E没有一样的大公司,正如没有一样的生物。\u003C\u002Fp\u003E\u003Cp\u003E千奇百怪的公司形态,企业文化,都是在市场上竞争后进化而来。存在即合理,无论它是不是会对你造成困扰。适应它,然后在可以推动它变化的地方,尽一点点自己的力就好了。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cb\u003E额外声明:\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cp\u003E此文过于敏感,与本人所在公司以及以前公司没有任何瓜葛,如有雷同,实属巧合。\u003C\u002Fp\u003E&,&updated&:new Date(&T04:47:16.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:36,&likeCount&:448,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T12:47:16+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fef1391a31baa5985cfc991_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:36,&likesCount&:448},&&:{&title&:&没有统计数据就是耍流氓 - 谈为什么开发人员要强调统计和定量&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E在技术开发、个人发展上,是不是强调\u003Cb\u003E统计和定量\u003C\u002Fb\u003E,对工作结果会有非常重要的区别,会带来完全不同的结果。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E可惜,我们是一个不喜欢太精确的民族。\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E在黄仁宇先生的《万历十五年》中,有一个很著名的历史论断,就是中国并不是一个依靠精确数字管理的国家,历史上一直不强调数字和精确,这是为什么近代工业科技革命都没有起源在中国的重要原因。\u003C\u002Fp\u003E\u003Cp\u003E在万维钢的《万万没想到~用理工思维看世界》中也提到,欧美人从小习惯用数字来说明问题,不像我们用模糊的观念来论述观点。\u003C\u002Fp\u003E\u003Cp\u003E虽然我不会做菜,但中餐菜谱也是见到过的,通篇写着盐少许,糖适量,更多需要依赖厨师的经验来决定用量。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E不精确带来了很多负面问题。比如在游戏开发优化的领域中,数据无法量化,就无法测试改进程度,不利于进一步改善。看看具体的例子:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E由于工作关系,我经常需要面试很多技术候选人。在面试的时候,一个很常聊的话题,就是优化。这是一个比较容易鉴别出知识深度的课题,至少在常见的编程从入门到精通一类的傻瓜书中就不会提到优化的话题,不容易提前准备。另外,做优化的能力,也可以很好的辨别出候选人钻研的能力,解决问题的思路,因为每一个优化问题,往往都是很独特的案例,可以用不同的思路解决同类问题,也可以在同类问题中用不同的思路处理。聊得深入就追问一番,聊得悻悻就转换话题,对于面试官,这是进可攻退可受(此处笔误应为‘守’字)的高级话题。\u003C\u002Fp\u003E\u003Cp\u003E性能优化有一个很重要的判断依据,就是性能提升幅度。非常遗憾,相当多的候选者,其实并没有在游戏中建立过一个性能测量体系,根本不知道自己的优化能带来多大的性能提升;还有一部分候选者,只用一个非常粗略的数据,比如做完这个优化,帧数从多少变提高到多少。在我看来这两者都是相当初步阶段的优化,很多小幅度优化根本无法在帧数上直接反映出来。如果放弃这些微小的优化,只关注那些所谓的low hanging fruits(就是比较好处理的性能问题),这当然也是优化,但程度一般不会太深。\u003C\u002Fp\u003E\u003Cp\u003E仅仅通过数据一个纬度,就可以把技术人员能力做一个初步区分。没有数据支撑,你的优化质量是无法评估,你的自我吹嘘也无法证伪,和迷信无异。\u003C\u002Fp\u003E\u003Cp\u003E合理的优化,应该是有完善的测试体系,能测多细就测多细,每一次优化有没有改进,是不是性能出现了回归,需要有尽可能完善的统计数据来支撑,而不能凭感觉靠猜想。\u003C\u002Fp\u003E\u003Cp\u003E当建立了这样完善的体系后,你就会对更细致的优化有了信心,有了深入下去的动力,会追查性能里面的微小优化点。这些细小的优化,即使不能对帧数产生任何影响,但你知道,它就在那里,发挥着作用,日积月累,当有更多的优化,就会共同对游戏性能产生良性的作用。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E无法量化的另一个问题是知识无法显式传承,也无法高效沟通,依赖说不清道不明的定性结论,无法令人信服。比如你去面试,和HR谈工资,你能说,我要少许工资吗?还是报一个具体数字,或者给个百分比更合适吧?再举个专业方面的例子:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E一个优化,带来了一定的副作用,你如何衡量它的影响呢?一个优化的渲染算法,会有性能提升,这个比较容易想到,也容易测量;但往往优化算法会带来画质损失,这一点就没有太多人关注了。简单表示没有什么影响,并不足以服众。严谨的做法,是定义画质,和原算法在同样的条件下做逐像素比较,不那么严谨--但也远远好于不做任何事的做法,是找相关美术同事,仔细看对比图,判断对画质影响。\u003C\u002Fp\u003E\u003Cp\u003E有了这样的比较,就可以理直气壮和其他团队表示,画面效果没有可识别损失,和原画面差别低于5%,主美术表示肉眼无可识别差异。上可安抚制作人,下可嘲讽小伙伴,这样的论据,说服力会远远大于个人的主观判断。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E不仅仅是技术,其实策划、美术领域也是可以度量的,不轻易相信直觉,不随便迁就喜好,我们该真正从用户角度出发,做调研,阅读报告,分析数据,找到合适的策划方向和美术方向。作为一个程序员,就不多在自己的客场多BB了,请策划美术同学自己补充。\u003C\u002Fp\u003E\u003Cp\u003E在生活中,自我量化,数据说话也是一个好习惯。\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E我曾经从全拼切换到双拼输入法,双拼是有一些学习成本,所以我需要数据来证明,切换过去是值得的。毫无疑问,作为一个对自己负责任的Geek,我要定量统计。\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E我先查了很多网络数据,看见平均击键数字上面,全拼平均是3.x,但双拼只有2,所以理论上会更快。\u003C\u002Fli\u003E\u003Cli\u003E然后找了段范文,测试了一下自己的全拼输入速度,记录下来。\u003C\u002Fli\u003E\u003Cli\u003E努力切换到双拼,虽然开始很痛苦,但咬牙坚持。\u003C\u002Fli\u003E\u003Cli\u003E切换的前几周,每周都测试同一段范文,统计自己的输入速度。这有两个目的,一方面给自己切换输入法的动力,告诉自己输入速度提高了,另一方面也想验证我是否能达到理论上的输入速度上限。\u003C\u002Fli\u003E\u003Cli\u003E在1个多月后,输入速度和全拼基本一样了,然后缓慢超过了全拼,最后稳定在一个程度再也无法提高。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E这是我的一些统计数字,可以看出,有了量化,我可以看自己的速度提升,可以看在手机上输入的效率,可以看mac上输入效率,可以看机械键盘对我的输入有没有帮助,可以写文章引用自己的数据,然后为自己微不足道的进步沾沾自喜。\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E\u002F13, 全拼,4:30\u003C\u002Fli\u003E\u003Cli\u003E\u002F20, 8:00\u003C\u002Fli\u003E\u003Cli\u003E\u002F29, 6:30\u003C\u002Fli\u003E\u003Cli\u003E\u002F17, 5:07\u003C\u002Fli\u003E\u003Cli\u003E\u002F20, 4:15\u003C\u002Fli\u003E\u003Cli\u003E\u002F23, 3:50\u003C\u002Fli\u003E\u003Cli\u003E\u002F31, 3:45\u003C\u002Fli\u003E\u003Cli\u003E\u002F30 3:45\u003C\u002Fli\u003E\u003Cli\u003E\u002F15 3:45\u003C\u002Fli\u003E\u003Cli\u003E\u002F11 3:31\u003C\u002Fli\u003E\u003Cli\u003E\u002F6 3:35\u003C\u002Fli\u003E\u003Cli\u003E\u002F22 3:35\u003C\u002Fli\u003E\u003Cli\u003E\u002F22: Note2, 6:50\u003C\u002Fli\u003E\u003Cli\u003E\u002F14: iPhone6,5:16\u003C\u002Fli\u003E\u003Cli\u003E\u002F30: mac, with filco keyboard, 3:11\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E那如何在工作中做到数字说话呢?我们还是以游戏开发中的优化来举例子。\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Col\u003E\u003Cli\u003E开发中要建立测试框架,所有需要对比的事情,都需要有测试框架。包括内存、显存、CPU开销、GPU开销,也包括接入各种第三方测试工具,各种profiler工具,能接上全接上。\u003C\u002Fli\u003E\u003Cli\u003E工作中不停收集数据,尽量保留数据上下文,越完整越好。比如测试工具输出的原始Log文件,临时的分析结果,截图和视频。如果能保留相应游戏版本则更好(不过考虑到现在游戏的规模,一般不可能),或者记下相应的changelist号码。上下文,是为了让你今后总结的时候可以快速的回顾,可以方便的补漏,可以从别的角度观察和总结当时的优化,可以很好的总结输出报告。如果没有保留上下文,无法恢复当时的环境,那么一旦事后发现缺乏一些数据,就很悲催了。\u003C\u002Fli\u003E\u003Cli\u003E事后总结,输出邮件和分享。相信一份详细的汇报,无论是对你将来的技术发展,还是对向leader汇报工作,都是很有好处的。\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E当然,要知道怎么做好数据统计,还是需要一定的眼界和深入的思考。多看看别人项目是怎么统计的,别的游戏引擎提供点什么数据,别的测试工具给出什么统计指标,然后结合自己的游戏,想想怎么让这些好东西为我所用。信息时代,没有孤岛,关起门来空想,不容易有突破。\u003C\u002Fp\u003E\u003Cp\u003E如果实在找不到量化的方法,那就继续去努力找吧,成功没有捷径。\u003C\u002Fp\u003E\u003Cp\u003E题图来自stocksnap.io。\u003C\u002Fp\u003E&,&updated&:new Date(&T13:40:03.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:39,&likeCount&:132,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T21:40:03+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic4.zhimg.com\u002Fd4cacfb9fb4cf1dd53970e_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:39,&likesCount&:132},&&:{&title&:&资源丰富的时代,你为什么不快乐?&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E更多选择,更多欢乐,是麦当劳(误,应为我们)的常识。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E现代社会提供了充裕的选择,但在效率、幸福感方面,更多的选择,不一定是好事。\u003C\u002Fp\u003E\u003Cp\u003E先来讲个故事,故事的主角是你,是我,是多数忙碌的有为青中老年人。在你精力不那么充沛的时候,有段30分钟的闲暇时间,时间不长不短,用来刷朋友圈有点浪费,看一部电影又有点不够。你开始玩手机,手机上有很多的App、游戏、电影和书籍,都是你之前攒下来,希望用来消磨空闲时光。\u003C\u002Fp\u003E\u003Cp\u003E你先点开了一本艰涩的书,嗯,读书使人进步,你一直是一个努力上进的人。看了几页,有点读不下去,心里有个小恶魔在说,已经读了几页,打败了95%的小伙伴了。于是你得到了Moral Licensing(道德许可)【尾注1】,大拇指不由自主按下了home键,回到主屏。\u003C\u002Fp\u003E\u003Cp\u003E你随手又点开了电影app,这里已经下载了3-4部离线视频,随时可以看,但是都不是特别想看,最好看的已经看过,剩下的,都是二线的鸡肋电影,可看可不看。况且时间不长不短,看不完一部电影,也很尴尬。\u003C\u002Fp\u003E\u003Cp\u003E还是玩玩游戏吧,正好前些天装了一堆新游戏,准备有空玩呢。一眼扫过去,似乎没什么想玩的,但还是玩一下吧,你劝自己,闲着也是闲着。点开一个游戏,我靠这个新手指引怎么这么长啊,当我白痴啊。你按下Home,不让它有机会再次表现,顺手打开另一个游戏,咦,这个游戏好像画面不错,玩法也挺有意思,但我只有20分钟时间了,下次有时间专心玩一下这个游戏。\u003C\u002Fp\u003E\u003Cp\u003E游戏也没得玩了,要么是不想点开,要么是点开玩了不对胃口,要么是看上去还不错,但时间不够认真玩。要不关心一下朋友吧,你点开微信,开始翻朋友圈。小A的微商,小B的晒娃,小C的旅游,小D的时事,小E的自拍,小F的食物照,老爸的养生文,一不留神就从手机中漫出,争夺着你的注意力,加重着你的烦躁。\u003C\u002Fp\u003E\u003Cp\u003E你真心为每个朋友的不幸而高兴,但更多晒幸福的朋友,却让你感觉到了淡淡的忧伤。还是刷点公众号吧,好歹也算能学点东西。于是你点开了鸡血公众号,开始看高质量的鸡汤文,一边看,一边在想,这篇正在读的文章很有价值, 但隔壁papi酱公众号更新了。一番思量,想起这30分钟很快就要过去了,既没有学到什么,又没有玩好,你很烦躁。你不是励志要做一个高尚的人,励志要脱离低级趣味吗?喝这碗励志鸡汤,才是当下最重要的事情啊,你眼神变得坚毅,仿佛看见了自己被鸡汤激励的高潮迭起,走向远大前程。你做出了最终的决定,坚信这个决定是正确的,你关掉了这鸡汤文,点开了papi酱公众号,愉快地度过了最后五分钟。\u003C\u002Fp\u003E\u003Cp\u003E上述案例里,大量选择带来了一次又一次的状态切换,最终貌似做了很多却又一事无成。负面影响在于:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E\u003Cb\u003E初次选择的焦虑\u003C\u002Fb\u003E:N个选项各有各的好处,到底选哪个呢?选择,其实也是消耗我们公共意志力Pool的一个重要因素。\u003C\u002Fli\u003E\u003Cli\u003E\u003Cb\u003E选择过后的反悔\u003C\u002Fb\u003E:比如上述案例中阅读公众号,一边在阅读某篇文章,一边记挂着Papi酱的视频,无法集中精力在当下,不停纠结是否要退回去选另一个选项。\u003C\u002Fli\u003E\u003Cli\u003E\u003Cb\u003E选择切换带来的高效错觉\u003C\u002Fb\u003E:比如你来回在多个邮件中切换,没有处理任何一个,反而觉得自己似乎做了很多工作。你在公众号里面随意浏览阅读,来回选择不同文章,没有认真看完任何一篇,但感觉上似乎看了很多东西。\u003C\u002Fli\u003E\u003Cli\u003E\u003Cb\u003E选择多样化造成了记忆负担:\u003C\u002Fb\u003E我想看某个电影,上次离线下载在App里面的,但到底是哪一个App呢?往往需要找半天才能找到。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E也就是说,选项的多余,在一定程度上浪费了我们的精力,让我们焦虑,却没有带来进一步的收益。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E适度\u003C\u002Fb\u003E的选择多样化,才能让我们更幸福、更高效。为了达成这一目的,也许\u003Cb\u003E更主动减少自己的选择可能性\u003C\u002Fb\u003E,是一个好方法。\u003C\u002Fp\u003E\u003Cp\u003E以手机使用举例:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E没用的App一律删掉,不要让自己有机会看见这些App,即使不会去点开这些App,依然让你分心,而且会妨碍你更快速找到自己想要的东西。\u003C\u002Fli\u003E\u003Cli\u003E很久没有点开过的App,仔细想想你是不是还需要它,不需要的话参考上一条。\u003C\u002Fli\u003E\u003Cli\u003E短期不使用的App可以删掉,比如晓松奇谈这样的节目,我是攒一批一起看的。那么在养节目时,就可以大胆把爱奇艺删掉,节目养肥了再装回来好了。如果忘了怎么办呢?忘了更好啊,本来就是要减压,忘了不就少一件要做的事情吗?\u003C\u002Fli\u003E\u003Cli\u003E同类的App留一个就好了。比如以前自由行的旅行,为了做功课,装了N个旅行类的App,TripAdvisor,穷游网,蚂蜂窝,再带本Lonely Planet,还在网页上搜一堆资料,做笔记,存在Evernote里面。这带来了选择焦虑,还带来了很高的记忆成本。经常在度假村里百无聊赖,想起在哪里看见过一个好玩的地方或是好的餐馆,于是在各个App里面反复找,每个App使用习惯又不一样,找10多分钟没找到,都快精分了。现在自由行,就一个TripAdvisor,搞定一切,虽然可能会错过点什么,但是旅行确实是更美好了些。\u003C\u002Fli\u003E\u003Cli\u003E对于内容类的App,比如阅读软件、视频软件、音乐软件,由于很多内容有独占性,可能不得不全装上,那么我一定把最常用的放在外面,其他全收到二级目录夹里面。保证大多数时间,不用深思熟虑,就能打开最常用的App。哪个App最近常常看,就弄到一级目录,换掉原来在一级目录的软件。\u003C\u002Fli\u003E\u003Cli\u003E对于内容类App的另一个注意点,就是不要无节制下载离线内容或者收藏想看内容。不是说手机有空余容量、资源是免费的、网络流量不用浪费,就需要下载更多,你的精力是有限的。给自己定点纪律,只下载特别需要的内容,只下载当前在看的书。于是当我打开了kindle软件,就只有3-4本书,我完全不用陷入选择焦虑,随便点开一本,都是想看的。Less is more,多少人,买了这辈子都看不完的书,全部下载到App里,仿佛拥有了世界。每次打开App看见满屏的书,先焦虑,这辈子没希望读完了,再自责,我真是不努力啊,然后精分,看书的时候心神不宁,心想好久没有翻过另一本书了,它会不会不高兴啊?看完一本换一本,生活变得更简单。那些买好的书,放在云端就好了,如果时间长了,遗忘了,就更好,它本来就不是你想看的嘛,你的潜意识已经在小庆幸了。\u003C\u002Fli\u003E\u003Cli\u003E公众号、email订阅、rss订阅,能删就删,你没有精力看完所有的,克制自己的好奇心,世界信息如此繁多,\u003Cb\u003E人生只是一条细细的时间线,你注定要错过绝大多数风景\u003C\u002Fb\u003E。只订阅真正需要的,你缺的是精力,而不是内容。看完了怎么办?看完了就发发呆啊,你还记得上次发呆是什么时候吗?\u003C\u002Fli\u003E\u003Cli\u003E一些参考性的App,不方便马上删掉,比如我开发游戏,体验过的一些有价值的游戏,需要经常拿出来看看,或者和别人讨论的时候引用。或者有些内容,不需要你做任何action,只是存档的,将来通过搜索来查询的。那么就弄几个目录,把这些东西塞到看不见的角落。需要的时候,用搜索功能,自然能找回来。\u003C\u002Fli\u003E\u003Cli\u003E对自己狠一点,经常过一遍App,大胆删,反正云上都有。心情好的时候删几个,感觉世界都在对你微笑;心情坏的时候删几个,感受一下对App的绝对控制。今天,你删了App没有?\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E非常重要的一点是,在这个过程中,你没有损失什么,各类App和资源,都和你的账号绑定,后期都可以再下载回来。你失去的是锁链,赢得的却是世界。\u003C\u002Fp\u003E\u003Cp\u003E当做完这些以后,手机精简了很多,解锁屏幕后能做的事情少而精,从10个App里面做选择,和从10页App里面做选择,难度是完全不同的。当我决定看书,点开App,就只有那几本正在看的书,我要考虑的,更多是我现在想不想看书,而不是看哪本书。反正不删掉一本,就不另外下载一本,给自己的纪律约束,会减少不必要的纠结。\u003C\u002Fp\u003E\u003Cp\u003E生活中的方方面面,都可以用类似的手段精简。工作不高兴?那就断了自己的退路,对老板拍个桌子大吼几句,然后你就可以去结工资获得内心的圆满;钱太多可以做的事情太多,不知如何选择?那你就全部打赏我,我来帮忙花;女朋友太多,不知选哪个结婚?那你就随便翻个牌子,先结了婚再说,反正离婚也不贵。\u003Cb\u003E世上哪有什么不甘的人生,人间处处都是不敢的选择\u003C\u002Fb\u003E。【这一段似乎有哪里不太对。。。】\u003C\u002Fp\u003E\u003Cp\u003E我们这样的青中老年人,都是从相对物资比较匮乏的时代走来,天生习惯于资源的稀缺,为了满足安全感,本能希望囤积更多,给自己更多的选择。\u003C\u002Fp\u003E\u003Cp\u003E然而时代变化太快,现在稀缺的已经不是资源,而是注意力了,为了满足注意力,我们应该考虑用更严格的筛选,\u003Cb\u003E快速减少自己的选择可能性\u003C\u002Fb\u003E,这样才能充分利用好我们的稀缺的注意力。\u003C\u002Fp\u003E\u003Cp\u003E更少选择,更多欢乐~~~~尽在麦当劳。\u003C\u002Fp\u003E\u003Cp\u003EPS1. 写完这篇,我又打开了手机,默默删除了10多个App。\u003C\u002Fp\u003E\u003Cp\u003EPS2. 在生活中,更少纠结的终极秘籍,详见《断舍离》\u003C\u002Fp\u003E\u003Cp\u003E尾注1:\u003C\u002Fp\u003E\u003Cp\u003E道德授权,行为心理学的一个概念。 \u003C\u002Fp\u003E\u003Cp\u003E简短解释:做了有些事后,会让自己产生积极向上的正面情绪,然后你就会更放纵一点,纵容自己做一些不那么积极的事情。比如减肥的过程中,吃了一天的草(色拉或水果),得到了良好的自我感觉,于是想小小慰劳自己一下,然后就来了个加大号的麦当劳汉堡+薯条+垃圾食品可乐打包带走。这个更放纵自己的想法,就是因为做了好的行为以后产生了道德授权。\u003C\u002Fp\u003E\u003Cp\u003E中等长度解释: \u003Ca href=\&http:\u002F\u002Fwww.pickthebrain.com\u002Fblog\u002Fmoral-licensing-how-being-good-can-make-you-bad\u002F\& class=\&\&\u003Ehttp:\u002F\u002Fwww.pickthebrain.com\u002Fblog\u002Fmoral-licensing-how-being-good-can-make-you-bad\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E完整解释:《The Willpower Instinct - How Self-Control Works, Why It Matters, and What You Can Do to Get More of It》 ?\u003C\u002Fp\u003E&,&updated&:new Date(&T13:28:27.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:63,&likeCount&:393,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T21:28:27+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002F584cc3b85fd9ff212da769_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:63,&likesCount&:393},&&:{&title&:&游戏程序员成长编年史(1)&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E前些天和HR团队一起录了一个校园招聘实习生相关的节目,聊聊游戏程序员做些什么,如何准备面试,有什么建议。聊得不够尽兴,觉得还是写几篇文章展开说一下会比较好。本文不涉及到具体技术,更多可以认为是一个游戏程序员的职业素养培养。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E从何说起呢?先从入行开始聊聊个人经历吧。这篇讲讲天时地利人和,那些个人成长的种种外因,希望对即将求职的学生有些帮助。后续系列会逐渐聊到成长,会对有经验的开发者有帮助。。\u003C\u002Fp\u003E\u003Cp\u003E先说说天时,也就是时机啊命运啊这些玄幻的东西。\u003C\u002Fp\u003E\u003Cp\u003E我们那一批游戏开发者是比较幸运的,在国内游戏行业成熟前,从外企接触到了先进的开发技术,参与了很多一流项目的开发,培养了能力。又在国内游戏商务模式成熟、技术发展后加入了国内企业,能真正为游戏行业做点事。\u003C\u002Fp\u003E\u003Cp\u003E我在2000年加入了游戏开发行业,当时国内游戏业还没有找到方向,单机游戏盗版多,口碑不佳,仅存的几家公司苦苦撑着国产游戏的大旗,消费着玩家的情怀。台湾公司在那时已经给我们带来了多年的快乐,但3D游戏领域一直没有积累。\u003C\u002Fp\u003E\u003Cp\u003E日本游戏行业逐渐开始衰退,由于过度轻视技术的力量,日本厂商在新引擎新技术的应用上相当的保守。时至今日,他们依然有着超一流的美术和策划能力,但是落后的工具链和产能,很难支撑起大型游戏的开发。日企还在举步维艰的转型,一如他们的疲弱的经济发展。\u003C\u002Fp\u003E\u003Cp\u003E而欧美游戏,已经蓄势待发。3D游戏在欧美开始蓬勃发展,不知不觉间发现,他们有着更开放和前沿的技术理念,稳扎稳打,逐渐把技术优势转化成高效的流程,并配合硬件高速发展的趋势,在游戏引擎、中间件等诸多领域有了突破性的进展,逐渐带动了全行业的发展,慢慢超越了日系游戏。\u003C\u002Fp\u003E\u003Cp\u003E最后一股力量,韩国的游戏,尚未崛起,还在等待网游浪潮,默默蓄力,冷冷旁观者行业大势的交替,看着欧美接过了游戏技术发展的大旗。\u003C\u002Fp\u003E\u003Cp\u003E我的运气不错,拿了日本公司的offer,也拿了欧美公司的offer,犹豫再三,还是选择了欧美公司。看穿业界趋势、做出明智选择的并不是我,而是欧美公司offer高了点。。。\u003C\u002Fp\u003E\u003Cp\u003E多年以后回头再看,不由感慨万千。日系企业在技术上的全面衰落是不争的事实,即使画面依然华丽,策划依然惊艳。\u003C\u002Fp\u003E\u003Cp\u003E日企对于技术的保密,做得相当到位,即使是对自己企业的中国员工,这点上,日企的格局远不如欧美企业。曾在很多年后面试过一些日企出来的员工,发现他们做的项目,都没有接触到核心代码,游戏性最核心的那一部分,是日本公司写完,编译好,发过来的lib。再好的人才,没有在一流项目中得到锻炼机会,成长会很受限。\u003C\u002Fp\u003E\u003Cp\u003E之后在行业摸爬滚打更多的年头,发现日企的技术保密有点过了。比如合作的项目,资源和代码也会防着合作对象,逼急了,就说自己关键部分的代码没了... 游戏行业的分享风气一贯是不错的,GDC等会议,欧美企业大量分享自己的前沿技术,日企也会参加,可是分享的含金量远远不如欧美企业。\u003C\u002Fp\u003E\u003Cp\u003E多年以后,职业发展不算太顺利,朋友开玩笑的和我说,你职业生涯的每一次选择,都会把你带入更大的困境,每一次都会选错。但至少在2000年的时候,我的选择是对的。\u003C\u002Fp\u003E\u003Cp\u003E合适的时间点,加入了代表游戏行业趋势的欧美企业,此之为天时。\u003C\u002Fp\u003E\u003Cp\u003E再看看地利。\u003C\u002Fp\u003E\u003Cp\u003EUBISOFT当年还是一个专做小可爱游戏(比如雷曼)的公司。老板在某年的年会上,说我们要在5年里面成为世界游戏公司5强,当时感觉一头黑线,心中一沉,觉得是不是要发不出工资了,先画个饼给大家。没想到后来还真做到了。\u003C\u002Fp\u003E\u003Cp\u003E在一个快速崛起的公司内工作,是一件非常幸福的事情。我想,每一个立志成长的程序员,都应该在合适的阶段,参与一些真正一流的大型项目。我有个比方,写一万个Hello world的小程序,虽然有了代码量,但你成不了一个优秀的程序员。只有在大项目中工作,才能体会到那些挣扎和纠结,才能在种种技术中做艰难的选型,才有人逼着你提高代码质量,优化游戏性能。所有这些高标准和严要求,都会在你今后的职业生涯中,让你受益匪浅。\u003C\u002Fp\u003E\u003Cp\u003E我们做项目,即使是国外扔过来的移植项目,也能看见所有的源码,通过研究掌握所有的核心知识,提高自身的能力。同时UBISOFT自身也在飞速的发展,很快做出了技术一流的游戏,参与到这些项目,帮助我们更好的了解游戏开发。在2000年之前,我们已经有能力做出一流的3D游戏,当时国内好多号称游戏行业的黄埔军校的民企,应该还没有创立吧。\u003C\u002Fp\u003E\u003Cp\u003E一方面苦修内功,一方面也有了开阔眼界的机会。我们成为了国内第一批接触到Unreal引擎的开发者。我大约在2001年就开始接触Unreal引擎,它的设计思路,在当年来看是相当超前的,对我很多年后的开发都产生了深远的影响。应景说一句,Unreal引擎的缔造者,Tim Sweeney,获得了今年GDC的终身成就奖,也是对他开创了一个通用游戏引擎时代的肯定。\u003C\u002Fp\u003E\u003Cp\u003E在这样一个公司,我想说的就是,即使你不是一个上进的人,这一堆高端项目做下来,顺着行业大势,你也会得到极大的技术成长。\u003C\u002Fp\u003E\u003Cp\u003E进入了对的公司,这是我说的地利。\u003C\u002Fp\u003E\u003Cp\u003E最后是人和。\u003C\u002Fp\u003E\u003Cp\u003E怎么评价我的那些同事们呢?时光倾向于粉饰和美化所有不快,把美好的记忆都留在脑海,经过这么多年,我不知道我的回忆是不是还准确,但记忆中的同事们,从各个角度来看,的确都是极其优秀的。\u003C\u002Fp\u003E\u003Cp\u003E不知道为什么公司的第一批员工能力如此的强,他们奠定了UBISOFT Shanghai最初的技术基础。也许,好的项目塑造员工,好的员工塑造项目,本就分不清、道不明。\u003C\u002Fp\u003E\u003Cp\u003EUBISOFT的技术人员,都本份的热衷于技术,公司内部的政治较少,大家也没有太多官本位的想法。没有什么固定的Leader,你有这个能力了,正好有项目需要leader,你就去带团队,结束一个项目,如果别的项目要帮忙,就滚过去帮忙。Leader轮流做,不多一分工资,反多了不少责任。\u003C\u002Fp\u003E\u003Cp\u003E这样一个单纯环境下,加上遇到了那几年游戏开发技术快速发展,让程序员们无暇他顾,把所有的精力都投入了研究代码中,没有人担心什么30岁以后我该去干嘛,也不操心34岁会不会被强行辞退,代码中自有精彩的世界等待发掘。不知不觉,大多数人都过了30门槛,还在安心、快乐的编码。\u003C\u002Fp\u003E\u003Cp\u003E很高兴和你们一起共事过。\u003C\u002Fp\u003E\u003Cp\u003E良好的外因,是个人能得到成长的保障。我的个人经历,在17年后的现在,未必有多大的仿效价值,但有些理念,是可以参考的。\u003C\u002Fp\u003E\u003Cp\u003E从天时角度来看,这无疑是一个好的时代,中国的游戏产业已经真正崛起,而我在当年加入游戏行业,还要担心这一行做几年会不会就夕阳了。国内游戏公司在商业模式和营收上都对传统游戏强国啪啪打脸,我们缺的,只不过是一个好游戏,这正是你们发挥的机会。万事俱备,就差一个好游戏啦\u003C\u002Fp\u003E\u003Cp\u003E地利角度,你还要看看,想想,再找找。一个好的公司,对你的职业化,对你的技术视野,对你的人脉建立,有至关重要的结论。这不是高考,选错了,过两年再选一次好了。但是那些养成的坏习惯,错误的观念,会出卖你,会拖累你。加入大的公司,留心公司对技术开发的重视程度;参加好的项目,有足够大的规模,足够复杂的技术;注意力放在个人成长,而不是工资上。\u003C\u002Fp\u003E\u003Cp\u003E人和角度,多关注一下你的面试官,他做过什么,他有些什么见识?他做你的leader,你能不能从他身上学到东西?别被大公司光环遮蔽视野,大公司也有SB团队,遇到一个差的团队,一样耽误你的成长。留心文化氛围,大家在内斗,还是在互助?团队怎么做技术积累?先别幻想着自己能改变世界,大多数人不具备这样的能力,第一份工作,是去学习的。你选择去什么团队,是一次冒险的投资,代表你决定了自己想要变成什么样的人。想变卓越和优秀,生活不能如你所愿;想变SB,分分钟成全你。。。\u003C\u002Fp\u003E\u003Cp\u003E先讲这些吧,希望每位同学,都能找到心仪的实习岗位,虽然我也知道这是绝对不可能的事。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E全系列目录:\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(1)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(2)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(3)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(4)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(5)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(6)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(7)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E另外,游戏开发门槛下降和数字化发行的崛起,让独立游戏也有了走上历史舞台的机会。有才华的开发者,并不缺乏起舞的舞台。我团队内的三个妹子做的小游戏正在绿光,有steam账号的同学请帮忙点个赞,谢谢大家支持:\u003Ca href=\&http:\u002F\u002Fsteamcommunity.com\u002Fsharedfiles\u002Ffiledetails\u002F?id=A%0A%0A\&\u003EShadow Mist\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cimg src=\&v2-b5ade79a6a5ae68e561f40.png\& data-rawwidth=\&1266\& data-rawheight=\&702\&\u003E\u003Cimg src=\&v2-bf985d626db4c049d16c.png\& data-rawwidth=\&1266\& data-rawheight=\&708\&\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E题图来自FreeStocks\u003C\u002Fp\u003E&,&updated&:new Date(&T14:04:09.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:45,&likeCount&:247,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T22:04:09+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-faa8a1fd4e51fbcb6e1ffb3_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:45,&likesCount&:247},&&:{&title&:&游戏程序员成长编年史(2)&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E时光飞逝,一转眼上次更新已经是3个月之前。写这个系列的初衷,本来是希望给实习生招聘添砖加瓦。一拖就快到暑假了,所以改个目标,打算给9-10月份的毕业生招聘做点贡献。\u003C\u002Fp\u003E\u003Cp\u003E上回我们说的成长有很多外因,好的时机、好的公司、好的同事,会让你的成长更顺利。\u003C\u002Fp\u003E\u003Cp\u003E这次我们聊聊刚入行的初学者该怎么提升自己,用个流行的说法,咱们来谈点观念,理清概念,才能更好地成长。\u003C\u002Fp\u003E\u003Ch2\u003E提高业务能力\u003C\u002Fh2\u003E\u003Cp\u003E对初学者,入行后最重要的肯定是抓紧提高自己的业务能力。对校招渠道入职的新员工,公司的期望一般不高,能干活,有潜力即可。新员工的第一要务,当然是要迅速上手。在一个中小项目里,上手一般不是太大的难题。我们看看UI开发的例子。\u003C\u002Fp\u003E\u003Cp\u003E初学者的第一份工作,经常会是简单的逻辑、菜单、UI等等,它们共同的特点是不难但很繁琐,一般只要照着前人的工作,依样画葫芦,就能做得八九不离十。在这个过程中,新人可以很好锻炼自己在软件工程方面的实践,学习如何同团队成员配合,如何和跨领域的策划美术交流,尽快熟悉游戏的设计、开发、构建、测试等流程。如果项目快上线了,那还能顺便锻炼身体,加班熬夜。\u003C\u002Fp\u003E\u003Cp\u003E关于做UI和逻辑,初学者常常抱怨,没有技术深度,不出彩,但特别繁琐,做起来很累。属于做好了没功劳,做砸了要背锅,摧残人性,让人痛不欲生。这也是一个老生常谈,简单的工作也需要有人做,如果有心,在UI开发里面也可以找到个人的积累和发展,有几个事情不妨尝试一下:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E提高自己的效率:做得更好、更快、更少Bug。有了效率,就能提高质量。以前见过新的同事,学有余力,做一个功能,往往会自己发挥,做两三个不同版本让leader挑选,这样的同学很快就能脱颖而出。\u003C\u002Fli\u003E\u003Cli\u003E提高程序团队的效率:看看UI从设计、开发到验收,有什么流程可以改进,提高功能开发效率。Leader或者其他Senior程序员往往有其他领域要关心,没精力关心这一块。让领导放心不就是我们职场应尽的义务么,在这个子领域,初学者也有机会发挥的。或者你也可以看看是不是能做通用控件,让整个UI团队效率更高。通用控件由于要考虑方方面面的需求,开发有一定的难度,能很好地提高个人的能力。\u003C\u002Fli\u003E\u003Cli\u003E提高项目整体效率:UI和逻辑上更多应用数据驱动,合理架构,减少硬编码,把一部分UI编码工作变成配置工作,开放给策划,既减少了工作量,策划也会觉得更灵活。分开逻辑和表现代码,便于调整功能,也方便写单元测试。做点力所能及的重构,关注一下UI的内存和性能,别给整个项目增加不必要的风险,这都是可以尝试的。\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E无论在什么职业中,业务能力总是最重要的。有了业务能力,才能赢得大家的尊重。即使第一份工作内容并没那么有深度,也要认真做好它,从中学习,快速成长。\u003C\u002Fp\u003E\u003Ch2\u003E持续学习,找到unbroken time\u003C\u002Fh2\u003E\u003Cp\u003E本职工作做好之后,千万别满足。我想聊的下一个话题,就是关于持续学习。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E程序员族群,早就身处在一个终身学习的时代,入行就是焦虑的开始,持续的学习,不能保证百尺竿头,但至少能回避逆水行舟的惶恐。\u003C\u002Fp\u003E\u003Cp\u003E虽说程序员都在学习,学习的质量差别还是比较大的。相当多的程序员并没有良好的学习习惯,忽略了提前储备知识的过程,只是被动的学习如何解决迫在眉睫的问题,掌握明天上班要用的技能。学习和积累的主题以后单独展开,这里只说一个小习惯,也是个人效率里一个很重要的概念,找到你的不被打断的时间。\u003C\u002Fp\u003E\u003Cp\u003E程序相关知识往往烧脑,没有沉下心,便不能理解。一整段不被打扰的时间,是必须的,但碎片化的时代,整段时间早被手机的滚滚洪流碾得粉碎,大家前仆后继,把完整时间碎片化,刷刷朋友圈,回个微信,收个邮件,一个小时就过去了。\u003C\u002Fp\u003E\u003Cp\u003E我们要做的,是尽量给自己创造条件,空出不受打扰的时间,用个人的意志抵制碎片化。\u003C\u002Fp\u003E\u003Cp\u003E我工作早年使用的是公交车等座位大法。反向坐公交车到终点站,排个座位,上车,拿本书慢慢看。那年代心还很静,手机还被叫做大哥大,没什么车上娱乐。快快翻过看得懂的页,看不懂的低头想想,每个工作日有那么一个小时可以静心阅读,不知不觉几年间啃掉了很多艰涩难懂的大部头。\u003C\u002Fp\u003E\u003Cp\u003E后来开车上下班就悲剧了,尝试了各种方法,但还是没法专心阅读,车上的时间只能听听Podcast。要深度学习,要省出不被打扰的时间。实践下来最有效的还是早到公司法。早上提前30分钟从家出发,路上车没那么堵,往往还可以省出15分钟路上的时间。到了公司也很清静,千万不要收邮件,也别去倒茶,要警惕碎片化陷阱。赶紧拿上要看的书,离开你的电脑,离开你的手机,去会议室学习。\u003C\u002Fp\u003E\u003Cp\u003E另一些能用的方法包括早起法,晚睡法,打出租车上下班法,一个人去很贵很清静的馆子吃饭法等等,大家可以自行发挥。有了完整的不被打扰的时间,可以深度储备业务知识,可以横向扫描行业进展,可以回顾工作得失,可以总结输出知识。虽然每天几十分钟不起眼,但如果能坚持几年的话,你一定能看见自己的成长。\u003C\u002Fp\u003E\u003Ch2\u003E信息枢纽(Info Hub)\u003C\u002Fh2\u003E\u003Cp\u003E下一个对我很有帮助的观念,是需要努力成为团队中信息的枢纽。\u003C\u002Fp\u003E\u003Cp\u003E信息枢纽是我的一个生造的概念,灵感来源于HUB(集线器)。网络中的集线器,汇集了所有的信息,再广播给其他设备。对我们信息从业人员来说,你做好了本职业务,积累了广泛的跨领域知识后,应该考虑如何逐渐让自己变成团队内开发知识沟通的中心,让自己在团队中更不可替代。\u003C\u002Fp\u003E\u003Cp\u003E回到我的个人经历,我在2001年作为公司前几批开发人员,接触Unreal2引擎。当时的项目使用Unreal2,我做逻辑,做网络对战,有了持续的积累后,我很快在Unreal的逻辑开发积累了丰富经验。虽然在整体开发经验方面我还是比不上其他开发者,但在Unreal逻辑这一块我比较专业。\u003C\u002Fp\u003E\u003Cp\u003E我在公司内做了一些相关知识的分享,然后在后续的项目里面坚持到处看看,帮助其他同事debug,或者介绍相关的模块,让他们也能快速上手。\u003C\u002Fp\u003E\u003Cp\u003E逐渐的,我发现了一些有趣的变化。很多同事碰到这个领域的知识,有问题都会先来咨询我。当然这些问题我也并不是全部能回答的,我择其易者答之,其不易者学之。因为手头工作也很多,对那些不了解的问题,我通常会说让我研究一下,抽点时间看看能不能解决,然后再回复同事。帮助大家次数多了,我就自然成为了Info Hub。\u003C\u002Fp\u003E\u003Cp\u003E成为信息枢纽以后,对团队的好处显而易见,你润滑了团队,顺畅了知识通路,自身价值变得更重要。对个人的好处不那么明显,却更重要。各类信息在你这里集结,回答已知问题可以巩固你的知识,研究未知问题可以扩展你的边界,信息在你身边流过,自然可以滋润你的认知。变成更好的自己,不就是我们一直的追求?\u003C\u002Fp\u003E\u003Cp\u003E当然成为Info Hub并不容易,需要个人努力,也需要一些机缘巧合。新项目、新技术的早期拓荒者,很有可能成为信息枢纽。但新项目和技术有一定的风险,不是新的就是好的,新方向会失败,会毁了你统治信息的野望。与我而言,在2001年这个节点,Unreal也许就是一个新方向,在2001年后的八年里,熟悉Unreal给我带来了巨大的回报,甚至很多影响点点滴滴影响了开发自己引擎。\u003C\u002Fp\u003E\u003Cp\u003E如果运气并不那么好,研究了没落的技术,参与了失败的项目怎么办?事情没有你想象的那么糟糕。没落的技术,即将无人问津,但它是细分领域的知识,领域越窄,越少人懂,越方便你成为专家。总结一下这个技术为什么失败,横向对比一下其他成功技术,谈谈趋势,都能让你自己提高。至于失败的项目,就更无所谓。项目的失败,意味着公司或者团队损失了机会成本,但项目中的每一个人,确确实实得到了成长,吃一堑就能长一智。时常总结,在失败中找到自己的成长,才是我们要关注的。我刚开始用Unreal,第一个项目是被公司砍掉的,也没有任何人有把握说,Unreal将来能得到巨大的应用,但积累在那里,说不定哪天会给你带来丰厚的回报。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E题图来自PixaBay\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E全系列目录:\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(1)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(2)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(3)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(4)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(5)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(6)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(7)\u003C\u002Fa\u003E\u003C\u002Fp\u003E&,&updated&:new Date(&T14:45:50.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:27,&likeCount&:199,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T22:45:50+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-002d6faf2ce_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:27,&likesCount&:199},&&:{&title&:&游戏程序员成长编年史(3)&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E接着上一篇,再来谈一个对初学者成长有帮助的概念。\u003C\u002Fp\u003E\u003Ch2\u003E跨界和好奇\u003C\u002Fh2\u003E\u003Cp\u003E如果让我总结怎么让自己变得更有价值,跨界无疑是一个非常重要的关键字。\u003C\u002Fp\u003E\u003Cp\u003E所谓的跨界,是指拥有多个和本专业不同领域的开发知识,并可以灵活运用在开发过程中。当你有了跨界的能力,就可以在开发和交流中,利用跨领域的知识,帮助团队更好的沟通、设计、实现功能。\u003C\u002Fp\u003E\u003Cp\u003E跨界的意义有几个,重要性依次递增,增加沟通效率,提升产品质量,超越已有认知。我们分别展开讨论。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E增加沟通效率\u003C\u002Fb\u003E是最容易理解的,游戏开发需要多工种合作,大家说着不一样的行话,做着不一样的工作。工种和工种之间,有壁垒,阻碍了交流。拥有跨界的知识,逻辑程序员了解一点关卡策划的工作,渲染程序员懂一点技术美术的工具,引擎程序员接手一下工具程序员的模块,这些跨界的认知,都能很好提高团队沟通效率,帮助不同职能同事更快的达成共识。拥有足够的跨界知识,沟通会更请准,也不用经常拉上其他同事一起讨论问题,减少沟通环节,降低沟通中的失真,就顺理成章了。人和人的信任,本就是从工作的合作细节开始,你会发现那些拥有跨界知识的同事,不知不觉间,就成了项目中中心,加薪升职赢取白富美,从此过上了幸福的生活。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E提升产品质量\u003C\u002Fb\u003E是下一个水到渠成的事情,当拥有了别的领域的知识,我们在设计和实现功能的时候,就可以考虑到用户的需求,把手头的工作做到更好。\u003C\u002Fp\u003E\u003Cblockquote\u003E举个简单例子说明一下。比如开发编辑器时,很常见的一个需求,就是编辑参数的界面,比如我们要调整一个游戏内物件的参数,最常见的做法,就是选中这个对象,弹出属性表单,可以调整参数。这个功能所有引擎都有,一般的实现方式是在引擎内表示对象参数的时候,对每一个参数有元信息描述,表示参数的类型、编辑方式、取值范围等等。属性表单弹出后只需要遍历这个对象的参数元信息,然后为每个可调整参数创建显示和编辑的控件即可。\u003Cbr\u003E有了基础功能,下一个诉求,是一个对象会有非常多的参数,不是所有参数都需要暴露给编辑器编辑,全部暴露出来反而降低开发效率,容易误操作。所以多数引擎一般在参数元信息加上标志,需要暴露的参数,才会被编辑器显示在属性表单内。\u003Cbr\u003E到目前为止一切都还好。但策划又提出新要求,同一个对象,在另一个特殊的编辑界面,也要调整参数,这次需要显示的参数,和普通界面需要暴露的参数不一样。这个需求的本质,就是针对同一套数据Model,定义多个不同的View。如果按照原有的元信息系统发展下去,我们要加上新的参数标志,说这些参数开放给另一个View。当View变多的时候,整个设计就会比较臃肿,每多一个不同的View,就需要修改Model的元信息,这个路径有点长,会动到已有的结构。这个思路有点不对,为什么不同的View,需要动到数据的Model呢?不同View的复杂性,就应该放在View里面啊。\u003Cbr\u003E当工具程序员设计参数元信息和属性表单的时候,如果能提前想到策划可能有这样的需求,那么设计角度就可以做点调整。不必通过在元信息上打标记,而是搜索的方式。 比如我们看Mac电脑上的Finder,它有智能文件夹,本质上就是一个组合的filter,用search来进行文件的筛选,不同的搜索,保存成智能文件夹,就可以快速便捷的归类文件。\u003Cbr\u003E同样,对我们的属性表单,我们也可以使用正则表达式来进行属性的筛选。这样针对不同的View,只需要定义不同的过滤表达式就可以了,正则表达式还可以数据驱动,策划要什么参数就改改配置文件就好了。正则表达式来定义View的内容,既强大,也精准。\u003C\u002Fblockquote\u003E\u003Cp\u003E所以当你拥有了跨界的知识,了解用户的需求,了解其他领域的巧妙设计,就有可能设计出更好的系统。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E超越已有认知\u003C\u002Fb\u003E是跨界更重要的好处,可以做出不同的设计,或更精简,或更高效,或更突破,或兼而有之。\u003C\u002Fp\u003E\u003Cp\u003E举几个例子,寻路问题是个搜索问题,可以用来计算最短路径,那我就可以用它来计算声音在室内的传播了;序列化不仅仅可以用在保存上,也可以用来做垃圾回收的标记,做文本数据和配置文件的打包和二进制化,做数据文件的压缩和加密,做项目废旧资源的标记和删除;谁说我们一定要在同一个进程里读写数据,为什么不在另一个进程里面统一读写数据,便于多开游戏进程可以共享读取的cache,也可以对并发的读取进行重新排序,降低磁盘寻道开销。\u003C\u002Fp\u003E\u003Cp\u003E既然跨界知识如此重要,如何来培养自己的跨界能力呢?我给的答案是好奇心,对技术有好奇,多看多问,多想多总结,自然就跨界了。\u003C\u002Fp\u003E\u003Cp\u003E初学者最重要的品质就是好奇心,帮助你探索未知的边缘。游戏开发的客户端技术,业务领域众多,我们简单细分一下,就可以分出逻辑、UI、工具、渲染、引擎、物理、音频、动画、AI、构建等等领域。相当多的方向,既广又深。再考虑到和周边业务团队接口,还需要对后台技术、美术技术、策划领域有一定的了解。对技术的好奇,可以帮助你加速跨越岗位之间的边界。试着放纵一下自己的好奇,完成本职工作之余,向对面的工作内容张望几眼。多看看,就懂了。\u003C\u002Fp\u003E\u003Cp\u003E我从业最初工作内容是UI逻辑,逐渐做了unreal引擎上的开发,先写脚本和逻辑,然后支持关卡策划做逻辑相关开发,工作之余,游戏crash时候,就顺便往脚本解释器里面捣鼓捣鼓,debug一下脚本编译器和解释器。引擎程序员和逻辑程序员之间并没有分明的泾渭,看几次,没啥学不会的,逐渐也就熟悉了相关模块,再逐渐拓展到引擎其他模块,哪里有问题,过去看几眼,不懂找高手问问。再不懂,放一下,职业生涯很长,现在不懂的,将来会懂,保持好奇,总会到彼岸。几年下来,也就把Unreal引擎方方面面磨了个透。\u003C\u002Fp\u003E\u003Cp\u003E任何一个大项目,大引擎,都是知识的宝库,不用舍近求远,认真做好手边的项目,就会成长。如果有幸能参与一流的项目中,成长速度会更快。我的职业生涯前几年在UBISOFT工作,参与了很多AAA项目,即使没有太多的主动学习,眼界和能力也能有很大的增长。如果没有机会参与高端项目,也不需要气馁。游戏技术领域的知识相当公开和透明,关注GDC以及其他开发会议,留心欧美新出版的技术书籍,定期扫一遍,就大致知道技术圈发生了些什么事情了,找个感兴趣的领域深入看进去,坚持几年,就会有很大的提高。\u003C\u002Fp\u003E\u003Ch2\u003E总结\u003C\u002Fh2\u003E\u003Cp\u003E总结一下这两篇写的一些观点。划一下重点,这几道是送分的必考题:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E初学者要专注提高专业能力,即使是简单的工作,也能提高自己的能力。\u003C\u002Fli\u003E\u003Cli\u003E培养自己对技术的好奇心,多看看,提升自己跨界的能力,对项目或者对自己都好。\u003C\u002Fli\u003E\u003Cli\u003E培养良好的习惯,找到不被打扰的时间段,持续学习。\u003C\u002Fli\u003E\u003Cli\u003E试图成为信息的集散地,帮助别人,才能帮助自己。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E题图来自Pixabay\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E全系列目录:\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(1)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(2)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(3)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(4)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(5)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(6)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E游戏程序员成长编年史(7)\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003C\u002Fp\u003E&,&updated&:new Date(&T14:02:32.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:7,&likeCount&:88,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T22:02:32+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-ada0fa701ff0701fe61cdb74_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:7,&likesCount&:88},&&:{&title&:&游戏程序员成长编年史(4)&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E前两篇讲了从Junior到Senior程序员的成长过程,现在谈谈转职。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E从我自己的工作经历来看,工作了5-6年以后,就遇到了技术上的瓶颈期。当我开发很久的逻辑和AI,也包括一部分网络对战模块,在几个不同项目中锻炼后,多数相关的细分领域都接触过了。我逐渐对这些技术提不起兴趣了,于是想转岗去做点引擎相关的事情。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E职场新人是一张白纸,有机会在不同领域换岗位。而工作几年的老人,常常有自己擅长的领域,不如小朋友可塑性强,且体力也不如

我要回帖

更多关于 朵拉游乐场 的文章

 

随机推荐