V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
esolve
V2EX  ›  问与答

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

  •  
  •   esolve · 2017-03-21 09:14:22 +08:00 · 5679 次点击
    这是一个创建于 2565 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    游戏引擎、业务逻辑、通行证相关、统计相关、 OA 相关、客服系统
    js1gsb
        8
    js1gsb  
       2017-03-21 16:24:10 +08:00
    游戏服务器对并发要求,响应要求极高,非常容易遇到性能瓶颈。一般需要高定制化,削掉性能瓶颈,消耗机器所有的资源。 web 开发使用 http 协议,使用虚拟机,使用低效率脚本语言等等,减少开发管理难度而选择资源浪费。
    esolve
        9
    esolve  
    OP
       2017-03-22 12:23:41 +08:00
    @js1gsb 这意思,做过游戏服务器的话,去电商啥的做高并发,分布式也容易了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5032 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:37 · PVG 17:37 · LAX 02:37 · JFK 05:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.