Below you will find pages that utilize the taxonomy term “Programming”
Posts
大型 MMO+SLG 游戏网关与世界服通信架构设计
第一章:引言 —— 从 10 万并发到“可信可扩展通信体系”的挑战 在当代大型网络游戏架构中,网关层与世界层之间的通信, 是整个分布式架构中最关键、最复杂
read more
Posts
为什么让客户端决定战斗结果会摧毁整个游戏系统
目录 引言:从“谁来决定胜负”谈起 客户端与服务器的职责边界 权威模型(Authoritative Model)与可信执行的演化 客户端主导的战斗计算
read more
Posts
分布式时间(Distributed Time)与多世界同步体系
在前几章中,我们确立了“游戏世界是一个状态流(State Stream)”的理念。 但是,如果这个世界被拆散到成百上千个节点上运行,那么问题来了
read more
Posts
状态即数据流(State-as-Stream)与游戏世界的持续计算模型
目录 引言:从状态到流的哲学转变 数据流思想的起源与计算模型演化 游戏服务器中的“流”与“存”之争 状态即流(State-as-Stream)模型定
read more
Posts
AI 驱动的自适应状态同步与智能容灾架构
目录 引言:当“状态管理”成为智能体的任务 AI 与传统状态管理的根本区别 游戏状态的五维特征与可学习空间 智能状态压缩(AI-based State Compre
read more
Posts
从无状态演进到 Serverless —— 游戏状态管理的未来架构趋势
目录 云原生游戏服务的兴起与挑战 Serverless 架构的哲学:瞬时存在的计算 游戏状态的再定义:中心化 vs 分布式 云原生状态管理:K8s、Redis、CRD 与 Actor 模型
read more
Posts
《游戏服务端编程实践》思考02:从 Go 工程视角看有状态架构的实现与演化
目录 Go 与游戏服务端架构的天然契合点 有状态的实现基础:Goroutine、Channel 与内存状态管理 Actor 模型在 Go 环境中的实现方式 状态存储层设计
read more
Posts
《游戏服务端编程实践》思考01:为什么游戏服务器必须是有状态的?能否设计成无状态架构?
目录 引言:从“Hello World”到百万并发的演进 第一章:什么是状态(State)?从哲学到计算机的定义 第二章:状态与游戏世界的本质联系 第
read more
Posts
《游戏服务端编程实践》3.3.3 消息路由与分发策略
一、消息分发的总体架构 在典型的游戏服务器中,消息经过如下路径: flowchart LR A[Socket 收包] --> B[解包 / Header 解析] B --> C[CmdID 查表] C --> D[Dispatcher 分发] D --> E1[LoginHandler] D --> E2[PlayerHandler] D --> E3[BattleHandler] 流程
read more
Posts
《游戏服务端编程实践》3.3.2 封包拆包、粘包与断线重连
一、TCP 是“流”,不是“包” 很多初学者容易犯的错误是把 TCP 当作“包”协议使用。 实际上: TCP 是**面向字节流(stream-based)**的协
read more
Posts
《游戏服务端编程实践》3.3.1 消息头与命令号设计
一、消息的层级结构概念 在网络通信中,一条消息一般由两部分组成: ┌──────────────────────────────────────
read more
Posts
《游戏服务端编程实践》3.2.3 序列化性能与内存占用对比
一、测试设计与评估目标 1.1 测试目的 游戏服务器的通信层常在高并发场景下运行, 每个包的序列化性能对整体吞吐率(QPS/TPS)有直接影响。 目标: 比
read more
Posts
《游戏服务端编程实践》3.2.2 JSON、MsgPack、Cap’n Proto
一、序列化的多样化背景 游戏服务器不仅在实时战斗中传输高频数据,还涉及: 登录认证(跨语言接口) Web 管理 / GM 工具(HTTP 接口) AI 模块(Pytho
read more
Posts
《游戏服务端编程实践》3.2.1 Protobuf 与 FlatBuffers
一、序列化的意义:从内存结构到可传输字节 在网络通信中,我们需要把“内存对象”转换为“字节流”: graph LR A[结构体 / 对象] -->|序列化| B
read more
Posts
《游戏服务端编程实践》3.1.3 延迟与丢包问题分析
一、引言:网络不稳定的必然性 无论游戏服务器多强大、协议多先进, 只要玩家使用移动网络或 Wi-Fi,就无法避免以下问题: 问题 表现 原因 延迟高 技能释
read more
Posts
《游戏服务端编程实践》3.1.2 游戏中的连接保持与心跳机制
一、引言:为什么游戏必须要“心跳” 网络连接就像一条“虚拟电缆”,但它并不是永远稳定的。 在游戏运行中,你可能遇到: 玩家在地铁、Wi-Fi 与 4G 之
read more
Posts
《游戏服务端编程实践》3.1.1 TCP / UDP / WebSocket 对比
一、引言:游戏通信的本质是“实时性 + 一致性”的平衡 在游戏开发中,通信协议决定了“游戏世界如何同步”。 它不仅仅是“传输数据”,而是塑造了整个游
read more
Posts
《游戏服务端编程实践》2.3.4 Rust Tokio + Actix
一、引言:Rust 的异步哲学 Rust 在系统层面提供了三件武器: 零成本抽象(Zero Cost Abstraction) 所有权系统(Ownership & Bor
read more
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
Posts
《游戏服务端编程实践》1.3.0 游戏服务器的核心模块与职责
一、概述:游戏世界的“服务解剖图” 在前几章中我们从「架构形态」的角度认识了 MMO、SLG、MOBA、FPS 的差异与统一。 而当我们进入具体工程
read more
Posts
《游戏服务端编程实践》1.2.5 服务器架构的比较与统一演化
一、前言:架构的多样性与统一性 过去二十年,游戏服务端经历了从单服 → 分布式 → 微服务 → 云原生 → 世界一体化的五次演进。 每一次演进都围绕着同一个目标
read more
Posts
《游戏服务端编程实践》1.2.4 FPS / MOBA 实时性特征与总体架构
一、实时游戏的工程定义 1.1 “实时性”意味着什么? 在游戏网络架构领域,实时性(Real-Time) 不等于“零延迟”, 而是指系统具备在严格时间约束
read more
Posts
《游戏服务端编程实践》1.2.3 SLG / 策略类游戏架构模式详解
一、SLG 的本质与技术特征 1.1 什么是 SLG SLG(Simulation Game / Strategy Game),即“策略模拟类游戏”, 是以 资源规划、领地扩张、部队调度、长
read more
Posts
《游戏服务端编程实践》1.2.2 MMO(大型多人在线游戏)架构模式详解
一、MMO 的定义与特征 1.1 什么是 MMO MMO(Massively Multiplayer Online Game) 指 “支持数千至数十万名玩家在同一虚拟世界中实时交互的在线游戏”。 与单
read more
Posts
《游戏服务端编程实践》1.2.1 单机、局域网与在线游戏对比
一、概述:从“单机”到“在线”的技术演进之路 在游戏发展的半个世纪中,游戏架构 的核心变化可用一句话概括: “从单机的孤立逻辑,到局域网的共享状态
read more
Posts
《游戏服务端编程实践》1.1.2 客户端与服务端的职责划分
一、前言:分层协作是现代游戏架构的根基 在网络游戏中,客户端与服务端共同构成了一个“分布式系统”。 两者之间通过协议进行通信,承担不同职责: 客户
read more
Posts
《游戏服务端编程实践》1.1.3 状态保持与逻辑权威
一、引言:谁在决定游戏的“真相”? 在多人游戏中,所有玩家都在体验同一个“虚拟世界”。 然而,这个世界到底以谁为准? 如果每个客户端都自认为正确 →
read more
Posts
《游戏服务端编程实践》1.1.1 为什么需要服务器
一、引言:从单机到网络化的必然演进 在计算机游戏发展早期,所有游戏都是“单机游戏”。 玩家的输入、逻辑运算、渲染、存档,全都发生在同一台计算机上
read more
Posts
《游戏服务端编程实践》1.2 游戏类型与服务端架构
1.2.1 游戏类型与实时性需求 本节目标: 从玩法特征出发,系统分析不同类型游戏的实时性与架构差异; 结合 Java 与 Go 两种后端工程实践视角,阐述服务器设计模式;
read more
Posts
《游戏服务端编程实践》1.1 游戏服务器的定义与职责
第 1 章 游戏服务器的本质 1.1 游戏服务器的定义与职责 本节目标: 让读者系统理解游戏服务器在整个游戏生态中的定位、职责与作用,为后续架构学习奠定基础。
read more
Posts
《游戏服务端编程实践》目录
《游戏服务端编程实践》——章节大纲文档 第一篇 基础与准备篇:从 0 到 1 认识游戏服务端 第 1 章 游戏服务器的本质 1.1 游戏服务器的定义与职责 1.1.1 为什么需要服
read more
Posts
《Rust编程入门》前言
前言 在当今快速发展的软件开发领域,选择合适的编程语言对于构建可靠、高效和安全的软件系统至关重要。Rust,这门新兴的系统编程语言,以其卓越的
read more