自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 系统设计阶段性复盘2026.08.24

目前决策卡缺少细节,处于“有正确直觉,但缺乏工程化量化”的阶段。

2026-08-24 12:23:46 6

原创 系统设计第六天决策卡

利用成就系统激励玩家完成特定目标,并获得奖励。

2026-08-24 12:16:20 20

原创 系统设计第五天决策卡

现售卖一个稀有角色,每人限购1次,每日限购100个(全服),售卖7天。

2026-08-24 11:39:58 42

原创 系统设计第四天决策卡

玩家第一次进入游戏,引导完成一系列操作。

2026-08-23 13:05:14 151

原创 系统设计第三天决策卡

在一款MMORPG,击杀怪物后,需决定掉落物品。

2026-08-23 11:52:57 214

原创 系统设计第二天决策卡

相同物品ID的可堆叠。

2026-08-23 11:42:28 141

原创 系统设计第一天决策卡

玩家登录后,再活动签到页面打卡获得奖励,需记录每日打卡记录。

2026-08-23 11:34:09 198

原创 c++习题集

gitee练习题连接

2026-08-21 21:29:00 13

原创 系统设计思维训练——方法论

示例:“您说的聊天系统,是全服频道还是私聊?大概同时在线多少人?消息需要保存历史记录吗?

2026-08-19 15:03:24 239

原创 c++游戏后端开源框架学习——wukong(十、lua热更新)

原理解正确理解C++中有一段Lua逻辑在跑C++嵌入了Lua VM,按需调用Lua函数Lua热更需要C++配合C++代码编译时就预留了分支,运行时通过Redis切换Lua直接操作游戏对象Lua通过lightuserdata拿到C++指针,转发给C++动态库操作热更=修改C++代码热更=替换消息处理入口(从C++函数切换到Lua函数)

2026-08-18 09:59:39 257

原创 c++游戏后端开源框架学习——wukong(九、开发规范学习)

if (!obj未定义,应该是role// ...} // ← 缺少分号,应该是 };// ...} // ← 缺少分号教训:C++类定义末尾必须有分号,编译器不报错可能是因为后面的声明被解析为继承列表的一部分。错误描述正确做法裸new不deletenew了对象忘了释放用unique_ptr或early return导致泄漏new和delete之间加了return用RAII(智能指针)this指针捕获lambda捕获this,对象可能已销毁捕获循环引用。

2026-08-17 10:11:41 182

原创 游戏后端分布式学习——CAP / BASE 在系统里的具体取舍

C(Consistency)一致性:所有节点在同一时刻看到的数据是一样的。你充值了 648 元,无论在哪个服务器查询余额,都是多了 648 元。A(Availability)可用性:每次请求都能得到一个非错误的响应,但不保证是最新数据。比如你查排行榜,哪怕数据是 5 秒前的,也能给你一个结果。P(Partition Tolerance)分区容忍性:网络断了,部分节点联系不上,系统还能继续工作。比如机房光纤被挖断,游戏还能让玩家继续玩。

2026-08-14 18:05:45 339

原创 c++游戏后端开源框架学习——wukong(八、战斗)

Battle 服是 Wukong 的实时战斗服务器,采用**帧同步(Lockstep)**架构,通过 KCP/UDP 协议实现低延迟通信。它负责运行确定性战斗模拟,并将帧数据同步给所有参与者。打个比方:Battle 服就像一个棋盘裁判——所有棋手(玩家)把"我要走哪步"(帧输入)告诉裁判,裁判按顺序执行每一步,然后把"第N步所有人都走了什么"(帧同步包)广播给所有棋手,所有人看到的棋局完全一致。Wukong 的坦克大战 Demo 选择帧同步,因为:Battle 服同时使用两种通信协议:为什么用两种?四

2026-08-13 18:38:06 201

原创 c++游戏后端开源框架学习——wukong(七、场景)

scene/

2026-08-13 16:42:19 190

原创 c++游戏后端开源框架学习——wukong(六、大厅)

lobby/

2026-08-13 10:19:19 204

原创 c++游戏后端开源框架学习——wukong(五、登录)

login/

2026-08-12 18:41:41 711

原创 c++游戏后端开源框架学习——wukong(四、网关)

nexus/,客户端代码在。

2026-08-12 17:55:06 159

原创 c++游戏后端开源框架学习——wukong(三、服务注册与发现)

nexus/,客户端代码在。

2026-08-12 15:49:12 212

原创 c++游戏后端开源框架学习——wukong(二、核心基础设施)

Wukong 使用 Protobuf 的选项自动生成 RPC 框架代码,并通过corpc// 踢出玩家 —— 需要协程处理,需要等待返回值// 转发消息给客户端 —— 不关心返回值,不产生协程切换// 心跳 —— 2秒超时问题解决方案异步编程逻辑碎片化协程 + 同步风格编程线程锁竞争协程绑定线程 + 无锁队列服务器间通信复杂Protobuf RPC + Agent代理模式RPC阻塞线程协程自动挂起/恢复消息处理并发安全同一玩家消息串行处理(等待队列)小包太多。

2026-08-12 11:51:52 303

原创 c++游戏后端开源框架学习——wukong(一、总览)

各服务职责。

2026-08-11 12:35:55 220

原创 游戏后端分布式学习——etcd

强一致的分布式 KV 存储,基于 Raft 共识算法定位:分布式系统的"协调大脑"——存元数据、配置、协调状态,不存业务热数据对比:Redis 是 AP 系统(高性能,弱一致),etcd 是 CP 系统(强一致,性能次之)

2026-08-10 20:59:36 230

原创 mongodb面试题

副本集是 MongoDB 的高可用方案,由一个主节点和多个从节点组成。主节点负责写,从节点同步数据并在主节点故障时自动接管。在游戏后端中,它解决了单点故障和数据备份问题,同时通过读写分离提升性能。配置读写分离很简单,在查询时设置 readPref(‘secondary’) 即可,但需要注意从节点可能有秒级延迟,关键数据读主节点。

2026-08-10 19:52:43 228

原创 c++开发实践——简易聊天

学习socket编程。

2026-08-07 11:38:44 29

原创 ai制作的个人健康监控系统

添加链接描述

2026-08-06 11:03:01 177

原创 c++高级特性

继承和重载 exception 类来定义新的异常int main()try//其他的错误。

2026-08-04 22:13:14 215

原创 c++面向对象编程

如果你的类型主要是一堆公开的数据,用 struct。如果你的类型有私有状态和公有接口,用 class。

2026-08-03 18:57:01 170

原创 游戏后端分布式学习——分布式锁与选主

分布式锁是最直接、最成熟的方案,尤其适合:短时间、高频次的互斥操作对一致性要求极高(不能出现重复奖励)需要跨服务器协调。

2026-07-31 18:33:42 253

原创 游戏后端分布式学习——无状态 vs 有状态的边界重划

所谓"状态,就是业务数据——玩家的会话、血量、位置、购物车内容,都是状态。

2026-07-30 19:39:40 256

原创 c++基础语法

所以c++提供了一个更高效的写法,这个只针对构造函数有效这个冒号 : 引导的语法叫做“成员初始化列表”

2026-07-29 18:21:54 205

原创 只会脚本语言的游戏后端自我提升之路——c++学习(开篇)

为了补足不会一个高级静态语言的技能空白,但不想规规矩矩的学,这不符合我社畜的学习方式,所以我打算采取看视频和做项目快速上手,故开启该篇章记录学习过程。

2026-07-28 18:10:51 200

原创 游戏后端分布式学习——消息队列在游戏的用法

消息队列(Message Queue,MQ)在 MMO 中主要用于异步解耦、削峰填谷、跨服通信、事件驱动。

2026-07-28 17:25:09 406

原创 游戏后端分布式学习——缓存和DB的一致性套路

其本质:内存对象是权威,DB 是备份。一致性窗口:从上次存盘到崩溃这段时间的数据可能丢失容忍度:游戏行业普遍接受"丢失最近 30 秒数据",因为:玩家不会每分钟都在做不可逆操作即便丢了 30 秒经验,对玩家体验影响有限可以通过"关键操作立即存盘"来缩小窗口(如升级、交易、充值)

2026-07-27 18:17:00 367

原创 对于不同类型角色类游戏的战斗系统思考

代表:《梦幻西游》《宝可梦》《最终幻想》早期作品、《仙剑》战斗核心需求:双方轮流下达指令(攻击/技能/道具/逃跑)速度属性决定同一回合内谁先出手一个完整回合 = 所有单位各行动一次战斗结果是确定性的(同样操作得到同样结果),便于做战斗录像和平衡'(暴击!

2026-07-26 20:35:07 204

原创 中级游戏后端的逆袭之路——常规游戏功能设计(六、防作弊)

作弊的本质就是:玩家修改了本该由游戏规则控制的数据。比如把血量改成无限、让角色瞬移、一枪打出9999伤害……所以防作弊的第一条铁律就是:所有影响游戏公平的关键逻辑,必须在服务器执行,客户端只负责显示和操作指令。

2026-07-26 16:55:45 348

原创 中级游戏后端的逆袭之路——常规游戏功能设计(五、拍卖行)

常规商品和限定商品的管理竞拍。

2026-07-24 14:16:32 176

原创 redis数据结构学习——stream

Redis Stream 是 Redis 5.0 引入的持久化消息队列数据结构。你可以把它想象成一个只能追加的日志文件,每条消息都有一个自动生成的、按时间排序的唯一 ID(格式如 1633000000000-0,前半是毫秒时间戳,后半是序列号)它的核心特性:有序:消息按加入顺序严格排列持久化:消息写入后会落到 Redis 的数据文件中,重启不丢失消费者组(Consumer Group):多个消费者可以组成一个组,分工消费消息,每条消息只被一个消费者处理。

2026-07-24 14:13:15 176

原创 游戏常见算法——A*算法

你已经走过的路有多长​ —— 这叫 g 值(实际代价)。你猜剩下的路还有多远​ —— 这叫 h 值(启发式估计)。A* 算法每次都会选 总花费最小(g + h)的方向去探索,这样既能保证最终找到最短路径,又比盲目的广度优先搜索快得多。

2026-07-22 20:35:16 862

原创 游戏后端分布式学习——一致性协议Raft

以下先按照mmo游戏进行分布式学习,后续章节都是如此。

2026-07-21 22:13:25 291

原创 游戏后端分布式学习——开篇

本人目前只有5年游戏后端的开发经验,最近几年越发感觉对于分布式开发吃力,本系列主要目的尽可能提升自己,且贴合游戏后端岗位经常面临的问题进行学习。

2026-07-20 17:04:49 175

原创 skynet——上下文管理

在 skynet 中,一个服务 ≠ 一个 Lua VM ≠ 一个进程,而是:C 层有一个 struct skynet_context 结构体Lua 层(snlua 模块)里有一个 Lua VM两者之间通过 context->ud 互相绑定你可以把 context 理解为服务的"身份证 + 邮箱 + 把手":身份证:handle(服务地址,32位,高8位是 harbor id,低24位是本地序号)邮箱:queue(每个 context 绑定一个消息队列,worker 线程从这里取消息)

2026-07-20 13:43:34 254

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除