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