V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
牛客网
gantleman
V2EX  ›  游戏开发

skynet 和 kbengine 的比较

  •  
  •   gantleman · 21 天前 · 2840 次点击

    全文地址 zhuanlan.zhihu.com/p/260753536

    技术背景

    skynet 和 kbengine 都是国内知名的分布式游戏服务器引擎。

    在游戏服务器架构转向分布式技术过程中都吸引了大量的游戏公司和程序员。

    这两个引擎的特点是都是分布式结构。所不同的是 skynet 支持线程模式而 kbengine 只支持多进程模式。

    游戏服务器最初大部分都是 C 或 C++开发的。因为游戏服务器对性能要求非常的高。属于 CPU 密集型服务器。

    但 C 或C++最大的问题就是软件崩溃。随着功能的增加,软件的膨胀。导致崩溃的问题越来越难解决。所以崩溃问题严重限制了服务端软件的规模。

    与互联网软件要求不同的是,因为游戏服务器对性能的极高要求。导致了互联网软件可以牺牲部分性能使用 java 来解决崩溃问题。因为解决了崩溃问题互联网服务器规模得以进一步的增加。这部分性能的损失互联网服务器又通过分布式的方法进行了弥补

    游戏服务器虽然有强烈意愿转向分布式以获得更多功能,但大部分公司无力承担分布式架构的高技术成本。因为传统的 java 分布式架构的代价极高。需要大量开发人员进行维护。

    分布式的技术发展路线可以总结如下。由C语言转向脚本语言以避免崩溃问题。没有了崩溃问题就可以引入更多的开发人员。而更多的开发人员和分布式结构抵消了脚本语言带来的性能下降,并带来了更多的功能。更多的功能给公司带来了很好的收益。

    但游戏公司和互联网公司完全不同。游戏属于功能密集型的软件。游戏公司养不起哪么多的开发人员来维护哪么多的分布式功能。互联网公司的一个功能可以好几个开发人员来维护。而游戏公司的一个程序要维护好几个游戏功能。这种差异导致了分布式技术在游戏公司推广困难。

    在这样的背景下诞生了 skynet 和 kbengine 两个比较成功的服务器引擎。

    全文地址 zhuanlan.zhihu.com/p/260753536

    10 条回复    2020-10-17 09:32:37 +08:00
    sryanyuan
        1
    sryanyuan   14 天前
    啥时候 c/c++最大的问题变成崩溃了,感觉像所有 c/c++写的软件都会定期崩溃一样。难道不应该表述成 写出可靠性高的软件要求高,成本高,并且崩溃问题定位解决比较困难
    floyda
        2
    floyda   14 天前
    TDengine 了解一下~
    gantleman
        3
    gantleman   14 天前
    @sryanyuan 查不出来的崩溃问题,可不就变成了定期崩溃。
    gantleman
        4
    gantleman   14 天前
    @floyda 广告?
    livepps
        5
    livepps   14 天前
    我们项目用 c++,几百个服,每个服十几个进程,一年所有服务器崩溃的次数加起来,小于 10 次,这个在游戏服务端,还是可以接受的,有稳定的底层框架,在上面做业务功能,除非水平太差,不然很少会出现崩溃的情况。
    gantleman
        6
    gantleman   14 天前
    @livepps 从统计学的角度看, 一个软件能不能发展成屎山取决于 3 个因素。

    1,功能的数量。
    2,开发人员的数量。
    3,功能和人员变化的频率。

    贵公司的软件没有变成屎山只是因为数量还不够多,频率还不够快。
    jmc891205
        7
    jmc891205   14 天前
    看来用 Rust 另起炉灶在游戏服务器开发领域很有潜力
    floyda
        8
    floyda   14 天前
    Rust 跑得起来就很难崩, 除非你在 unsafe 里面乱搞 (¬◡¬)
    dabaibai
        9
    dabaibai   10 天前 via Android
    服务器自己写安心
    gantleman
        10
    gantleman   9 天前
    @dabaibai 支持大佬
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2308 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 00:27 · PVG 08:27 · LAX 17:27 · JFK 20:27
    ♥ Do have faith in what you're doing.