开源的魔兽世界参考架构——mangos

开源社区常常有很多出人意表的项目,让人往往击节叹赏。例如当年在普通PC电脑上虚拟运行苹果机系统的Pearpc。把微软游戏机xbox改装成家庭影音中心的xbox-media center,以及在ipod上安装linux的ipodlinux等项目。在电脑游戏方面当然也有很多出色的开源项目。

暴雪公司的游戏历来都是精品。网络游戏大热以后,它推出的基于10年游戏历史的网游:《魔兽世界》也更是名声在外(当然有好有坏,坏名声在于它太吸引人以致于很多人沉湎其中)。网络游戏的盈利模式和传统电脑游戏不同,月费和其他的周边产品使得其赢利空间远远大于传统电脑游戏。对于网游运营商来说很大的一个问题是私服的问题。很多私服的软件是从网游开发公司或者运营公司内部非法的流出来的,比如说网游《仙境传说》的私服。

而现在大多数魔兽世界的“私服”实际上是服务端软件的模拟器。是在对客户端游戏软件和与服务端的进行通信的数据进行分析解密以后,开发出来的模拟原游戏服务器功能的软件,这样的模拟器软件大都也是开源软件。比如像现在大部分魔兽私服使用的Mangos服务端软件,mangos项目是一个开源的自由软件(如同linux或者 firefox),并且遵守其中最为严格的GPL协议。

MaNGOS 是(Massive Network Game Object Server)的缩写。由于暴雪公司对类似的开发小组采取过一些法律行动。为了避免麻烦,如同它的名字,mangos强调自己并非一个魔兽服务器模拟器,而是一个开源的多人在线游戏服务器的软件。说到底是个网游的游戏引擎。Mangos开发小组强调其软件是用c++和C#编程语言,实现的一个支持大型多人在线角色扮演游戏服务器的程序框架,在这个框架下,它理论上应该支持任何客户端的网络游戏,由于现在很多人使用魔兽世界来对它进行测试,所以针对魔兽世界的脚本和数据库文件比较完善,很多人就利用这个开源项目来实现魔兽私服。而游戏的内容,例如故事情节,任务场景的脚本等都是由别的小组独立开发的。

开发小组一再强调,这是个研究,教育性质的对怎样开发大型网游的服务器端有好处的项目,是一个技术细节毫无保留向公众开放的软件,是一件很有意义的事情,如果你使用它作为盈利目的,那你本身就违反了软件的协议。所以任何利用mangos项目进行私服活动的组织和个人都违反了mangos的宗旨,mangos项目也不会对它们负责。

mangos的技术细节上是这样的,核心部分是个和特定游戏没有关系的核心框架程序,主要是进行进程调度,创造世界,建立心跳机制,处理网络接入等。数据库可以使用的开源数据库软件MySQL。至于游戏内容数据库,游戏人物,时间,世界脚本,都是由这个核心程序所支持的扩展脚本来实现,所以有一些独立出来的项目专门模拟魔兽世界来开发支持mangos的核心程序。现在mangos的核心程序已经放到著名的协同开发网站 sourceforge上开发了,使用的协同开发工具是subversion。大家都可以从sourceforge的subversion数据库中下载最新的源代码程序。


为了测试这个Mangos我自己安装了一个测试了以下,自己对魔兽世界的游戏本身没有太多的了解,请了几个玩过魔兽世界的朋友测试了一下,都说各方面已经很完美了。最新的Mangos项目已经支持了魔兽世界的扩展版“燃烧的远征”,简称TBC,对应的魔兽客户端版本到了2.0以上。以下的安装测试步骤适用于魔兽世界客户端1.12.1或1.12.2的版本。

一、安装需求:


操作系统Windows Xp,解压软件推荐7-zip 。(mangos论坛上有人在linux,macosx上安装,为了提取地图方便这里使用windows XP)
魔兽世界的客户端软件,升级到1.12.1版本以上。
编译好的Mangos二进制文件。(你也可以自己编译,我这里提供的是Mangos Rev 3462,3462是开发数据库的版本号),下载地址:    http://filebeam.com/22b7839a746adbd95f3ac3853f3bf9ed
http://www.megaupload.com/?d=T0SGUOQB
地图提取工具ad.exe(这个地图提取工具是专门针对1.12.x版本的客户端的,TBC需要比较新的ad.exe,TBC的地图提取工具不适用老版本的地图),下载地址:http://www.megaupload.com/?d=DZW472B4
mpq文件包提取工具MPQE_1.2.rar,暴雪公司的游戏都采用一种叫mpq的文件格式,是Mike O'Brien Pack的缩写,这个Mike就是暴雪公司的首席游戏程序开发人员,和创始者。我们需要使用mpqe.exe从客户端里提取相关文件。下载地址:
http://www.megaupload.com/?d=VL2DXHXW
开源数据库软件MySql
官网:MySQL
或者用我下载的
版本:http://www.megaupload.com/?d=ODYRBWSF
MySQL的客户端软件SQLyog,编译管理操作数据库
官网:here
我下载的版本5.30:http://www.megaupload.com/?d=DD0LK19H
游戏内容数据库,配合Mangos Rev 3462的版本。
文件名:CompleteSDB156-Mangos3462.rar
下载地址:
http://www.megaupload.com/?d=0EME2U4Y

二、安装MySQL数据库,以及SQLyog客户端


点击安装文件选择典型安装(Typical)
配置数据库服务器"Configure the MySQL Server Now",选择标准配置"Standard Configuration"。
确认安装成windows的服务程序和自动启动服务"Install as Windows Service"、"Launch the MySQL Server Automatically"。
输入你的root用户的密码。可以打开的使用root远程管理数据库的选项,便于远程管理,和链接。
应用你的设置。
点击安装SQLyog的安装文件,安装到缺省路径,运行SQLyog。
当SQLyog运行后,需要输入以下信息:
MySQL主机地址:可以输入你的本机IP地址或者"localhost"。
用户名(UserName):root
密码(Password):在第4步里面你配置的密码。
数据库(database(s))输入:"realmd;mangos"
点击连接,这样客户端就连接到你的MySQL数据库服务器上了。
在左边一栏右键点击“root@localhost”,选择建立数据库"Create Database"。
当提示输入数据库名称的时候输入:"mangos"。
重复第9,10步建立数据库"realmd"。


三、安装Mangos服务器,配置路径


建立一个目录,例如:"C:/MaNGOS"
把你下载的mangos的二进制文件解压到这个目录里面。
检查你的两个重要的服务器配置文件:“mangosd.conf”和“realmd.conf”。其中“mangosd.conf”里面可以配置物品,金钱的掉落率,经验值的增长率等等。

四、解压安装地图文件

 

把ad.exe放在魔兽世界的安装目录下,例如("C:/World of Warcraft")
建立一个子目录叫maps,结构为:("C:/World of Warcraft/maps")
运行ad.exe文件。耐心等待ad.exe把魔兽世界的地图信息提取到maps目录下。
将maps子目录拷贝到"C:/MaNGOS"目录下,结构为:"C:/MaNGOS/maps",里面的地图文件大概有2400多个。
可以安全的删除"C:/World of Warcraft"下的maps子目录了。

五、解压安装提取的*.dbc文件

 

在你的mangos的安装目录下建立dbc子目录,结构为:("C:/MaNGOS/dbc")
为了将暴雪公司的mpq文件的内容解压出来,将提取工具mpqe.exe拷贝在魔兽世界安装目录的data目录下,结构为:("C:/World of Warcraft/data")
打开dos窗口,进入魔兽世界的data目录(cd "C:/World of Warcraft/data")。
执行以下命令:
mpqe /p dbc.MPQ    DBFilesClient/*.dbc
mpqe工具将魔兽的游戏信息提取到了/MPQOUT/DBFilesClient目录下,整个结构为:("C:/World of Warcraft/data/MPQOUT/DBFilesClient")
当mpqe运行结束后,可以将所有的*.dbc拷贝到你的mangos的dbc目录下:("C:/MaNGOS/dbc"),你大概有158个*.dbc文件。
你可以安全删除魔兽世界下的dbc文件目录:("C:/World of Warcraft/data/MPQOUT")了。

七、下载安装数据库内容,前文说过,mangos只是游戏引擎,游戏的内容,建立的数据库由独立小组开发,我们这里使用著名的
Silver's Database Site的库。版本号为SDB156.

 

将下载的CompleteSDB156-Mangos3462.rar文件解压,里面有几个数据库文件。找到其中“realm-database-full.sql”和“mangos-full-for-rev3462.sql”文件。
使用SQLyog连接到你的数据库。
在左栏找到realmd,点击右键选择"Restore from SQL Dump",找到“realm-database-full.sql”,导入数据库文件。
同样找到mangos,点击右键选择"Restore from SQL Dump",找到“mangos-full-for-rev3462.sql”,导入数据库文件。

八、配置数据库,配置文件,运行开源魔兽服务器!本文只为测试游戏,在局域网中玩。

 

使用SQLyog连接到你的数据库。
找到realmd,展开找到"realmlist"选项。
在右下找到"Table Data"。
在name一项填入你的服务器名字,例如叫faif
在地址address一项可以使用"localhost" 或者你的IP地址。
在realmd数据库下找到account表,点击"Table Data",建立你的游戏帐号,里面已经由几个内置的帐号,你可以参照gm,普通玩家的帐号建立你的用户名,密码。
在mangos目录下打开realmd.conf文件,找到
"LoginDatabaseInfo ="
改为:"LoginDatabaseInfo = "127.0.0.1;3306;root;[password];realmd"
这里的IP地址可以是你的IP,[password]是你的密码。存盘。
在mangos目录下打开mangosd.conf文件,找到如下的内容,并设置如下:
DataDir = "."
WorldDatabaseInfo = "127.0.0.1;3306;root;[password];mangos"
LoginDatabaseInfo = "127.0.0.1;3306;root;[password];realmd"
同样,这里的IP地址可以是你的IP,[password]是你的密码。存盘。


到这里基本就大功告成了。先运行realmd.exe文件,稍等,运行mangosd.exe,魔兽服务器就已经运行了。
连接到你的魔兽服务器,修改你的魔兽世界客户端的realmlist.wtf的文件,将127.0.0.1,或者你的IP地址填在里面,例如:"set realmlist 127.0.0.1"

 

到此为止,开源的魔兽服务器就架设成功了,我给朋友建立了几个gm帐号,他们测试了一下,觉得这个版本的做的很不错了,开源的宗旨是知识的分享,开源社区黑客们的探索精神不得不让人佩服。

注:本文是基于欧洲客户端和北美客户端1.12.1提取测试的。如果你使用魔兽世界中文版1.12.3来测试可能会遇到版本不兼容的信息提示。可能的解决方法有:


1. 降级到1.12.1
2. 自己编译mangos的源代码,在mangos源代码中:
     找到这个文件“src/shared/Common.h”,第48行(以下引用的是最新的mangos源代码,mangos的开发策略是每段开发过程只支持一个版本,这样保证代码的整体质量,现在的版本是6546也就是wow TBC 2.0.12),你可以用svn commit out老版本,修改这行代码,然后编译生成你自己的mangos执行文件。
44 // we need to stick to 1 version or half of the stuff will work for someone  
45 // others will not and opposite  
46 // will only support WoW and WoW:TBC 2.0.12 client build 6546...  
47   
48 #define EXPECTED_MANGOS_CLIENT_BUILD         {6546, 0}

 

关于如何下载MANGOS源码

怎么下载MANGOS源码

mangos-gui Mangos的GUI版控制工具(svn地址)
http://mangos-gui.googlecode.com/svn/trunk/

MangosWFE网站系统(SVN更新地址)
http://opensvn.csie.org/MangosWFE/

mangos-luascript脚本(svn更新地址)
http://mangos-luascript.googlecode.com/svn/trunk

HTTP地址 http://download.toaoto.cn FTP地址 ftp://ftp.toaoto.cn FTP帳號和密碼:wow
Mangos SVN:
http://opensvn.csie.org/mangoswebsite
MangosWeb

http://svn.sourceforge.net/viewvc/mangos/trunk/?view=log
MangosLog

http://svn.sourceforge.net/svnroot/mangos/trunk/
MangosTrunk

http://www.mangosproject.org/forum/
MangosForum

鉴于有些新手不会下载源码...所以我写个帖子出来..给新手参考参考.
1:先下载TortoiseSVN-1.3.5.6804-svn-1.3.2这个工具
LanguagePack-1.3.5.6804-win32-zh_CN(这个是语言补丁)
下下来安装好以后在Setting里面改下语言就OK了
http://luwakin.gbdisk.com/这位帅哥的网络硬盘里面有!
然后安装...........(废话....)

2:源码地址
https://opensvn.csie.org/ScriptDev/trunk ---------------ScriptDev

https://mangos.svn.sourceforge.net/svnroot/mangos--------------Mangos

Silver DataBase Communities SVN is located here:
https://opensvn.csie.org/SDB/
https://opensvn.csie.org/traccgi/SDB/trac.cgi/timeline

SVN contains the latest table data and DB updates, in XML or SQL formats only. Full DB releases can be found in "Index of the Released DBs" section.

https://opensvn.csie.org/SDB

https://opensvn.csie.org/mangoDB

http://opensvn.csie.org/MangosDatabaseProject

3:参照我的图下载吧!!!!
(1)先创建个文件夹.然后右键选SVN取出,在里面输入上面的源码地址!
(2)然后确定后就自动下载了.下载完毕要导出下载的文件...参照最后张图导出就OK啦!

1) 首先,你需要有2个软件,第一个就是下载及更新MANGOS源码用的TortoiseSVN.第二个就是VS2003或者VS2005.
注意:这里推荐使用VS2003.因为在使用VS2005时,出现了很多错误...导致编译失败...
而用VS2003时,没有出现任何问题.

MaNGOS

2) 在作完第一步后,我们可以在电脑里新建一个文件夹.这里以C:/盘来举例.例如C:/mangos.
在建好的文件夹上点击右键.你会看到"SVN Checkout..." , 点了...跳出来一个框框,
在"URL of repository"里面输入"https://mangos.svn.sourceforge.net/svnroot/mangos"
在这个下面有一个选项,你需要选中"HEAD",好了...点击OK吧.

3) 作完上面这一步后, 用右键点击MANGOS文件夹,你会看到"SVN Update",点击他吧,这会让你的MANGOS源码升级,以后每次只要点击"SVN Update",就可以让你的MANGOS源码保持在最新版.

4) 接下来,就是开始编译MANGOS了~~~是不是很兴奋了...
打开VS2003, 选择"Open Project",然后打开"C:/Mangos/win/" 选择"mangosdVC71.sln"
如果你用的是VS2005, 就要打开"mangosdVC80.sln"

5) 接下来的这一步,我建议你看一下图片来明白你需要作什么.

6) 呵呵.这一步就是等待了.编译是需要时间的...等VS帮你作好吧.

7)嗯...过了一会~~~ 编译好了.

你可以"C:/Mangos/bin/release/"里面找到编译好的MANGOS. 需要的是这几个文件

libeay32.dll, libmySQL.dll, mangosd.exe, MaNGOSScript.dll, realmd.exe

嗯, 好像还少什么

mangosd.conf和realmd.conf是不是, 我们可以在"C:/Mangos/src/mangosd/"和C:/mangos/src/realmd/"里面找到mangosd.conf.in , realmd.conf.in
啊 名字不一样 嗯 把后面的.in去掉吧.

SQL文件了可以在"C:/Mangos/sql/"里面找到...当然只有一个架构的..嘿嘿...
升级的SQL文件可以在"E:/Mangos/sql/updates"里面找到...

ScriptDev

下载最新版本的ScriptDev并将和MaNGOS一起使用,你需要以下几个步骤:
1) 新建一个文件夹,并命名。在文件夹上点右键。。。
如同上面Mangos源码的下载方式一样, 使用SVN Checkout, URL地址为 https://opensvn.csie.org/ScriptDev/trunk , 然后使用 SVN Update
2) 在作完上面的步骤后,在这个文件夹上点右键, 选择“TortoiseSVN” ,再选择 “Export“
选择一个新建文件夹.然后点OK,好了 最新版本的ScriptDev已经出来了
3) 到Export好的这个新文件夹里面,复制 SQL, SRC, WIN 这三个文件夹到Mangos文件夹里,
好了,当你编译MANGOS时,将带着最新版本的ScriptDev...
重要:当有ScriptDev的新版出来时。。。你必需重复上面的动作。。。

好了...一个最新版本的MANGOS在你手上出现了...是由你自己完成的哦...是不是特别兴奋~~~

下面的需要的软件,推荐使用2003...2005好多问题的说...
TortoiseSVN
点此下载
VC++ Express Edition
点此下载

数据库可以用990100的0712数据库...

http://bbs.99nets.com/read.php?tid=426801&fpage=2

编译好的MANGOS如何安装也可以参考990100的说明...

好了。。。带着ScriptDev的MaNGOS将成为真正的MaNGOS最新版。。。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值