当前位置: 首页 > news >正文

暗黑的故事

起因

网友问:mqtt+json ,数据包比较大如何优化 。本地用json也记录一下。

俺的回答是:mqtt 其实可以选择 ProtoBuf。本地存储可以走 sqlite、文本、bin、dat 等。

网友又问了ProtoBuf的一些事情,俺就讲了 ProtoBuf 和 暗黑破坏神的故事。

还聊了本地存储和sqlite的使用。

俺的回答是:“要看定位。 是存储承载? 还是业务承载?sqlite 作为数据存储是可以的 ,作为关系数据库承载复杂业务 是欠缺的。如果 业务报表超过 300个报表,如果对接的其他系统超过 20个。不建议sqlite”

故事

暗黑破坏神与 ProtoBuf 的故事,本质是暴雪在《暗黑 3》时代用 Google ProtoBuf 重构网络协议、解决跨平台与高并发难题,进而影响整个战网体系的技术演进史。下面从背景、起因、落地、影响与社区故事五部分讲清楚。


一、前传:暗黑 1/2 的 “野蛮生长”

1996 年《暗黑 1》、2000 年《暗黑 2》均为纯 C++ 自研私有协议

  • 二进制封包手写解析,无 Schema,靠硬编码字段偏移;
  • 仅支持 Windows,跨平台(后来的 Mac / 主机)几乎不可能;
  • 后期维护灾难:新增字段要改两端代码、强制同步更新,版本兼容极差;
  • 《暗黑 2》战网卡顿、外挂泛滥,协议加密弱、易被抓包篡改。

当时 ProtoBuf 尚未开源(2008 年才对外发布),暴雪只能 “自己造轮子”,但轮子越跑越歪。


二、转折:暗黑 3 立项,拥抱 ProtoBuf(2005–2008)

2005 年《暗黑 3》正式立项,核心目标:全平台(PC/Mac/ 主机)、强联网、防外挂、易扩展。老协议完全扛不住,暴雪盯上了 Google 内部用了多年、2008 年开源的Protocol Buffers(ProtoBuf)

为什么选 ProtoBuf?(暴雪官方考量)
  • 极致紧凑:二进制序列化,比 JSON 小 3–10 倍,带宽占用降 70%+,适配海量玩家并发;
  • 跨语言 / 平台:C++/C#/Java/Python 全覆盖,一次写 Schema(.proto),全平台生成代码,完美支持 PC/Mac/ 主机多端互通;
  • 强兼容:新增字段不破坏旧客户端,支持灰度更新,解决《暗黑 2》“更新即断层” 痛点;
  • 防篡改:结构化二进制 + 校验,比纯文本难破解,外挂抓包分析成本陡增;
  • 开发效率:自动生成序列化 / 反序列化代码,告别手写解析,Bug 率降 80%。
关键决策节点

2007 年,暴雪正式将 ProtoBuf 纳入《暗黑 3》核心网络栈,成为业界最早大规模用 ProtoBuf 的 3A 网游,比多数厂商早 5 年以上。


三、落地:暗黑 3 的 ProtoBuf 实践(2008–2012)

1. 协议架构:全消息 ProtoBuf 化
  • 所有客户端↔服务器通信(登录、角色、战斗、掉落、拍卖行)均用ProtoBuf 消息
  • 核心 Schema(.proto)按模块拆分:
    • Account.proto:账号、登录、权限;
    • Hero.proto:角色、技能、装备;
    • Combat.proto:战斗、伤害、技能释放;
    • Item.proto:物品、掉落、属性;
  • 底层 TCP+Protobuf+AES 加密,兼顾性能与安全。
2. 开发痛点与妥协
  • 版本锁定:初期用 ProtoBuf 2.3(2008 版),不敢升级 —— 怕兼容性翻车,一用就是 10 年;
  • 性能调优:C++ 生成代码极致优化,禁用反射、用内存池,把延迟压到 **<1ms**;
  • 主机适配:PS3/Xbox 360 内存有限,精简 Schema、裁剪冗余字段,单包控制在1KB 内
3. 效果:暗黑 3 的 “技术翻身仗”
  • 2012 年发售时,百万级并发无压力,全球玩家同服稳定;
  • 跨平台无缝互通(PC/Mac/PS3/Xbox 360),当时绝无仅有;
  • 外挂大幅减少:协议加密 + 结构化二进制,抓包 / 篡改难度指数级上升;
  • 后续更新(如夺魂之镰、死灵法师)无需强制更新客户端,灰度发布顺滑。

四、扩散:从暗黑 3 到整个暴雪帝国

ProtoBuf 在《暗黑 3》的成功,让暴雪彻底 “路转粉”,迅速推广到全产品线:

  • 星际 2(2010):API 与通信全用 ProtoBuf,开源s2client-proto,催生海量 AI / 分析工具;
  • 魔兽世界(2014+):6.0 版本逐步替换老协议,核心通信 ProtoBuf 化;
  • 炉石传说(2014):全程 ProtoBuf,跨平台(PC / 手机)顺滑;
  • 战网统一:整个Battle.net账号、好友、商城系统全部基于 ProtoBuf,一套协议打通所有游戏。

行业影响:暴雪的标杆效应,让 ProtoBuf 成为网游行业标准 —— 后来的《英雄联盟》《王者荣耀》均采用类似技术。


五、社区 “野史”:玩家与 ProtoBuf 的爱恨情仇

1. 模拟器与协议逆向

《暗黑 3》Beta 期间,玩家社区迅速盯上 ProtoBuf:

  • 2011 年,开源项目Mooege逆向出《暗黑 3》核心 ProtoBuf Schema,写出私人服务器,让玩家免费玩单机;
  • 工具diablo_sniffer抓包解析 ProtoBuf 消息,还原战斗 / 掉落逻辑,外挂作者与暴雪攻防战持续多年。
2. 拍卖行的 “原罪”

2012–2013 年《暗黑 3》拍卖行(RMAH)争议巨大:

  • 技术上,拍卖行是 ProtoBuf 的 “巅峰应用”—— 每秒数万笔交易、跨服数据同步全靠 ProtoBuf 支撑;
  • 玩家吐槽:“ProtoBuf 这么快,就是为了让暴雪赚手续费”,最终 2014 年暴雪关闭 RMAH。
3. 暗黑 4 的延续

2023 年《暗黑 4》依然基于ProtoBuf 3(终于升级),Schema 更精简、性能更强,支持开放世界无缝跨区,传承暗黑 3 的技术遗产。


六、总结:技术决定体验

《暗黑破坏神》与 ProtoBuf 的故事,是3A 游戏技术选型的经典案例

  • 暗黑 1/2:手写私有协议→体验差、维护难、外挂多
  • 暗黑 3:拥抱 ProtoBuf→跨平台、高并发、强安全、易扩展
  • 暗黑 4:迭代 ProtoBuf→开放世界、无缝体验、全球同服

一句话:没有 ProtoBuf,就没有今天全球化、高稳定的暗黑系列,甚至整个暴雪战网生态

http://www.jsqmd.com/news/864624/

相关文章:

  • NotebookLM效应量计算:为什么92.6%的研究者误用η²而非ω²?统计效力衰减预警与重分析工具包限时开放
  • NotebookLM知识管理革命(方法论失效预警与重建方案)
  • 使用 rust 编写package 加速python PyO3
  • 汽车诊断系统信息安全TARA分析及测试评价研究
  • ISO 11452-2测试中定向耦合器补偿系数设置误差分析与校准实践
  • 深耕胶东酒韵坚守纯粮匠心 威海老牌酒企以品质传承赋能市场发展 - 资讯焦点
  • 30天学会AI工程师|Day 21:做完 RAG 之后,真正值得学的是怎么判断它到底有没有变好
  • 除了Post-Train,我们还能对大模型做什么
  • 如何快速批量处理照片水印:摄影师的智能水印解决方案终极指南
  • 2026 年 5 月佛山首饰回收机构分级评分:6 家热门平台 添价收登顶 S 级 - 资讯焦点
  • Python AUTOSAR:企业级ARXML自动化架构解决方案
  • 5分钟免费实现Windows风扇终极控制:打造个性化散热系统
  • Photoshop怎样更换图片背景底色?手机和电脑详细步骤对比 | 2026实测方法
  • 边缘智能网关选型指南:从RK3588到RV1126,如何匹配场景需求
  • 【DeepSeek企业级落地白皮书】:基于17家客户真实案例的6大合规接入路径
  • 杭州避暑亲子游首选目的地 OMG 心跳乐园打造一站式避暑遛娃体验 - 资讯焦点
  • 山东无甲醛整木定制厂家真的存在吗?4家真ENF级品牌实测 - 资讯焦点
  • 告别底层架构塌方:全网硬核横评,胶原蛋白肽口服饮品哪个好?
  • Understat异步足球数据引擎全面解析:实战应用与技术深度指南
  • Taotoken的Token Plan套餐如何帮助项目更精准地控制预算
  • Bilibili-Evolved快捷键终极指南:如何彻底解决按键冲突问题?
  • 2026 年 5 月佛山黄金回收机构分级评分!S 级只有添价收黄金回收一家 - 资讯焦点
  • 2026 干皮眼霜该怎么选?多款眼霜测评,这款能有效抚平眼周细纹 - 资讯焦点
  • ncmdumpGUI:Windows平台网易云音乐NCM文件转换完整解决方案
  • 2026年乌鲁木齐精装装修机构top5推荐,实践经验案例分享!
  • 从GitHub Issue自动建模到会议语音秒转可执行SOP:2026真正落地的AI知识闭环工具,只有这2个做到端到端无损
  • 别再被环境配置卡壳!Mac版Claude Code安装与API对接保姆级指南(附常见报错解决)
  • RFID智能货架和智能托盘厂家怎么选?采购决策者需要关注的六个核心维度 - 资讯焦点
  • 2026全新网页游戏排行榜,人气口碑双高的网页游戏排名
  • 如何快速配置OpenProject开发环境:跨平台部署的终极指南