全文地址 zhuanlan.zhihu.com/p/260753536
技术背景
skynet 和 kbengine 都是国内知名的分布式游戏服务器引擎。
在游戏服务器架构转向分布式技术过程中都吸引了大量的游戏公司和程序员。
这两个引擎的特点是都是分布式结构。所不同的是 skynet 支持线程模式而 kbengine 只支持多进程模式。
游戏服务器最初大部分都是 C 或 C++开发的。因为游戏服务器对性能要求非常的高。属于 CPU 密集型服务器。
但 C 或C++最大的问题就是软件崩溃。随着功能的增加,软件的膨胀。导致崩溃的问题越来越难解决。所以崩溃问题严重限制了服务端软件的规模。
与互联网软件要求不同的是,因为游戏服务器对性能的极高要求。导致了互联网软件可以牺牲部分性能使用 java 来解决崩溃问题。因为解决了崩溃问题互联网服务器规模得以进一步的增加。这部分性能的损失互联网服务器又通过分布式的方法进行了弥补
游戏服务器虽然有强烈意愿转向分布式以获得更多功能,但大部分公司无力承担分布式架构的高技术成本。因为传统的 java 分布式架构的代价极高。需要大量开发人员进行维护。
分布式的技术发展路线可以总结如下。由C语言转向脚本语言以避免崩溃问题。没有了崩溃问题就可以引入更多的开发人员。而更多的开发人员和分布式结构抵消了脚本语言带来的性能下降,并带来了更多的功能。更多的功能给公司带来了很好的收益。
但游戏公司和互联网公司完全不同。游戏属于功能密集型的软件。游戏公司养不起哪么多的开发人员来维护哪么多的分布式功能。互联网公司的一个功能可以好几个开发人员来维护。而游戏公司的一个程序要维护好几个游戏功能。这种差异导致了分布式技术在游戏公司推广困难。
在这样的背景下诞生了 skynet 和 kbengine 两个比较成功的服务器引擎。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.