開源的魔獸世界參考架構——mangos

來源:互聯網
上載者:User

開源社區常常有很多出人意表的項目,讓人往往擊節歎賞。例如當年在普通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最新版。。。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.