開源的魔獸世界

來源:互聯網
上載者: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}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.