MaNGOS魔兽单机学习之路01:MaNGOS大芒果历史背景

最近看到各种学习的伙伴想学习MaNGOS的技术,但不知道怎么入手,于是我整理了一下,希望对大家有帮助。
如果了解过各个芒果团队的人,看下图就更清晰了。(绿色底色的是表示有专业团队维护)

<ignore_js_op> 

一、大芒果 MaNGOS是什么
        首先mangos项目是一个开源的自由软件(如同linux或者firefox),并且遵守其中最为严格的GPL协议,也就是保证源代码绝对的自由,要了解什么是开源软件,自由软件请自己搜索这方面的资料。其次开发小组一再强调,这是个研究,教育性质的对怎样开发大型网游的服务器端有好处的项目,是一个技术细节毫无保留向公众开放的软件,是一件很有意义的事情,如果你使用它作为盈利目的,那你本身就违反了软件的协议。所以任何利用mangos项目进行私服活动的组织和个人都违反了mangos的宗旨,mangos项目也不会对它们负责。
mangos的技术细节上是这样的,核心部分是个和特定游戏没有关系的核心框架程序,主要是进行进程调度,创造世界,建立心跳机制,处理网络接入等。数据库也是使用的开源数据库软件MySQL,编译器使用的是GCC。至于游戏内容数据库,游戏人物,时间,世界脚本,都是由这个核心程序所支持的扩展脚本来实现,所以有一些独立出来的项目专门模拟魔兽世界来开发支持mangos的核心程序。(参考百度百科 https://baike.baidu.com/item/Mangos/2115936?fr=aladdin

     但是我的服务端这么好,怎么能证明我的性能强劲呢?于是就找了魔兽世界作为研究例子。从客户端分析协议反算出来数据接口,于是变有了Zero、One、Two等版本,那mangos 为什么会维护魔兽世界的各个版本,而不是只有一个版本呢,从服务端的角度来看, wow 的各个版本可以看作不同的游戏。如 60 级和 70 级这两个相邻版本内容差异至少在 30% 以上,非相邻版本的差异性就更大了,所以很多 bugfix 需要各个版本重复做的。
     MaNGOS维护的版本目前有: 60地球时代,70TBC时代、80WLK时代、大灾变以及熊猫人5个版本。
     官网:https://www.getmangos.eu
     源码:https://github.com/mangos

    维护的版本代码:

  • Mangos Zero - For Vanilla World of Warcraft 60
  • Mangos One - For World of Warcraft: The Burning Crusade TBC
  • Mangos Two - For World of Warcraft: The Wrath of the Lich King WLK
  • Mangos Three - For World of Warcraft: The Cataclysm CTM
  • Mangos Four - For World of Warcraft: Mists of Pandaria 熊猫人


二、CMaNGOS分离。
         在MaNGOS团队合作一段时间后,团队之间的一些成员意见出现了分歧。于是部分成员开始脱离MaNGOS,自行组成CMaNGOS团队,基础代码也是在MaNGOS分离出来的,然后独立维护。
        
CMaNGOS维护的版本有三个,分别是:Classic 60年代、TBC 70、WoTLK 80年代。
        官网:https://cmangos.net
        源码:https://github.com/cmangos

三、TrinityCore建立
        在这个时候,MaNGOS已经发展得比较成熟了,但不够统一,
于是UDB领袖人物Brian提出整合MANGOS、SD2、UDB、ACID以及各种补丁的新版本TrinityCore(俗称TC),并由MANGOS技术组骨干成员进行研发,在技术和经验上都有很好的保证 。
         
TrinityCore维护的版本目前有2个,分别是:3.3.5a的WLK版本、master(7.3.2.25549)军团再临版本
        官网:https://www.trinitycore.org
        源码:https://github.com/TrinityCore

四、其他分支维护发展梳理
        1、Nostalrius(简称N服)(1.12.1地球时代)E
lysium-project  
      魔兽世界最大的私服大约15万玩家,Nostalrius(下称N服),后来被暴雪娱乐以私服运营破坏了公司使用条款为由,正式起诉了N服的运营者,他们也无奈的宣布N服将被迫停服。在2016年4月10日服务器时间晚上11点,N服永久停服。但是N服要求暴雪重启怀旧服计划,
如果嘉年华期间没有《魔兽世界》怀旧服的进一步消息,他们会重启怀旧服。暴雪在嘉年华结束后并没有给出确切消息,双方撕破脸皮。Nostalrius发布公告,将重启魔兽怀旧服,并公开所有的相关代码。同时将官推更名为“NostalriusBegins”,意为N服重新开始。
          N服为了避免法律纠纷,将源码和玩家合并到E服
,高峰时段同时在线玩家达到了30500人。并建立了源码项目:
elysium-project。然而,暴增的人数让E服长期排队,日常排队2W+,E服要增设新的服务器。不过,Nostalrius对于合作并不满意,他们认为现在服务器的状态与他们的目标是相反的。他们的目标是能够获得暴雪官方服务器。但现在却从‘粉丝服务器’变成了‘盗版服务器’,Nostalrius肩负的是要求暴雪开启60怀旧服的责任,于是,出现了分歧之后,Nostalrius决定撤出。
          N服官网:https://en.nostalrius.org/
          E服源码:https://github.com/elysium-project

       2、LightsHope 项目
        在E服发展壮大之后,团队内部两位核心成员利用GM权限出售金币和装备。其中一位名叫Sheena,他被指挪用了2000欧元,约15557人民币的捐助资金,这本来是用于维持项目继续的款项,被Sheena用于了“个人经济需求”。于是部分技术骨干成员不满这种情况,在暂停服务器,COPY一份数据之后成立了新的项目LightsHope,肩负N服的使命继续前行。
       官网:https://lightshope.org
       源码:https://github.com/LightsHope 目前迁移到 https://github.com/lh-server/core

五、修复程度对比

       1.12.1版本   LH>
classic>Zero
       代码规范性与友好性   TC > Mangos
       资源占用情况 LH >
 classic > ZERO
六、学习线路
       看到这里,相比大家已经对MaNGOS的恩怨已经了解得大概了。那学习的线路也可以很明确了,MaNGOS是基础,必须学的,至于你想学习那一个分支,就看你需求了。

好多资料都是在新闻看到,然后整理的,不对的地方,大家指出吧。
好的,下一节课:我们正式开始学习编译服务端教程。

所以无论学习哪个端,MaNGOS是必须,如果是入门我建议从MaNGOS ZERO开始吧,虽然其他版本有了一些改动,但大体上还是相似的。后续的教程也会以 MaNGOS ZERO 作为例子进行说明,服务器的编译有Windows和Linux多种,目前教程以Windows为主。

课程分三大类
基础课程规划:搭建起单机端,自己可以玩
中级课程规划:创建、修改任务、物品、NPC等常用需求(需要简单的数据库基础)
高级课程规划:自己用源码服务端、自定义法术等高级操作(需要C++与LUA基础)

其他优化版本:
WLK版本 比较完善的有
TrinityCore 
源码 https://github.com/TrinityCore


AzerothCore  
官网:http://www.azerothcore.org
源码:https://github.com/azerothcore/azerothcore-wotlk


SunwellCore
官网:https://sunwell.pl/

                                                                                                 MOON 2018-1-9
#############################################

                 大芒果技术QQ群:346428059

#############################################

posted @ 2018-11-20 13:32  moonx  阅读(12512)  评论(0编辑  收藏  举报
嘿!