开源的魔兽世界参考架构——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的版本。
⼀、安装需求:
⼆、安装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数据库服务器上了。
在左边⼀栏右键点击”,选择建⽴数据库"Create Database"。
当提⽰输⼊数据库名称的时候输⼊:"mangos"。
重复第9,10步建⽴数据库"realmd"。
三、安装Mangos服务器,配置路径
建⽴⼀个⽬录,例如:"C:/MaNGOS"
把你下载的mangos的⼆进制⽂件解压到这个⽬录⾥⾯。
检查你的两个重要的服务器配置⽂件:“f”和“f”。其中“f”⾥⾯可以配置物品,⾦钱的掉落率,经验值的增长率等等。
四、解压安装地图⽂件
把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⽂件的内容解压出来,将提取⼯具拷贝在魔兽世界安装⽬录的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⽬录下打开f⽂件,到
"LoginDatabaseInfo ="
改为:"LoginDatabaseInfo = "127.0.0.1;3306;root;[password];realmd"
这⾥的IP地址可以是你的IP,[password]是你的密码。存盘。
在mangos⽬录下打开f⽂件,到如下的内容,并设置如下:
DataDir = "."
WorldDatabaseInfo = "127.0.0.1;3306;root;[password];mangos"
LoginDatabaseInfo = "127.0.0.1;3306;root;[password];realmd"
同样,这⾥的IP地址可以是你的IP,[password]是你的密码。存盘。
到这⾥基本就⼤功告成了。先运⾏⽂件,稍等,运⾏,魔兽服务器就已经运⾏了。
连接到你的魔兽服务器,修改你的魔兽世界客户端的realmlist.wtf的⽂件,将127.0.0.1,或者你的IP地址填在⾥⾯,例如:"set realmlist 127.0.0.1"
到此为⽌,开源的魔兽服务器就架设成功了,我给朋友建⽴了⼏个gm帐号,他们测试了⼀下,觉得这个版本的做的很不错了,开源的宗旨是知识的分享,开源社区⿊客们的探索精神不得不让⼈佩服。
注:本⽂是基于欧洲客户端和北美客户端1.12.1提取测试的。如果你使⽤魔兽世界中⽂版1.12.3来测试可能会遇到版本不兼容的信息提⽰。可能的解决⽅法有:
1. 降级到1.1
2.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
47
48 #define EXPECTED_MANGOS_CLIENT_BUILD {6546, 0}
关于如何下载MANGOS源码
怎么下载MANGOS源码
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.
3:参照我的图下载吧
(1)先创建个⽂件夹.然后右键选SVN取出,在⾥⾯输⼊上⾯的源码地址!
(2)然后确定后就⾃动下载了.下载完毕要导出下载的⽂件...参照最后张图导出就OK啦!
1) ⾸先,你需要有2个软件,第⼀个就是下载及更新MANGOS源码⽤的TortoiseSVN.第⼆个就是VS2003或者VS2005.
注意:这⾥推荐使⽤VS2003.因为在使⽤VS2005时,出现了很多错误...导致编译失败...
⽽⽤VS2003时,没有出现任何问题.
MaNGOS
2) 在作完第⼀步后,我们可以在电脑⾥新建⼀个⽂件夹.这⾥以C:/盘来举例.例如C:/mangos.
在建好的⽂件夹上点击右键.你会看到"" , 点了...跳出来⼀个框框,
在"URL of repository"⾥⾯输⼊"mangos.svn.sourceforge/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, , MaNGOSScript.dll,
嗯, 好像还少什么
啊 名字不⼀样 嗯 把后⾯的.in去掉吧.
SQL⽂件了可以在"C:/Mangos/sql/"⾥⾯到...当然只有⼀个架构的..嘿嘿...
升级的SQL⽂件可以在"E:/Mangos/sql/updates"⾥⾯到...
ScriptDev
好了...⼀个最新版本的MANGOS在你⼿上出现了...是由你⾃⼰完成的哦...是不是特别兴奋~~~
下⾯的需要的软件,推荐使⽤2005好多问题的说...
TortoiseSVN
点此下载
VC++ Express Edition
在线代码运行器点此下载
数据库可以⽤990100的0712数据库...
编译好的MANGOS如何安装也可以参考990100的说明...
好了。。。带着ScriptDev的MaNGOS将成为真正的MaNGOS最新版。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论