应聘客户端主程需做哪些准备

上一篇博客给读者介绍了关于应聘引擎程序或者资深引擎需要做的准备工作,本篇博客给哪些想应聘客户端主程的开发者提供一些建议。客户端主程市场需求也是非常大的,我本人以前也应聘过客户端主程,也招聘过客户端主程,下面将一些心得分享给读者,以供参考。

  • 项目要求
    客户端主程就是要对整个项目负责,对主程的要求就比较多,比较杂了,因为他关乎整个项目的成功与失败,所以必须要谨慎对待。项目也分很多种类,比如MMORPG,FPS,Strategy Game,Casual Game,Sport Game,Racing Game, Web Game等等,不同种类的游戏,对于主程的要求也是不同的。游戏公司都是根据项目招聘主程的,至少有相关游戏类型的经验的开发者,这样加分项会高一些,因为不同类型的游戏对于技术细节要求是不同的,遇到的问题也是不同的,而作为把控整个项目的主程,项目经验就显得尤为重要了,至少他以前的经验可以帮助他避免一些坑,或者说少走一些弯路。在项目管理工具方面,实现某个项目首先是代码版本管理工具的选择,比如Git,Svn等,项目计划管理工具比如,Jira,禅道等等,使用这些工具是为了提升开发效率。简历的编写也要突出对应项目经验,还有突出自己在管理人员方面的经验,比如带过人,这样既突出了技术,也突出了管理能力。

  • 技术面试
    对技术的面试,这个一般会有公司的技术经理或者技术总监参与面试,一方面,会针对你简历中所列的内容进行问答,另一方面,他们也会根据自己正在研发的项目中存在的问题进行问答。下面就聊聊面试官会问哪些问题?这个也是读者比较关心的。
    问题一:项目中使用的架构设计?
    问题二:项目中的大量贴图如何优化?
    问题三:项目中的场景裁剪优化?
    问题四:对于大规模NPC头顶的血条如何优化?
    问题五:UI图集如何优化以及UI的共享图集的制作加载和卸载方案?
    问题六:热更新是如何实现的?热更新架构选型?
    问题七:项目的优化方案有哪些?针对内存,CPU,GPU举例说明。
    问题八:模型的角色面数,贴图大小,骨骼数量有哪些规定?
    问题九:包体大小是如何控制的?包体运行占有的内存是多少?资源在内存中是如何分配的?
    问题十:Lightmap是如何产生的,lightmap的贴图大小如何去做优化?
    问题十一:游戏开发中使用了C#的哪些特性?
    问题十二:AssetBundle的加载以及卸载
    问题十三:帧同步与状态同步区别?
    问题十四:粒子特效的优化?
    问题十五:Shader的优化以及编写

    未完,继续补充。。。。。。。。

  • 学习技能
    关于学习这块,我建议大家多读一些管理方面的书籍或者一些关于与人交流相处的书籍,因为对于程序员来说,沟通方面相对来说比较欠缺,大部分程序员只会闷头做自己的事情,游戏开发是一个团队项目,每个人之间要学会沟通,沟通是有技巧的,同样一句话,有人说的听起来舒服,有人说的听起来难受,作为主程不仅要与自己团队的成员沟通好,还要跟策划,美术去沟通,多学学沟通技巧对自己是有帮助的。技术方面,我建议读者多参与一些技术论坛的问答或者多看看别人分享的技术博客,以及阅读一些国外编写的技术书籍,所学习的知识要与现在的工作内容匹配,这样学习效率更高。在这里我简单列了一个客户端技术大纲供参考:

    作为客户端主程,以上所列的技术点都应该掌握,当然对于新技术也需要跟踪研究,填补自己的知识库。作为主程必须要精通架构技术,这个关乎游戏项目能否顺利开展,其他的技术点或多或少要了解。

  • 管理技能
    很多人对此并不是很重视,感觉这个没有什么科技含量,这个认识大错特错,一个好的管理者可以把整个项目团队凝聚在一起,这样的团队效率非常高的。而如果对于团队属于管理,整个团队成员流失率很高的,项目会出现拖沓,后期会出现各种问题。我在招聘或者以前面试时,很多公司对此并不是特别关注,他们只想招一个技术比较牛的人把项目做出来,其实这种想法表明公司的管理者目光比较短浅。因为有的人不适合做管理,只适合单打独斗,你让他做主程,忙的只是他一个人,这样项目也会出问题的,毕竟现在靠一个人打天下的年代已经过去了。而作为主程即使公司不注重管理,但是作为我们要带兵打仗的人,必须要对管理重视起来,换句话说,在公司你要有一定的话语权,否则队伍不好带的,人生在世,无非关乎名利二字,你要让团队凝聚起来,必须要给他们名或者利,还要做好团队人员流失的工作,防止项目由于某个人离开了,后面的人接不上来,也就是我们说的风险控制,这些都需要主程未雨绸缪。除了以上提到的,还要帮助团队成员提升自己的技能,定期给他们培训,我个人感觉一些大公司在这方面做的比较好,他们会请行业内比较牛的人不定期的给研发团队做一些技术讲座。

  • 总结
    作为主程,技术必须要好,因为搞技术的人只佩服技术牛的人,这样带团队比较容易,需要你在公司有一定的话语权,这个要跟领导事先沟通好,至少要有对团队成员的招聘,开除这样最基本的权利。另外,掌握一些常用的架构设计比如MVC,FSM等等,设计模式要精通常用的比如单例模式,工厂模式,状态模式,观察者模式等等。

你可能感兴趣的:(程序人生)