有太多的关于兄弟离开的歌了,我开始质疑起我玩游戏是为什么

游戏开发随笔游戏开发随笔聊聊游戏开发中的那些事,关于客户端技术和项目管理…关注专栏更多最新文章{&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&:&资源丰富的时代,你为什么不快乐?&,&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&:394,&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&:394},&&:{&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&:253,&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&:253},&&:{&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&:28,&likeCount&:202,&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&:28,&likesCount&:202},&&:{&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&:90,&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&:90},&&:{&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职场新人是一张白纸,有机会在不同领域换岗位。而工作几年的老人,常常有自己擅长的领域,不如小朋友可塑性强,且体力也不如年轻人。这时候要转新的岗位,就有一定的难度。常常看见很多人想做渲染、想做引擎,但却没有太多的知识储备。问他们为什么不提前准备,他们就说:工作很忙,没空学习渲染和引擎,但你不让我做一下,我没有经验,又怎么会有能力做好渲染和引擎呢?非常遗憾,这个逻辑是错的。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E这里有一个必须注意的地方。在转岗这个事情上,公司是\u003Cb\u003E不会为了你的理想和野心买单,他们只会为你的能力买单\u003C\u002Fb\u003E。我们把它翻译成人类的语言,就是公司一般不会仅仅因为你想转岗就让你转岗,只有你具备了新岗位需要的能力,才有可能让你转岗。举个例子进一步说明,职场潜规则里,如果有几方利益相关团队要推动一件事情,潜规则就是哪个团队受益多,哪个团队就会更主动推动这件事。你的小算盘是转个岗,学点新东西,公司想的是每个人安分做一颗螺丝钉,做好自己最擅长的事情,工作效率才高。双方利益有一定的冲突,这时候如果你表示,我已经具备新岗位的能力,对公司来说,只不过是把你这个螺丝钉换了一个位置,而不是重新在新岗位造一个螺丝钉出来,这样公司会容易接受得多。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E所以结论就是,想转岗,先自己学,能胜任了再去提。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E回到我的个人经历,由于参与的几个项目都是使用了Unreal,所以技术上有比较好的一致性。由于自己平时也比较重视跨界知识,引擎那一块基本也有一定的熟悉度。于是和领导提了一下想转做引擎的事情,领导说忙完这个项目就让你去搞引擎。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E很快找到了一个好机会,开始去Splinter Cell 4项目做引擎。接到的第一个任务,是独立把Unreal引擎移植到Xbox 360的Alpha版开发机上。当时接到任务,虎躯一震。Xbox360架构和PC不太一样,当时Epic Games官方也没有Xbox 360版本的UE可用,我们找了一个其他游戏Xbox360移植参考,但参考价值不大,因为Ubisoft喜欢深度定制引擎,Unreal 2的引擎部分已经被Splinter Cell组改得面目全非,估计连Tim Sweeney(Unreal引擎的爸爸)都认不出这是Unreal了。第三方的引擎移植无法直接参考。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E那就开始搞吧。拉了一个分支版本,二百万行代码,无从入手,先编译通过再说吧。我建立了Xbox 360的项目,开始编译,不停修改编译错误,一时搞不定的大问题,就先把整个模块注释掉,做好笔记以备后续修复。当时开发环境也比较差,Xbox 360编译器Bug还挺多,而且预编译头文件设置有bug,预编译头文件非常小,且无法通过参数扩大,这就导致大量代码无法放入预编译,偏偏Unreal的结构重度依赖预编译,我的代码编译速度极慢。编译的时候就只能看看文档,什么都做不了干着急。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E我没日没夜搞了1个多月都没有完全编译通过项目。。。每次开周会的时候,都觉得自己快死了,翻来覆去就只能汇报说自己还在和编译器搏斗。游戏引擎的前期移植,不比大规模开发,前期移植通常只能让很少的人参与,基本无法并行操作,你都编译不过,别人怎么插手。如果我搞不定,就要换一个人来搞,浪费很大。估计老板也是心里骂娘但嘴上不说,鼓励几句让我继续搞。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E心理压力是一方面,能力短板也是另一方面的问题。虽然我做了很多引擎技术的提前储备,真正面对整个引擎规模的移植,还是发现缺口不少。我在业余时间拼命补课,把不懂的东西学会,才能推进。但很快又碰到新问题,有些领域是Unreal专业领域的知识,并非通用知识,很难学习,也找不到人咨询,而且涉及到的面比较广,没有办法在短时间里面全部看透。这就需要我在\u003Cb\u003E信息不完备的情况下做技术决策\u003C\u002Fb\u003E,这个模块大致应该往什么方向做,如果出了问题怎么办,我可以怎么回溯。做一两个决策还好,但往往是一个决策套着一个决策,前后的技术决策有依赖关系,要回溯就要一起推翻。没有什么坚实落地的技术决策,就好像走在半空的索桥,每一次摇晃,都在动摇我信心的根基,做到后来都怀疑人生,觉得这活真不是人干的。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E好在终于还是编译通过了... 然后就是调试程序,要让引擎运行起来,哪怕没有渲染也不要紧,只要有主循环跑起来就好了。只有那样,更多的同事才能参与进来帮忙。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E后面断断续续又有了很多的障碍,Xbox 360的内存模型以及Alpha Kit的bug,序列化的Big Endian和Little Endian的区别,Fix function pipeline在xbox360里面完全被去除了,性能的问题等等,硬着头皮一一搞定,终于勉强在电视屏幕上画出点像素,虽然各种飞面,光照全错,一会就会crash,但至少把主循环跑起来了,当然也是基于很多不知道是正确还是错误的技术决策。先快速走通流程,比什么都重要,铺好了路,咱们的大部队就能一起来和我并肩作战啦。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E当时已经和主干的开发版本分开两个多月了,于是又花了2周来Merge最新的改动,整个开发团队那时候就有20多个程序员,几十个美术和10多个关卡策划疯狂的上传,Merge的过程也是非常不顺利。Merge了几轮,才勉强追上项目的进展。然后趁大家周末休息的时候,一口气上传了所有的改动,还要抓紧测试看看主干版本,带上了Xbox 360的代码,是不是还能编译,是不是还能正常运行。相关的工具也都需要简单测试一下。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E忙完这一切以后,自己有了非常大的变化。最重要的变化,是终于有了技术上的自信。觉得没什么自己搞不定的了,只要给我足够的时间。尼采说过,杀不死我的,只会让我更坚强。做过一个规模足够大的工作,在绝望里挣扎过,这样的经历非常能锻炼人。那几个月整天低头Coding,基本不用和别人说话,一坐就是一天,和编译器斗,和Xbox 360 Kit斗,和Unreal斗,经常陷入困境,也时不时会有突破,随时进入心流状态,收获自信和满足。现在回忆起来,那几个月也成为我技术历程中最大的一个飞跃。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E今后的很多工作中,有了这个自信,就开始敢在技术上决策,在团队里面,有些事情自己搞不定的话,别人也很难搞定,也就不再想太多。和团队也逐渐建立起了信任,大家就更愿意让我做决定。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E做到这一步,整个引擎勉强能跑,但没什么东西是正确的,渲染模块还是一团混沌,逻辑方面都没有正确工作,还需要艰苦的工作。后续还需要把我一路Rush过程中欠下的技术债一一偿还,把整个版本弄成Xbox360上可以顺利跑起来,再做架构调整,适应新主机的新架构,充分利用多核框架。2005年搞多核引擎框架,还是个高科技。很多可以做的,很多可以学习的。非常可惜,由于工作上的调整,我被调离了这个项目,去另一个FPS小项目做AI Leader。这个经历下篇再聊,主题就是从Senior程序到Leader的过程中,又有什么是重要的。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E快速总结一下本篇的中心思想:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E- \u003Cb\u003E公司不为你的野心买单,为你的能力买单\u003C\u002Fb\u003E。你想要什么,先让自己能配得上它。\u003C\u002Fp\u003E\u003Cp\u003E- \u003Cb\u003E经历过绝望挣扎,才能变得更强大\u003C\u002Fb\u003E,迎接挑战,建立你的技术自信。\u003C\u002Fp\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(&T15:29:37.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:17,&likeCount&:249,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T23:29:37+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-38e3da3757c1facc993f6_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:17,&likesCount&:249},&&:{&title&:&游戏程序员成长编年史(5)&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E上次聊到,好不容易转职,做了一阵子引擎移植,涨了很多经验,结果做了一半被公司调动 去做另一个项目的组长。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E技术专精到技术管理,并不是那么顺利。不是能做好技术攻关,就能做好技术管理。这一篇聊聊在这个过程中的收获和成长。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E我接手的团队大约有10人左右,在一个Unreal引擎开发的FPS项目中做AI逻辑。整个项目团队规模不到100人,程序团队就分了三组,引擎、网络和AI逻辑。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E新角色的定位,是一个冲在一线的技术管理职位。这也是我第一次做Leader。对我来说,摆在面前的难题有几个:团队融入问题,个人效率问题,大局观的问题。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E先要做的是团队融入。UBISOFT那段时间的人员流失不多,国内强力的网游公司不多,没竞争力,所以组长级别以上的都是熟人,合作多年,不存在什么问题。但组员就比较麻烦,多数都是新加入公司的,不知道能力。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E和软件开发一样,我融入方法是小步迭代,逐步了解团队成员的能力。对不熟悉的同事,分配一点简单的工作,了解能力的同事,可以领一点更困难的工作。然后定期跟进后续的,过一段时间差别就很明显了。如果把开发者能力作为Y轴,把积极性作为X轴的话,我们就可以构建四个象限,把开发者们一一对号入座:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E积极且能力强的,明显学有余力,保质保量完成工作,而且非常积极,主动来要新的任务\u003C\u002Fli\u003E\u003Cli\u003E积极但能力弱的,做得很努力,不是很能跟得上节奏,但也是非常投入\u003C\u002Fli\u003E\u003Cli\u003E不积极但能力强的,能比较快做完安排的任务,然后也不帮别人,也不来汇报,自己在角落happy\u003C\u002Fli\u003E\u003Cli\u003E有不积极且能力弱的,组里倒是没发现,也是万幸\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E了解了几类人,就可以分别用不同的形式管理。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E积极且能力强的,可以给更难的任务,让他放手去做,然后主动汇报进展即可,平时也不用太多催他,能搞定的自然能搞定,不能搞定的他也会提前汇报\u003C\u002Fli\u003E\u003Cli\u003E积极但能力弱的,给一些稍简单的任务,同时加强辅导,帮助他在技术上能提高,多回答他的问题,给他更好的个人发展方向。\u003C\u002Fli\u003E\u003Cli\u003E不积极但能力强的,是比较难处理的。任务可安排稍难的,但要特别注意回避那些需要多方沟通、模糊地带的任务,这类同学往往比较懒,不善于或者不愿意推动事情,经常会卡住。然后要多跟进,除了正常的daily\u002Fweekly的汇报,还要常常关心一下他的进展,让他了解到,Big brother is watching you\u003C\u002Fli\u003E\u003Cli\u003E不积极且能力弱的,试试能不能挽救,不行也只能放弃了\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E那怎么能准确的判断员工是哪种属性呢?新团队的磨合,其实就是一个彼此试探的过程。你做得好,就领更多的任务,我对你信任+1;你做砸了,我就给你更简单的任务,信任-1。主动积极汇报和领任务有印象分+1,看见你偷懒进度慢就印象分-1。细心观察一阵子,就很快有准确结论了。而且猜错也没有关系,这是一个持续调整和逼近的过程,这次错了,下次改回来就好了。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E这是一个主观判断,也许有些同事和你合作就是表现不好,有些同事和你工作就会有超常发挥。但没关系,管理就是一个比较主观的事情,在你的团队里,怎么用人还是由你来判断的。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E下一个问题是个人效率管理问题。之前做开发者,同一时刻需要跟进的事情并不是那么多,一个简单的todo list,或者往桌上贴点报事贴,基本就能把要关心的、要搞定的事情都跟踪起来了。做了Leader以后明显不一样,同时要关心很多事情,而且不同的事务,轻重缓急不同,时间属性不一样。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E怎么对任务进行合理的分类管理,是摆在面前的一个大问题。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E尝试了很多个人效率管理的手段,最后找到GTD系统,能满足我的需求,这是我的一个非常重要的Life Changer。我翻了国内外论坛的几千篇Mailing list,接触到各种奇奇怪怪的Life hack理念,尝试了几次,成功实践起这个流程,极大地改变了我的生活和工作。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E个人效率管理系统,本质上,是一个减压系统,降低你的焦虑,帮你跟进琐事,让你把精力聚焦在真正需要思考的事情,而不用担心又遗忘了什么承诺。很多人会觉得个人效率管理太麻烦,生活不就应该是自由自在的吗?我认同的却是,自律才能得到自由,个人效率管理是通向自律的一扇窗。对每一个认真对待生活和工作的职场人,应该要去了解一下适合自己的个人效率管理系统。GTD也许太庞大,太重度,不适合你,那就做个更简化的系统,很多理念是有价值的,当你知道了,实践了,就再也回不去原来那个纷乱无序的生活。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003EGTD系统就不展开说了,书籍、讨论非常多,也有很多以GTD为核心做了精简的管理系统。只提几个重要的观念:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E好的个人管理系统,可以帮助大脑减压,把对他人或对自己的承诺记下,就可以从脑中unload这些承诺,降低了记忆负担,真正可以做到Mind like water,关注手头工作。\u003C\u002Fli\u003E\u003Cli\u003Eto do list是有context的,本质上是为了减少使用list时候的无效精力开销。这个我模模糊糊也知道,但一直不知道如何合理分类,GTD给了非常好的示范,类似Errands、Waiting For列表,给很多不知如何分类的任务以最好的归宿,真正做到以尽可能低的成本,跟进尽可能多的事情。\u003C\u002Fli\u003E\u003Cli\u003Enext action是推进很多事情的关键,但凡执行一件事稍有阻碍,我们就可能拖延。分解next action可以降低这个阻碍。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E当然我见过好多有才能的人,并不重视个人效率管理,依然取得了巨大的成绩。每个人有自己的活法,一套好的个人效率管理系统,会增加你人生的吞吐量,要想富先修路,没有I\u002FO怎么能升职加薪呢。平凡的我们,通过合理的效率管理,也许就能在职场上走得更远一点点,\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E大局观是一个比较难培养的能力,不在其位,不忧其心,就不会有机会锻炼。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E第一个和大局观有关的是跨团队协作。项目中不只有你一个团队,AI逻辑团队作为一个中央枢纽,要把关卡策划服务好,对接UI美术,把引擎功能包装整合,配合online组开发Matchmaking,和每个组都有或多或少的联系。很多时候,本团队工作安排最优不代表全项目工作安排最优,跨团队的合作,该强硬的时候要强硬,该让步的时候要让步,一切以项目利益最大化为目的。由于Leader们私交都不错,合作多年,相对来说跨团队合作都还好,没有太大的问题。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E第二个和大局观有关的问题是对自己团队工作的把握。什么时候该鼓励团队探索一些先进技术,并且在研究不顺利的时候决定继续还是喊停,什么时候应该保守一点,收敛需求,确保能完成相关特性,这就是一个典型的例子。这方面要做好,需要有广泛的领域知识,也需要一些跨界知识,更需要多个项目的经验。因为做决定的时候,也是在信息不完备的情况下,一个好的决定也需要一点点运气。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E第三个和大局观有关的问题是控制团队工作节奏。要试图理解整个项目阶段,我们团队的工作对项目交付有什么影响,什么时候我们是瓶颈,要加速做,什么时候我们有闲暇,可以放松一下,做点长远技术投资或是清偿一下技术债。当然,AI和逻辑团队永远都是瓶颈,所以也不用想太多,努力工作就是了。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E第四个和大局观有关的问题是组内的工作交付问题。有些同事虽然很努力,但总不能交付理想的成果,是换人来做,还是只好选择原谅他?换人来做意味着新同事要重新熟悉这一块的工作,老同事会觉得很沮丧,不被组织信任。换了新人如果搞不定怎么办?有几种可能,要么这件事就是不容易搞定,要么第二个同事还是不给力。所以换人做的话,一定要确保新接手的同事是信得过的,避免再次出现换人。只要新接手同事没做成,就告诉自己此路不通,我们想办法绕路。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E第五个和大局观有关的问题是李要控计李计几。Leader相对来说总是一个团队技术最好的,看见大家搞不定事情总想着要冲上去帮忙,找一下智商优越感。也很正常,人总是希望做自己擅长的事情。一起干活本没有错,也能很好提高团队士气,但是时机和工作内容要选好。千万不要选择在关键路径上的任务,如果搞不定会影响整个项目进展。因为leader在中前期总有各种重要的技术选型和决策要做,在中后期总是陪加班和调配资源,应付突发事件,哪件事都比上去搞定几个任务重要。如果手头有关键路径任务,往往都是最难的,工作中又无法抽出整段时间专心做,很可能会拖累整个项目。找点可以独立的事情,可以是比较难的长线任务,也可以是没有太多依赖的疑难问题debug,或者是做做优化,这些事情既能找到满足感,没时间搞定,也不会对项目有太大冲击。\u003C\u002Fp\u003E\u003Cp\u003E之前还写过另一篇关于Leader的文章,也可以跳转阅读一下:\u003Ca href=\&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F\&\u003E关于怎么做一个好的主程序\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E最后总结一些中心思想:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\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\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:33:37.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:18,&likeCount&:127,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&sourceUrl&:&&,&publishedTime&:&T22:33:37+08:00&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&url&:&\u002Fp\u002F&,&titleImage&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-dfb827f27f848d97eec0ece897b050a6_r.jpg&,&summary&:&&,&href&:&\u002Fapi\u002Fposts\u002F&,&meta&:{&previous&:null,&next&:null},&snapshotUrl&:&&,&commentsCount&:18,&likesCount&:127},&&:{&title&:&游戏程序员成长编年史(6)&,&author&:&yu-gu-47&,&content&:&\u003Cp\u003E继续讲后续的个人经历。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E做完那个项目的AI团队Leader,后续继续回Splinter Cell组做引擎相关工作。Leader已经做好了多线程的架构,我进一步在Xbox360上做优化,很多有趣的优化点或者高难度的Bug,在BUG往事的系列里都说过,就不重复了。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E后续项目在一个很小的项目里面做主程序,目标是4个月完成Rayman疯狂兔子的Wii到Xbox 360移植,并提交审核。之前的积累效果就显示出来了,一开始还是只有我一个人做前期工作,移植Wii版本的Jade引擎到Xbox360。有了信心,就不再惊慌,加上运气不错,一个多星期就完成了初步移植。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E但总体来说,今后的2-3年里面,没有突破性的提升,无论是技术上还是管理上。\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E从管理上来说,外企普遍有的玻璃天花板,在UBI也存在,中方员工在发展上总是吃点亏。\u003C\u002Fli\u003E\u003Cli\u003E在技术上,没有机会从头做一个引擎,总是遗憾。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003EUBISOFT是一个很强的技术公司,内部技术相当出色。但对引擎程序员,有一个非常大的限制,就是基本没有机会从头参与开发一个引擎,你的选择,无法就是在已有的Unreal为代表的商业引擎,或者法国人做出的Openspace以及相关各种分支引擎,或者加拿大分公司的一堆引擎里面选择。而当时国内公司,各种自研引擎已经满天飞,面试招聘的时候经常碰到各路小团队CTO、技术指导,表示做过某某引擎,还有人语重心长的劝我,表示做引擎没啥难的,想做就做一个呗...大多数此类引擎的水准,大致停留在10年前,往往只有渲染部分处在5年前的”领先”水准,工具链、跨平台、多人协作等各方面,都没有看见什么深入的考虑。但另一方面,在UBI这样的公司呆久了,不自觉的对从头做一个引擎有着巨大的恐惧感,公司内部有足够多的好选择,必要性不大,而且见过了一流的引擎,庞大的工具链,会不由自主高估困难性。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E但内心的蠢蠢欲动,还是推动着我,走出下一步。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E09年结束的时候,来到了腾讯。先去各个部门打了一下酱油,了解了一下公司,然后参与了天涯明月刀OL项目。对我而言,这个项目是我第一个正规的网游项目,虽然在前公司也参与过一个网游项目,但外企在思路转型上远远谈不上到位,国内免费游戏都做了很多年了,外国老板表示还有免费模式,真能行吗?这个项目也是一个好机会,让我有机会带团队真正从头做一个现代的引擎。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E天涯明月刀的引擎和游戏开发经历按下不细说,和咱们这个主题不一致。还是围绕个人成长,展开说说。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E一到腾讯的时候就非常紧张,过来的时候TItle是高级架构师,我有着极其强烈的\u003Cb\u003E不能胜任感\u003C\u002Fb\u003E。对我来说,有一些领域是全新的,首先在客户端领域接触到了国内常用的Gamebyro等引擎,和UBI一系技术完全不同,当时也无从判断究竟Gamebyro之类的引擎是不是代表了先进方向。其次在服务器领域也是见到了国内常用的技术,在协议处理等角度来看,是相当简单粗暴的,习惯了欧美一套复杂处理方法,非常不适应。更大的挑战在于,以前大量项目都是基于移植或者成熟大型引擎,现在一下子拥有更大的技术发挥自由度,在更简陋的开发环境中,反而不知道从何做起了。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E在这么多年的个人发展中,总在那些关键时刻,有一些\u003Cb\u003E不能胜任感\u003C\u002Fb\u003E,然后奋起直追,让自己慢慢胜任。直到前些年在腾讯的经历,才让我意识到这适度的焦虑给我带来的帮助,我也开始更刻意的让自己常常有一些\u003Cb\u003E不能胜任感\u003C\u002Fb\u003E,以便避免自己过于安逸。这个\u003Cb\u003E不能胜任感\u003C\u002Fb\u003E,换另一个说法可能更能被人接受,叫做走出自己的舒适区。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E为了缓解焦虑,开始了疯狂的学习。那两、三年的阅读量非常大,每天都有3-4小时在看技术资料,做笔记,分析和思考。先要补上自己的短板,把自己不熟悉的领域熟悉起来。好在孩子还没有读书,也有足够精力,我每天早上提前一个多小时就到单位晨读,晚上回家还会抽出很多时间阅读。出差时,晚上或者周末也在酒店阅读。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E几年的高强度学习,逐渐缓解了我的焦虑,系统的阅读了大量主题书籍、Gems类型书籍和会议ppt等,大致找到了感觉。可以和别人侃侃而谈,不再会在拿出名片的时候脸红于架构师的Title了。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E从一个技术指导(Tech director)的角度上,我不需要事事都会做,自有优秀的同事来搞定,我只是偶尔需要在必要时刻,保持一定的突击能力,可以冲在一线解决困难的问题。但我必须事事了解,知道技术大致的Trade off,知道复杂度,知道和其他系统的关系。换句话说,这个时刻,\u003Cb\u003E技术广度\u003C\u002Fb\u003E对我来说,比深度更重要。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E技术深度的方法可以通过突击学习,广度积累当然也可以,但还有其他方法可以做到。毕竟这时候我也工作了十几年了,不如刚毕业的时候精力旺盛,孩子也是一个精力黑洞,如何多快好省的培养自己能力,提高效率,变得更重要了。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E介绍一些有趣的实践方法,可以帮助积累技术广度:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E面试学习法:我常年负责游戏客户端领域的技术通道面试,技术通道面试可以简单理解成对面试者定级别的复试。同时我自己的团队也招了很多人,面试非常多。从HR的反馈来看,被面试的人,表示我面试时候领域知识问得深入,且范围很广。其实在面试时,面试官有巨大的优势,面试者的经历简单扫一遍后,就可以随意发问。我有主动权,可以\u003Cb\u003E声东击西\u003C\u002Fb\u003E,选擅长的深入问,不懂的可以简单带过,保证不露怯。也可以\u003Cb\u003E长驱直入\u003C\u002Fb\u003E,对自己感兴趣的领域,让面试者深入讲讲,听个大概,成为自己事后了解这个领域的入门材料。可以\u003Cb\u003E左右互搏\u003C\u002Fb\u003E,对于一些面试者的有趣观点,随手记下,下次可以问另一个面试者怎么看这个问题,让他们的观点彼此PK。可以\u003Cb\u003E温故知新\u003C\u002Fb\u003E,顺便和面试者讨论讨论一些主题问题,把平时学习的新技术用上,如果他回答不出来,正好复述一遍,既帮他开拓眼界,也可以加深自己对这个技术的印象。面试时学习法很适合快速拓展知识面,每次面试都是一次技术切磋,如果有机会面试级别高的开发者,更是一个很好的成长经历。\u003C\u002Fli\u003E\u003Cli\u003E项目评审学习法:公司内部的项目评审技术评审,也是一个不错的学习途径。腾讯的内部游戏开发,有较完善的流程,除了产品评审环节,也有技术评审环节。我做了几年技术评委,通过参加评审,我有机会了解每个项目大致面临的技术难题,也经常能看见一些闪光点。比起面试学习法,技术评审接触的都是公司内部同事,即使有什么东西当时没有理解正确,或是过了很久想到这个技术,细节都忘了,也可以找到当时的同事请教。\u003C\u002Fli\u003E\u003Cli\u003E职级晋升学习法:公司内部对程序员的技术能力升级,有一整套考核,到了一定的职级,就需要有正式的答辩环节。我常年负责技术评审,申请晋级的同事们会准备自己的工作成果展示,我能看见大量技术问题的分析和解决方案。和项目评审中的学习有所不同,项目评审时角度更宏观,具体技术细节不会涉及太多,而自己职级评审中,每个同学都是竭尽所能,从各个角度介绍自己的技术,有问必答,还有事后给面试官送补充说明材料的。刚参与技术评审的时候,两天评审中,往往能有2-3个技术点让我眼前一亮。当然这个学习的衰减速度非常快,前几年的评审,往往两天听完,也没有什么有趣的技术点了。\u003C\u002Fli\u003E\u003Cli\u003E业界会议学习:游戏圈子比较开放,每年的GDC或者其他开发大会,都会有开发者无偿公布很多新的技术,或者总结自己项目的得失,介绍好的实践。参与这些会议,是最好的手段,可以快速和国际顶尖水平开发者对齐。你需要的只是一张来回机票,几天住宿,一张门票,和英语听力。每次参加完会议,总是特别兴奋,有很多好想法想和团队分享,有很多改进可以做进我们自己的引擎。如果没有那么好的条件可以去现场参加会议,也可以关注会后放出来的免费材料,或是购买付费会员账号。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E上述的学习实践,本质上就是多听多看多聊,和其他项目多社交,多聊聊技术,出去多看看其他公司怎么做项目,坚持做一阵子,自然就有了技术广度理解。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E即使做到了自学成才主攻技术深度,也做到了多社交主攻技术广度,依然有可能有不足。下一次我们再聊团队学习。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E题图来自Pixaba\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.

我要回帖

更多关于 奔跑吧兄弟几点开始 的文章

 

随机推荐