首页 > 代码库 > 2014年总结——技术篇

2014年总结——技术篇

  2014年我在CSDN的日志数量跌到8篇,看来这一年又比以前更忙了。其实无论在技术内还是在技术外,我在2014年的收获都比2013年多。在一个初创的团队中做事,感觉还是很不一样的。环境变化之快,意外之多,需要我更快速地学习更多更广的技术。


  这一年在技术上最大的意外,莫过于将过半的时间都花在了客户端,花在了Unity——尤其是NGUI上。这和我年初主攻服务端Linux和lua,只是顺带研究Unity的希望大相径庭。年初搞了一个月左右的登录流程,就莫名被抓去做UI,可当时我对Unity基本一窍不通。不过当时其他同事对Unity和NGUI的了解也并不多。于是在需求的紧逼之下,我只好将所有可用的时间都投入到对NGUI的钻研中,一逮着机会就读NGUI源代码(有源码真好)和Unity文档,并时常动手练习。有一次周末家里去海边旅行,我还把UIPanel的代码打印出来带到海边阅读。


  还好这样的日子经过了大半年,尤其在几次对UI性能的大规模优化之后,我基本上将NGUI的代码读通了,掌握了它的内部原理,也摸索出了很多UI制作的技巧。由于NGUI内部实际上走了Unity的3D模型渲染的流程,本质上和场景里渲染的模型没区别,因此我也顺带了解了一些图形学和渲染方面的知识——比如DrawCall合批、裁剪、渲染次序和z缓存之类。与此同时,适合项目自身情况的UI框架、UI规范和UI工具也从无到有地逐步建立并完善了起来;项目也从年初基本只有一两个程序员摸索着做UI的阶段,走到了现在大多数程序员都能熟练做UI,甚至美术和策划也能调UI的阶段。因此,虽然今年主要精力意外地花在了UI技术上,并且今后还是希望主攻后端,但我对于今年在UI方面的收获还是非常高兴非常满足的,很有成就感。我很喜欢这样将原本一窍不通的东西掌握熟练。


  年末,主程在工作安排上照顾了我的个人兴趣,给我安排了跨服的开发任务。于是我终于又可以重回后端好好历练一番。虽然时间不长,但我还是借机将服务端各个模块之间的组织逻辑,将各个服务器线程,还有网络模块又了解得更深了一些;另外vim的使用也如年初希望的那样更溜了点。在这个阶段里我还学会了git的基本使用。不过我刚回到后端的这段时间因为太兴奋了,任性了一点,花了比较多的时间用来玩技术和学习离项目较远的知识(比如git)上,稍稍耽误了些进度,有点抱歉。还好领导们对我都还比较宽容。不过话说回来,目前项目仍处在重视前端表现的阶段,美术还是经常在折腾程序,所以我还是时不时又被抓回去搞UI。但愿项目今年上线测试,会尽快进入重视后端性能和稳定性的阶段,那时后端才会有真刀真枪的历练机会。

 

  其实工作室里不只我一个程序员在2014年意外地将很多精力花在了客户端。想来这和游戏行业的大环境应该也有关。过去这一两年,游戏行业大规模地进入了手游时代。移动端的性能远不如PC端,可是市场和设计人员对画面表现的期待并没有因此而降低多少——尤其很多研发人员都是从端游项目转过来的。又要画面好又要体验流畅,与此同时3D手游的开发领域似乎还没为此需求准备好足够成熟的引擎、工具链和实践方法,Unity引擎自身也在为了满足市场需求而努力改进自己。在这种情况下,项目程序员只能花费更多时间来摸索前端的做法,努力满足美术在移动端显得“变态”的设计需求。而相比之下,手游时代的服务端并不会比端游时代有更高的技术要求,甚至因为MMO在手游时代的没落,手游时代的服务端压力可能会比端游时代的更低。

 

  手游对前端技术的更高要求,除了需要程序员将大把精力花费在前端外,也引发了程序员和美术之间的更多博弈甚至冲突。这个问题不仅仅是我们项目有,在交流中,我发现其他游戏公司的团队也有这个问题。后面的日志再详细总结这事。

2014年总结——技术篇