MaNGOS是WoW的模拟服务器端工程,架设在sourceforge上,使用C++,开放源码,代码写的很清楚,架构清晰,质量很高.我看重的,是其对3D游戏服务端编程的通用流程和问题的处理手法和经验.研究消息包结构,一般就能推断WoW采取哪种逻辑方案来解决一些棘手的通用问题,而服务端编程质量在很大程度上取决于程序员的经验.
由于采用大量优雅的模板技法,MaNGOS的编译速度很成问题,调试变得有点困难.

C++的编译速度确实是一个很大的问题,编译速度缓慢直接导致了修改代码再调试的这个频繁的开发行为变得难以忍受,开发效率大大降低.
C++模板是很优秀的技术,但是因为其难以忍受的编译速度,有时也就不敢大规模应用了,只在些小地方耍耍小聪明.连那个常用的Singleton模板我也是不敢用的,编译的太慢了,还是手写的Instance方法比较快.
 
本来是希望CPU速度上去后,编译速度的问题自然就会解决,但事实上从VC6->VC2003->VC2005,一个比一个编译地慢,CPU全让M$自己给用光了.

我现在以为使用Lua,Python等脚本技术可以解决C++的编译速度导致的开发问题,把易变的逻辑全转到脚本去,脚本的编译是最快的了.

我的机器比较老,用的1.6G的P4,完全编译MaNGOS要花7-10分钟,game模块特别地慢,一改动关键的头文件就要重新全部编译.我又喜欢在写程序同时看下载的电影,编译地就更慢了.调试时又要开wow客户端,:(.

不知道使用Stdafx预编译后速度会不会快一些.至少每个cpp的Include段要整理一下,把比较稳定的头文件放到最前,有利于预编译,Common.h里的EXPECTED_MANGOS_CLIENT_BUILD经常变动,还是挪出来比较好.

自己最近几天,改了些东西:
0.修改主工程配置,去除zlib和zthread两个dep工程,这样载入工程会快一些.
1.因为很讨厌事先要导出Ddc和Maps数据,所以修改了MaNGOS让其直接去读MPQ文件里的dbc和maps.
2.DOTCONFDocument不支持多字节配置字符串,我用"D:\魔兽世界\Data"这个目录,isspace函数assert报警,改成_istspace解决.
3.整合网上的MaNGOS的2446 TBC版本,做了个_TBC_BUILD_预定义编译分支,意图同时支持当前和TBC版本,TBC升到2046后,CMSG_AUTH_SESSION验证算法失败,然后厌倦了MaNGOS的编译,等我机器升级了再继续.

转自

MaNGOS工程概介

MaNGOS工程概介相关推荐

  1. 实用化工计算机模拟-matlab在化学工程中的应用的光盘程序_这150款化工常用软件,你会用多少?...

    点击上方蓝字关注我们! 化工设计.计算过程通常都有专用的商业软件或者是工程公司自行开发的软件或者计算表格.大的设计公司通常也会指定公司用于以上设计过程的软件或经过确认的表格.下面小编就总结看看常用的那 ...

  2. java中实现接口采用的关键字是_一个Java类实现一个接口使用的是implements关键字。...

    个用务人为是导致的债的行销权可能债权人行使撤. 无关调制信号它与及电方式速率,类实务的新业宽带也是引入方便手段,在网展中络发,想的扩容是理手段. 个接s关标志牌的要求水线设置. 的受定期通信预算资格建 ...

  3. 一级造价工程师和一级建造师,你更想考哪一个?

    很多人在考完一建后会选择再考造价,因为造价相对于建造师来说,选择项目更灵活.而且造价的报考条件比一建高,考试难度整体来说大于一建.所以很多同学都会纠结于造价工程师和一级建造师到底考哪一个,哪一个难度更 ...

  4. 通信专业应掌握的计算机软件,全国通信专业技术人员职业水平(中级)考试大纲...

    &nbsp&nbsp[导读]:全国通信专业技术人员职业水平(中级)考试大纲 全国通信专业技术人员中级职业水平考试大纲 本大纲是以人事部.信息产业部<关于印发〈通信专业技术人员职业 ...

  5. JAFC封面 | 沈其荣院士团队综述调控根际微生物组保障植物健康

    利用根际微生物组工程改善植物健康的新兴途径 近日,沈其荣院士课题组在国际期刊Journal of Agricultural and Food Chemistry以Supplementary Cover ...

  6. 《AngularJS深度剖析与最佳实践》一第2章 概 念 介 绍

    本节书摘来自华章出版社<AngularJS深度剖析与最佳实践>一书中的第2章,作者 雪狼 破狼 彭洪伟,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第2章 概 ...

  7. Mangos模拟器综合资源贴

    [   post] Mangos服务器配置文件中文说明 #Mangosd.conf, 适用于芒果服务器 2600+版本 # MaNGOS Configuration file ConfVersion= ...

  8. Spring Boot 工程集成全局唯一ID生成器 Vesta

    2019独角兽企业重金招聘Python工程师标准>>> 本文内容脑图如下: 文章共 760字,阅读大约需要 2分钟 ! 概 述 在前一篇文章 <Spring Boot工程集成全 ...

  9. FM:代谢无机硫化合物的古菌Ferroplasma可介导细胞外电子传递

    文章目录 新观点:代谢无机硫化合物的古菌*Ferroplasma*可介导细胞外电子传递 导读 摘要 背景 1 方法 1.1 提取DNA.RNA和高通量测序 1.2 宏基因组数据的生物信息学分析 1.3 ...

  10. 水利水电工程管理与实务电子版习题_水利水电工程管理与实务复习题集.pdf

    第 1 页 水利 水 电工程 技术 工 程 概 论 熟悉水力学的基本概念 水力荷载 水流 形态 及 能量转换 渗透 系数 及 渗透变 形 水下一个任意倾斜放置 的矩形平面 ,当 表示平面的长度 ( 表 ...

最新文章

  1. R语言stringr包str_ends函数、str_starts函数起始、结束字符串判断实战
  2. 权重随机算法的java实现
  3. 自制 QQ游戏 连连看 外挂 ~~
  4. ActiveMQ配置文档
  5. 韩国遭 Lazarus Group 供应链攻击
  6. IOS Emoji表情
  7. mysql search yum_mysql的yum安装与配置
  8. MyBatis框架、log4j、数据库的配置文件
  9. 火狐firefox扩展插件开发extension代码调试方法
  10. UTF-8转GBK(GBK转UTF-8)
  11. 原版安装Win10 1909专业版 64位MSDN镜像2020 05
  12. python偏最小二乘法公式,python3 偏最小二乘法实现
  13. 储能补贴有望出台?钱从哪来还是个问题
  14. NIOS II——PIO寄存器分析及使用
  15. 58、JAVA Collections集合排序相关静态方法---方法1
  16. VC程序里判断系统是64位还是32位的正确方法
  17. 工程部署(三):低算力平台模型性能的优化
  18. redis --- List类型使用
  19. java html5 cms,企业内部cms业务管理系统html5简洁的模板
  20. 用于Chrome的前端开发插件

热门文章

  1. SpringCloud Gateway详解与配置
  2. 黑苹果系统升级OC引导升级简单
  3. ios 设置属性的center_iOS游戏平台Game Center成就显示设置指南
  4. 技术分享| 如何使用FFmpeg命令处理音视频
  5. enoent ENOENT: no such file or directory,
  6. 500. 键盘行【我亦无他唯手熟尔】
  7. Jzoj5605 Zkb
  8. 6.26 mongoDB是无法find未初始的值的,mongoose的Schema需具象化及个人商品Schema设计,租赁网登录态初次尝试,vue对对象未赋初值的监听,forEach等api深拷贝问题
  9. PMI-ACP练习题(22)
  10. 终极选择---老男孩教育