Java 游戏服务器开发和其他行业的 Java 后端开发区别有多大?

2017-03-21 09:14:22 +08:00
 esolve

譬如和电商,互联网金融,等等的服务器 java 开发相比 可以相互之间跳吗?

5860 次点击
所在节点    问与答
9 条回复
sheep3
2017-03-21 09:35:14 +08:00
不清楚,猜测主要在协议这块的是主要区别
x537196
2017-03-21 10:30:52 +08:00
并没有什么区别,轮子不同而已
murmur
2017-03-21 10:32:27 +08:00
现在游戏开发不会选 java 吧 没什么太大优势
warlock
2017-03-21 10:51:06 +08:00
我是从电商跳到游戏的 然而现在已经不再用 java 写了
suliuyes
2017-03-21 11:16:34 +08:00
有区别。游戏的以协议, IO 为主。 MINA , netty 这些。后端是 java 的大多数都是页游。
weiweiwitch
2017-03-21 11:39:50 +08:00
@esolve 差别挺大的,各个方面的差别。之前和朋友聊,可能和做游戏最接近的也就是做 Java 中间件吧。但反过来说,如果做游戏做到一定程度,要转其他的行业,也还是能胜任的,原因后面说。

从组织上来说。做游戏大多数都是工作室的组织结构,里面分程序、美术、策划。一个工作室不大,几个人到几十个人不等,看游戏规模。这么分下来,程序其实没多少人。大多数游戏开发的程序一般都遵循少而精的原则来招人。即使游戏做大了,最多也就扩充部分人,然后再拆分出几个工作室出来。不会像互联网那样,几十个人围着一个组件做。

从业务上来说。对游戏需求的理解一般不能直接沿用到其他行业,逻辑的实现方式也因为底层结构不同,也不能直接沿用到其他行业。不过思考问题的方式整个软件行业都差不多,有能力吃下游戏逻辑,其他行业的业务代码也不会有什么问题,只是花时间理解需求和底层结构而已。

从技术上来说。这里针对涉及底层技术的后端,而不是一般的业务逻辑实现。由于游戏开发是工作室性质的,程序少而精,所以主程一般什么都要会!从长短连接的网络通讯、数据库、缓存、线程进程管理、多机集群,到运维、后台页面框架、巨量日志的生态分析,到关键游戏逻辑的各种 AI 算法、各种复杂战斗系统的实现等等,麻雀虽小,五脏俱全。
由于游戏通常情况下,比其他行业更容易引入用户,所以游戏程序面对性能挑战也会来的更早。你不可能有时间来慢慢改架构来应对流量的急剧上升,所以早期的架构制定很关键。

游戏的技术挑战大致分为关键系统实现、上线时的单机负载、游戏火了以后的集群实现上的挑战。大部分游戏基本在前两项就过不去了。由于游戏的高响应要求(比电商等的响应时间高一个数量级),单机的高承载以及逻辑和底层的强关联性,游戏逻辑状态的复杂等,再加上服务器很精贵、开发时间很紧张、人员少,所以做游戏开发很有压力!
但相对的,只要经历过项目上线,就会对技术有很大的提升,特别是那些上线过全球统一服的游戏!
xiaowangge
2017-03-21 14:29:45 +08:00
一般游戏公司都有自己的引擎,或者写引擎的人。看你进公司写啥了。

游戏引擎、业务逻辑、通行证相关、统计相关、 OA 相关、客服系统
js1gsb
2017-03-21 16:24:10 +08:00
游戏服务器对并发要求,响应要求极高,非常容易遇到性能瓶颈。一般需要高定制化,削掉性能瓶颈,消耗机器所有的资源。 web 开发使用 http 协议,使用虚拟机,使用低效率脚本语言等等,减少开发管理难度而选择资源浪费。
esolve
2017-03-22 12:23:41 +08:00
@js1gsb 这意思,做过游戏服务器的话,去电商啥的做高并发,分布式也容易了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/349016

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX