这门课解决什么问题
游戏服务器的底层架构设计、性能调优与高并发处理,正是很多程序员进入游戏行业时最薄弱的环节。C++ 作为游戏服务器的主流开发语言,其内存管理、线程模型与网络协议栈的实现难度远高于应用层业务代码。这门课围绕游戏服务器的完整开发生命周期展开,从基础的网络框架搭建、数据库连接池设计,到消息序列化、会话管理与热更新机制,系统性地拆解了游戏服务端开发中真正卡人的工程问题。
无论你是前端转游戏、刚毕业做外包,还是已有经验但想深入底层,这门课都能帮你补齐从"会写业务逻辑"到"能扛住万人在线"之间的能力缺口。
适合什么基础
课程假设你已掌握 C++ 基本语法和面向对象编程,了解指针、模板、STL 等核心概念。不需要你精通 Qt 或图形渲染,但需要你熟悉 Socket 编程的基本思路(TCP/UDP 的区别、阻塞与非阻塞 IO)。如果你曾经用 Java/Python 写过简单的服务器,转过来也完全没问题——课程会从 C++ 的视角对比讲解差异,重点放在语言特性如何影响游戏服务器的设计决策上。
建议先看哪几块
入门阶段优先看网络框架设计与消息序列化两部分,这两节奠定了整个服务器的通信基石。随后按顺序过数据库连接池与会话管理,理解如何在海量连接下保持数据一致性。有基础的同学可以跳过前导内容,直接进入高并发优化与热更新模块,这两块是区分初级工程师和资深开发的分水岭。
学完能独立做什么
学完后你可以独立从零搭建一个支持万人同屏的游戏服务器框架,掌握消息协议设计、连接管理、数据持久化与异常恢复的核心实现。更重要的是,你会建立游戏服务端的全局思维——知道每一行 C++ 代码在高并发场景下对内存、锁和网络的影响,这是面试和游戏公司项目实战中最被看重的能力。
资料怎么配合练习
课程每节课后都配有对应的源码工程,建议边看边把代码克隆下来跑通。不要只看不动手——尤其是网络帧率和内存泄漏的部分,只有在自己机器上用 Valgrind 或自定义工具实测一遍,才能真正理解课程里讲的优化手段。遇到报错别急着问,先对照课程里的调试思路排查,这个过程本身就是最好的学习。
课程目录
: ├─100-详解12 聊天室服务器 02 网络库asio 14_recv.mkv ├─101-详解 13 聊天室服务器对应的客户端 网络库asio 15_recv.mkv ├─102-详解14 聊天室服务器对应的客户端2 网络库asio 16_recv.mkv ├─103-详解15 消息协议的设计(原始时代的C结构01) 网络库asio 17_recv.mkv ├─104-详解16 消息协议的设计(原始时代的C结构02) 网络库asio 18_recv.mkv ├─105-详解17 消息协议的设计(超越原始的结构体,序列化c++的类01) 网络库asio 19_recv.mkv ├─106-详解18 消息协议的设计(超越原始的结构体,序列化c++的类02) 网络库asio 20_recv.mkv ├─107:详解 19 消息协议的设计(使用简单易的json 01) 网络库asio 2 课程目录 课程目录: ├─100-详解12 聊天室服务器 02 网络库asio 14_recv.mkv ├─101-详解 13 聊天室服务器对应的客户端 网络库asio 15_recv.mkv ├─102-详解14 聊天室服务器对应的客户端2 网络库asio 16_recv.mkv ├─103-详解15 消息协议的设计(原始时代的C结构01) 网络库asio 17_recv.mkv ├─104-详解16 消息协议的设计(原始时代的C结构02) 网络库asio 18_recv.mkv ├─105-详解17 消息协议的设计(超越原始的结构体,序列化c++的类01) 网络库asio 19_recv.mkv ├─106-详解18 消息协议的设计(超越原始的结构体,序列化c++的类02) 网络库asio 20_recv.mkv ├─107:详解 19 消息协议的设计(使用简单易的json 01) 网络库asio 21.mp4 ├─108: 详解20 消息协议的设计(效率和可读性的结合使用protobuf 01) 网络库asio 22.mp4 ├─109: 详解21 消息协议的设计(效率和可读性的结合使用protobuf 02) 网络库asio 23.mp4 ├─110:详解22 消息协议的设计(效率和可读性的结合使用protobuf 03) 网络库asio 24.mp4 ├─111:详解23 asio多线程 01 网络库asio 25.mp4 ├─112:详解24 asio多线程 02 网络库asio 26.mp4 ├─113:详解25 asio多线程 03 网络库asio 27.mp4 ├─114:详解26 asio多线程 04 网络库asio 28.mp4 ├─115:详解27 asio多线程 05 网络库asio 29.mp4 ├─116: 杂项 日志.mp4 ├─117:杂项 async.mp4 ├─118:杂项 lua结合c++ 01.mp4 ├─119:杂项 lua结合c++ 01.mp4 ├─11:伯克利socketAPI第一部分(socket C语言的接口的介绍).mp4 ├─120:杂项 signal等 以及最终的结语.mp4 ├─121:补充内容 cmake工具在linux平台下面的用法和示例.mp4 ├─12:伯克利socket API第二部分(最简单的服务器和对应的客户端C语言的实现).mp4 ├─14:C++语言的历史第一部分.mp4 ├─15:C++语言历史第二部分.mp4 ├─16:安装Linux Ubuntu 14.04虚拟机(准备工作).mp4 ├─17:安装Linux Ubuntu 14.04虚拟机(安装).mp4 ├─18:服务器开发需要用到的部分shell命令(第一部分).mp4 ├─19:服务器开发需要用到的部分shell命令(第二部分).mp4 ├─2-课程概述.mp4 ├─20:服务器开发需要用到的部分shell命令(第三部分).mp4 ├─21:服务器开发需要用到的部分shell命令(第四部分).mp4 ├─22:简易VIM教程(初步,存活状态).mp4 ├─23:简易VIM教程(初步,比存活更进一步).mp4 ├─24:简易VIM教程(初步,又进一步).mp4 ├─25:简易VIM教程(初步,继续进步).mp4 ├─26:scp 和 简易VIM教程.mp4 ├─27:深入学习c++(准备).mp4 ├─28:深入学习c++(关键字 第一部分).mp4 ├─29:深入学习c++(关键字 第二部分).mp4 ├─3-IP详解第一部分.mp4 ├─30:深入学习c++(关键字 第三部分).mp4 ├─31:深入学习c++(关键字 第四部分).mp4 ├─32:深入学习c++(关键字 第五部分).mp4 ├─33:深入学习c++(关键字 第六部分).mp4 ├─34:深入学习c++(关键字 第七部分).mp4 ├─35:深入学习c++(类 为什么要用前置声明).mp4 ├─36: 深入学习c++(类 三个基本原则).mp4 ├─37:深入学习c++(类 c++11后三个基本原则变成了五个基本原则).mp4 ├─38:深入学习c++(类 绝对不要在析构函数里面抛出异常).mp4 ├─39:深入学习c++(类 构造函数失败应该抛出异常).mp4 ├─40:深入学习c++(类 虚函数遇到构造析构就退化了).mp4 ├─41:深入学习c++(类 重新审视auto).mp4 ├─42:深入学习c++(类 左值引用和右值引用(不考虑模板)).mp4 ├─43:深入学习c++(类 构造函数和析构函数的经典应用 智能指针 前因).mp4 ├─44:深入学习c++(类 stdshared_ptr 接口 常规使用).mp4 ├─45:深入学习c++(类 stdshared_ptr 用weak_ptr打破循环引用).mp4 ├─46:深入学习c++(类 stdshared_ptr 用enable_shared_from_this从this转换到shared_ptr).mp4 ├─47:深入学习c++(类 stdunique_ptr 使用智能指针默认的选择,除非要共享).mp4 ├─48:深入学习c++(类 使用智能指针需要注意的几个“坑”).mp4 ├─49:深入学习c++(lambda函数, 简单介绍).mp4 ├─5-IP详解第二部分.mp4 ├─50:深入学习c++(STL之容器,概述).mp4 ├─51:深入学习c++(STL之容器,容器保存的是什么).mp4 ├─52:深入学习c++(STL之容器,容器的通用接口).mp4 ├─53:深入学习c++(STL之容器,stdarray).mp4 ├─54:深入学习c++(STL之容器,stdvector).mp4 ├─55:深入学习c++(STL之容器,stddeque).mp4 ├─56:深入学习c++(STL之容器,stdlist).mp4 ├─57:深入学习c++(STL之容器,stdforward_list).mp4 ├─58:智能指针的一个陷阱(大家实际中应该避免这个坑).mp4 ├─59:深入学习c++(STL之容器,stdset).mp4 ├─6-TCP详解第一部分(介绍 + 工作原理 + 头部详解).mp4 ├─60-深入学习c++(STL之容器,stdset 第二部分)_recv.mkv ├─61-深入学习c++(STL之容器,stdmap)_recv.mkv ├─62-深入学习c++(STL之容器,unordered map set)_recv.mkv ├─63-多线程编程,游戏服务器的基础,简介_recv.mkv ├─64-多线程编程,一种简单的应用,divide and conquer_recv.mkv ├─65-阶段答疑(由学员朋友遇到的面试题展开的分析《构造与析构》)_recv.mkv ├─66-多线程编程,当线程间需要共享非const的资源,(问题引出)_recv.mkv ├─67-多线程编程,(thread的构造和新问题)_recv.mkv ├─68-多线程编程,(thread 和原子操作变量类型)_recv.mkv ├─69-多线程编程,(临界区 mutex)_recv.mkv) ├─7-TCP详解第二部分(状态与连接详解).mp4 ├─70-多线程编程,(临界区 mutex) 2_recv.mkv ├─71-多线程编程,(临界区 mutex) 3_recv.mkv ├─72-多线程编程,thread的两种“死法”_recv.mkv ├─73-多线程编程,thread的间的交互 1_recv.mkv ├─74-多线程编程,thread的间的交互 2_recv.mkv ├─75-多线程编程,thread的间的交互 3_recv.mkv ├─76-多线程编程,thread的间的交互 4_recv.mkv ├─77-Windows下原生API 用IOCP编写一个简易的服务器模型 1_recv.mkv ├─78-Windows下原生API 用IOCP编写一个简易的服务器模型 2_recv.mkv ├─79-Windows下原生API 用IOCP编写一个简易的服务器模型 3_recv.mkv ├─8-TCP详解第三部分(断开以及传送数据详解).mp4 ├─80-Windows下原生API 用IOCP编写一个简易的服务器模型 4_recv.mkv ├─81:Windows下原生API 用IOCP编写一个简易的服务器模型 5.mp4 ├─82:Windows下原生API 用IOCP编写一个简易的服务器模型 6.mp4 ├─83:中期测试视频.mp4 ├─84:boost库中的网络库asio 01.mp4 ├─85:boost库中的网络库asio 02.mp4 ├─86:前篇 中期测试解答.mp4 ├─87:中篇 中期测试解答.mp4 ├─88:后篇 中期测试解答.mp4 ├─89:例子详解 01 boost库中的网络库asio 03.mp4 ├─9-TCP详解04(用wireshark工具查看TCP连接和断开和TCP杂项).mp4 ├─90:例子详解 02 捎带c++黑暗面 boost库中的网络库asio 04.mp4 ├─91:详解 03 lambda的本质 boost库中的网络库asio 05.mp4 ├─92:详解 04 boost库中的网络库asio 06.mp4 ├─93:详解 05 boost库中的网络库asio 07.mp4 ├─94-详解 06 同步阻塞的客户端 boost库中的网络库asio 08_recv.mkv ├─95-详解07时间服务器网络库asio09_recv.mkv ├─96-详解 08 异步时间服务器 网络库asio 10_recv.mkv ├─97-详解 09 Echo服务器 网络库asio 11_recv.mkv ├─98-详解 10 Echo服务器对应的客户端 网络库asio 12_recv.mkv ├─99-详解11 聊天室服务器 01 网络库asio 13_recv.mkv ├─资源 │ ├─Lua程序设计第二版.pdf │ ├─learn.zip │ ├─windowsIocp工程.rar






