Posts
《游戏服务端编程实践》2.3.3 Skynet(Lua)
一、引言:为什么 Skynet 能成为游戏后端事实标准 在中国游戏行业,Skynet 被广泛应用于: MMO / SLG / 卡牌游戏; 即时战斗 / 聊天 / 世界服; 自研分布式框架的
read more
Posts
《游戏服务端编程实践》2.3.2 Go net/http + goroutine
一、引言:从异步回调到同步语义 在 Java/Netty 世界,开发者必须处理: Selector; Pipeline; Future; Callback。 这让程序高度异步
read more
Posts
《游戏服务端编程实践》2.3.1 Netty(Java)
一、引言:Netty 的定位与价值 Netty 是一个基于 Java NIO 的高性能网络通信框架,最早由 JBoss 社区在 2008 年推出,目前由 Netty 项目组维护(io.netty)。 它的目
read more
Posts
《游戏服务端编程实践》2.2.3 线程池与任务分发策略
一、引言:为什么需要线程池? 在多线程或协程系统中,创建线程的成本极高: 操作系统线程的创建需要: 分配内核栈; 注册到调度器; 上下文切换; TLB flu
read more
Posts
《游戏服务端编程实践》2.2.2 Channel 通信与消息投递
一、引言:从共享内存到共享通信 在传统多线程模型中,线程通过共享内存通信,需要锁来保护数据。 然而锁带来了复杂性、死锁、饥饿与调试困难。 C.A.R. Hoare 在 1978
read more
Posts
《游戏服务端编程实践》2.2.1 Actor 模型详解(Akka / Erlang)
一、引言:为什么我们需要 Actor 模型? 在上一节我们学习了多线程与协程的差异。 线程和协程虽然解决了“并发执行”的问题,但它们都无法直接解决另一个根本
read more
Posts
《游戏服务端编程实践》2.1.3 多线程与协程的差异
一、引言:从线程到协程的时代转折 在计算机的早期时代,程序通常是顺序执行的:一条指令执行完才开始下一条。 当网络 I/O、磁盘读写、数据库访问等耗
read more
Posts
《游戏服务端编程实践》2.1.2 Reactor 模式与事件循环
一、引言:从 I/O 到事件的必然演化 在上一节我们学习了阻塞与非阻塞 I/O 模型: 阻塞模型简单,但每个连接需要独立线程; 非阻塞模型高效,但需要手动轮询,代
read more
Posts
《游戏服务端编程实践》2.1.1 阻塞与非阻塞 I/O
一、引言:I/O 模型是服务端的灵魂 在游戏服务器、即时通信系统或高并发 API 网关中,开发者最常听到的词之一就是“I/O 模型(Input/Outpu
read more
Posts
《游戏服务端编程实践》1.4.1 典型架构演进
一、概述:架构的演化即“世界复杂度的增长” 在游戏技术体系中,架构不是一次性设计,而是一个随规模、并发量与功能复杂度演化的过程。 早期游戏服务器
read more
Posts
《游戏服务端编程实践》1.4.0 游戏服务器的通信体系与协议设计
一、通信的本质:游戏世界的“血液循环” 通信系统是游戏服务端架构中最底层但最关键的一层。 如果说: 世界服是“大脑”; 战斗服是“心脏”; 那么通信层
read more
Posts
《游戏服务端编程实践》1.3.1 游戏服务器的生命周期
一、概述:游戏世界的“生老病死” 一个游戏服务器,不只是一个常驻进程,它更像一个世界的宿主。 它的生命周期可以分为三个阶段: 阶段 含义 关键操作 启动
read more