基于魔兽开源后端框架 TrinityCore 的技术拆解课程
什么是CMake , CMake 的工作流程
CMakeLists.txt的编写规则
静态库生成以及链接
动态库生成以及链接
嵌套CMake
译调试环境搭建
cmake和graphviz生成目标依赖图
linux vscode编程环境搭建
cmake和clangd实现精准跳转
C/C++插件实现调试
vs2019 windows下编译调试搭建
什么是连接池
为什么需要复用连接
为什么固定连接数
主要应用场景
同步连接池的线程模型
同步连接池接口封装
同步连接池接口使用
同步连接池应用场景
异步连接池的线程模型
异步连接池接[口封装
异步连接池接口使用
异步连接池应用场景
什么是事务
什么情况下讨论事务
事务操作
TrinityCore 中事务处理封装
TrinityCore 中事务处理案例
剥离可复用数据库模块
应用同步连接池案例
异步连接池-单SQL语句的使用
异步连接池-多SQL语句chain式应用
异步连接池多SQL语句holder式应用
异步连接池多SQL语句transaction式应用
日志模块的作用
日志模式核心抽象: logger和appender
logger规则:继承关系、日志级别、以及appender列表
appender如何定义日志打印目的地
日志模块单例构建
采用宏定义定制日志使用接口
如何扩展appender
appender中设计模式模板模式
同步日志方式实现
异步日志方式实现
异步日志线程模型
剥离可复用日志模块
为什么推荐使用异步日志
异步日志日志安全分析及测试
什么是阻塞io网络模型
阻塞io解决连接建立的问题
阻塞io解决连接断开的问题
阻塞io解决数据接收的问题
阻塞io解决数据发送的问题
阻塞io解决网络问题的弊端
什么是reactor ?
reactor构成部分
reactor解决连接建立的问题
reactor解决连接断开的问题
reactor解决数据接收的问题
reactor解决数据发送的问题
reactor解决网络问题的特征: io同步, 事件异步
什么是完成端口
重叠io的作用
iocp解决连接建立的问题
iocp解决连接断开的问题
iocp解决数据接收的问题
iocp解决数据发送的问题
iocp编程步骤
iocp与reactor在编程处理io时的差异
boostasio跨平台网络库
cmake如何在项目中弓入boost.asio
boost.asio中核心命名空间
boost.asio中核心对象: io_ context, socket、 endpoint
boost.asio中异步io接口
asio解决连接建立的问题
asio解决连接断开的问题
asio解决数据接收的问题
asio解决数据发送的问题
为什么需要在用户层实现网络缓冲区
读缓冲区的工作原理
写缓冲区的工作原理
手撕缓冲区实现
剥离可复用网络模块
AsyncAcceptor职责与实现
NetworkThread职责与实现
Socket职责与实现
手撕多线程模式下网络模块的应用
哪些功能模块需要用到地图模块
地图模块的功能构成
地图对象抽象: map、area、 grid、 cell
网络数据驱动地图模块
定时更新驱动地图模块
AOI有哪些实现方式
AOI静态数据工具生成
AOI静态数据数据划分
AOI静态数据组织方式
AOI动态数据组织方式
AOI动态数据驱动方式
AOI地图数据加载
grid网格状态机以及状态转换
AOI地图数据卸载
采用访问者模式实现地图数据与算法的隔离
轴对称边界盒算法AABB算法
TrinityCore中AABB算法实现
AABB算法优化
碰撞检测接C口封装以及应用
A*寻路算法概述
recast-detour开源库
recast根据模型生成导航数据
detour利用导航网格做寻路
寻路接口封装以及应用
技能设计概述
技能数据库表设计(配置)
技能触发:距离、冷却时间、消耗等
技能效果:伤害计算、增益效果等
技能释放流程
AI设计概述
基于行为树的AI设计
AI类继承层次关系;
AI攻击目标选择
AI攻击方式选择
AI移动方式选择
AI基于事件的驱动机制
怪物数据库设计(配置)-属性和行为
怪物刷新规则设计-时间间隔以及范围
怪物属性、技能、掉落、AI
创建和咖载battlegrounds场景地图数据
battlegrounds规则实现
battlegrounds队伍匹配、队伍平衡以及角色分配
battlegrounds奖励系统和排名机制
任务系统数据库设计(配置)
玩家数据库状态存储
任务类型设计
任务触发机制
背包数据结构设计以及数据库表设计
背包容量控制
背包格子管理
背包交互功能实现
数据库表结构设计
工会创建逻辑实现
工会成员管理
工会资源管理及分配机制
工会活动与事件
工会排名实现
工会权限控制
lua基础
lua错误处理
lua编译与预编译
lua模块与包
元表与元方法
环境
lua/c接口编程
智能指针 shared_ptr, unique_ptr
函数对象以及闭包
右值引用
原子操作与锁: atomic、mutex、 condition_variable
多线程环境队列设计: MPSCQueue、ProducerConsumerQueue
单例模式
工厂模式
模板模式
访问者模式
责任链模式
从事游戏后端岗位开发,但没有时间系统学习的在职工程师
从事嵌入式方向开发,想转入游戏后端开发的在职工程师
从事Qt/MFC等桌面开发的, 薪资多年涨幅不大的在职工程师
从事C/C++后台开发,想往游戏服务器方向发展的在职工程师
自己研究学习速度较慢,不能系统构建游戏开发知识体系的开发人员
计算机相关专业想从事游戏开发的在校生(本科及以上学历)
60+小时课程
C++游戏后端开发(魔兽世界,MMO,TrinityCore源码拆解) 教程
基于魔兽开源后端框架 TrinityCore 的技术拆解课程;课程涉及 MMORPG 核心模块实现(高性能网络模块、数据库模块、日志模块、地图模块、以及战斗模块等),同时也包括 MMORPG 核心玩法实现(任务、背包、工会、以及副本等)。通过课程学习,将掌握 MMORPG 核心开发技能。