前几天有同学在后台找小说君人生商谈,原问题就不再贴出来了,大意是「有意入行游戏圈,但是对自身的技术基础没信心,如何做自己的后续学习规划,以达成求职目标?」
其实之前小说君在博客园和知乎的时候,也偶尔有同学会问类似问题,提问者有的还在读书,也有已经工作的。所以小说君觉得有必要专门写一篇文章来讨论这个话题。
首先是老生常谈,一个人的命运,当然要靠自我奋斗,但是也要考虑到历史的行程。九十年代末到现在,大家都是写游戏的,怎么就有人进了业界名人堂,有人还在搭NGUI界面呢?
历史的车轮滚滚向前,游戏产业的增长不会无休无止,游戏圈程序员的平均生存状态也远没有想象中那样光鲜亮丽,说起来好像大家做的都是流水过亿的项目,住的都是带游泳池的大house一样。
还有些读书中的同学因为「图形学是程序员的浪漫」这个说法就觉得游戏开发很神圣,这点小说君更是不敢苟同,此浪漫非彼浪漫,这个浪漫的意思是图形技术的投入产出是公认的低,如果还是执意做图形的话确实有些romantic的意思。更遑论,做游戏开发的大部分程序员是不需要图形学知识的。
前几年手游刚兴起的时候,很多做企业应用的.Net程序员转行做Unity,确实很明智。但是如果现在还这么想,那么有可能最后只是从一个坑跳到另一个坑而已。
对于程序员来说,写代码是一种谋生的技术,而至于是做游戏,还是做垂直电商,做深度学习还是做什么其他现在资本更看好的项目,都是一种领域知识。你的履历,则是技术与领域知识的组合。并不是小说君泼冷水,现在的风口并不太看你的游戏领域知识。
上面的只是小说君的一些碎碎念,如果看到这里,你还是有意进入游戏圈的话,那小说君接下来就进入正题了。
国内游戏行业现状大家都懂,大家做的游戏毕竟不是工业级3A,相对来说还是比较短平快的。做游戏对程序员的要求其实跟做web对程序员的要求并没有太大区别,核心需求无非就是能写代码,逻辑清晰,认真负责,不求对游戏多有爱,只要有一定的领域知识就够了。
游戏程序分为很多种,小说君先简单列举下种类,以及每种程序的入行难度和入行建议度:
引擎程序:游戏圈历史沿革最久的职位,需求越来越少,现在只有少数大厂会有这类岗位缺口。而大厂的新引擎立项机会其实还是挺少的。即使有岗位缺口,可能也都是做一些比较独立的模块,比如维护一个粒子编辑器?
因此引擎技术的投入产出比特别低,因为你除了写代码能力之外,还需要花费相当长的时间学图形学,因此小说君个人感觉如果想转行游戏程序,是不太建议以引擎程序为目标的。
难度,三颗星;建议,一颗星。
UI程序:很多端游的UI是用scaleform做的,需要专门的写as的程序员,跟客户端程序有所区分。
端游已经是昨日黄花了,scaleform用的也只会越来越少,为自己的后续职业生涯考虑下,还是慎重。
难度,一颗星;建议,一颗星。
客户端程序:端游项目基本就是写客户端逻辑的,手游项目的话由于大家都用Unity,所以不会有单独的UI程序分出来,UI面板都会由客户端程序来拼。
在现在以及可以预见的未来,Unity仍然是一门值得投资的技术,因此小说君还是比较推荐转行从客户端切入的。
难度,一颗星;建议,三颗星。
图形程序:跟引擎程序有所区别,但是又不能算是技术美术。比如在Unity项目中,会承担客户端主程跑场景查性能bug、优化引擎API调用性能等职责。同时还负责写shader,维护打包逻辑等等。
这个也算是目前的热门职位,实际上只是跟客户端程序定位稍有不同,想写逻辑的时候理论上可以无缝切回客户端程序,因此入行难度高于客户端程序。还是因为Unity的原因,小说君比较推荐。
难度,三颗星;建议,三颗星。
服务端程序:这个自网游诞生以来就没太大变化,不同的项目会由于内部工作流的不同,服务端程序拉的战线也会有所不同。但是大体上还是写逻辑为主,而且由于游戏圈有一个专有名词叫「成功项目」,所以新项目的框架一般直接拿「成功项目」的直接用,老大放心,小弟省心。
种种原因,导致游戏服务端的底层修改必要不大,因此对技术的需求倒并不是特别高。而且游戏服务端写逻辑,其实跟web服务端写逻辑并没有太大本质区别,以后想转行倒是也可以,只不过领域知识就有点尴尬了。
难度,两颗星;建议,两颗星。
上面列举的程序工种,引擎、UI、图形就姑且不谈了,确实不太适合初入行程序切入,接下来就重点说说客户端程序和服务端程序的技能要求以及准备方式,如果有23个空手套白狼财富案例小儿癫痫的病因丨哈尔滨治疗最好的癫痫病