从Web后端(Java)转到游戏服务端的感受
九零后的男生几乎都是玩电子游戏长大的,做游戏开发几乎是每个九零后男生从小就有的梦想吧。我的大学时代,正好与移动Web高速发展的时代重合了,大学里几乎所有同学都是做Web方向的开发,Web前端,Java后端等等。大四的秋招阴差阳错的就投了一家游戏公司,允许Java后端转到游戏服务端,而且团队的大佬还是与我同校同专业的比我大五届的师兄。看在缘分,我就被招了进去。
技术感受:Web后端跟游戏后端的区别:
1、从成熟程度上说,Web的框架比游戏的框架要成熟很多,比如Java后端的框架技术,Tomcat、SpringMVC、Struts2这些公开通用框架已经帮我们做好了监听端口,分发请求等相关工作,而且性能还非常优秀;而游戏后端可能需要从零开发,从监听端端口,协议选择一步一步的自己定制,并没有太多成熟的开源框架。
2、从关注点上说,由于Web已经有很多成熟的框架,业内的规范非常明确,所以代码的分层非常明确,而且Web系统的功能多种多样,而且逻辑各不相同,Web程序员更多的是关心逻辑方面代码;而游戏后端(以RPG游戏为例),业务逻辑都是创角转职打怪升级刷装备,没有太多复杂的逻辑,会更侧重于设计出性能优秀的服务器架构。
3、从存储上说,有的并发较低Web系统可以不用NoSQL,只使用关系型数据库。而游戏讲究实时性,会大量的使用到NoSQL。游戏会从文件和数据库里读配置,Web只会从数据库里读配置。
4、从连接上说,Web端更多是HTTP或HTTPS的端连接,游戏端更多是WebSocket、HTTPS等长连接。
当然,游戏后端和Web后端从本质上来说是一样的。
风格感受:
感觉游戏公司的人看起来都好年轻,好有活力,很多大佬看起来就二十三、二十四岁,但实际已经30+了。最大的原因可能是因为游戏人时刻都充满Creative吧。
最后附一张自己脑补的服务器架构图: