设计目标与定位
在深入细节之前,我们首先要明白 Skynet 为何而生。它诞生于大型多人在线游戏(MMO)这一特定领域,旨在解决高并发、高复杂性在线服务的核心痛点:如何让成千上万个功能模块稳定、高效地协同工作,并能够持续迭代更新。 它的定位是一个底层的“微服务引擎”或“操作系统内核”。它不提供游戏逻辑(如战斗公式、任务系统),而是提供一套完备的机制,让你能像搭积木一样,用众多小型、独立的服务构建出庞大的游戏世界。它深受 Erlang 语言 Actor 模型的影响,但选择用 C/C++ 构建核心,用 Lua 编写业务,在性能和开发效率间取得了精妙的平衡。
注:本文只是简略讲解,如果需要深入了解,建议可以参读:《百万在线:大型游戏服务端开发》,这本书由罗培羽撰写,以 Skynet 框架为核心,系统性地讲解了如何使用它进行大型多人在线游戏的服务端开发。
概述
Skynet 是一个专门为网络游戏服务器(或高并发在线服务)打造的“微服务引擎”。它不是一个完整的游戏,而是一个能让成百上千个小功能模块(服务)高效、稳定地协同工作的“操作系统”或“调度中心”。
举个例子
想象你要开一家游戏公司,开发一款大型多人在线游戏。 传统架构(单体服务器): 就像把所有部门(登录、战斗、聊天、背包)都塞进一个大办公室里。一个部门出问题(如内存泄漏),整个办公室都可能瘫痪;人(请求)多了,沟通(锁竞争)就乱成一团;想扩展,却不得不复制整个办公室。 Skynet 架构: 它帮你组建了一个高度专业化、分工明确的公司。 每个员工都是一个“服务”: 有专门负责登录的“A员工”,专门管理战斗的“B员工”,专门处理聊天的“C员工”。他们各司其职,非常专注。 公司的“中枢神经系统”(调度器): Skynet 自己就是这个系统。它不关心业务逻辑(怎么战斗、怎么聊天),




