在sourceforge上開(kāi)發(fā)的mangos(Massive Network Game Object Server)項(xiàng)目是基于GPL協(xié)議的。據(jù)說(shuō)是和魔獸世界獨(dú)立無(wú)關(guān)的網(wǎng)絡(luò)游戲服務(wù)器引擎程序。游戲的內(nèi)容部分(數(shù)據(jù)庫(kù)內(nèi)容)又是由獨(dú)立的小組開(kāi)發(fā)的,這樣也許避免了很多法律上的問(wèn)題。但是大多數(shù)魔獸世界的盈利的私服都是基于這個(gè)開(kāi)源的項(xiàng)目的,為此開(kāi)發(fā)小組表示這樣盈利性質(zhì)的服務(wù)器和對(duì)他們項(xiàng)目的使用是違背協(xié)議和非法的。
本文對(duì)mangos作一個(gè)粗略的介紹,并且使用了魔獸世界的客戶(hù)端對(duì)mangos作了一些測(cè)試。
開(kāi)源社區(qū)常常有很多出人意表的項(xiàng)目,讓人往往擊節(jié)嘆賞。例如當(dāng)年在普通PC電腦上虛擬運(yùn)行蘋(píng)果機(jī)系統(tǒng)的pearpc。把微軟游戲機(jī)xbox改裝成家庭影音中心的xbox-media-center,以及在ipod上安裝linux的ipodlinux等項(xiàng)目。在電腦游戲方面當(dāng)然也有很多出色的開(kāi)源項(xiàng)目。
暴雪公司的游戲歷來(lái)都是精品。網(wǎng)絡(luò)游戲大熱以后,它推出的基于10年游戲歷史的網(wǎng)游:《魔獸世界》也更是名聲在外(當(dāng)然有好有壞,壞名聲在于它太吸引人以致于很多人沉湎其中)。網(wǎng)絡(luò)游戲的盈利模式和傳統(tǒng)電腦游戲不同,月費(fèi)和其他的周邊產(chǎn)品使得其贏利空間遠(yuǎn)遠(yuǎn)大于傳統(tǒng)電腦游戲。對(duì)于網(wǎng)游運(yùn)營(yíng)商來(lái)說(shuō)很大的一個(gè)問(wèn)題是私服的問(wèn)題。很多私服的軟件是從網(wǎng)游開(kāi)發(fā)公司或者運(yùn)營(yíng)公司內(nèi)部非法的流出來(lái)的,比如說(shuō)網(wǎng)游《仙境傳說(shuō)》的私服。
而現(xiàn)在大多數(shù)魔獸世界的“私服”實(shí)際上是服務(wù)端軟件的模擬器。是在對(duì)客戶(hù)端游戲軟件和與服務(wù)端的進(jìn)行通信的數(shù)據(jù)進(jìn)行分析解密以后,開(kāi)發(fā)出來(lái)的模擬原游戲服務(wù)器功能的軟件,這樣的模擬器軟件大都也是開(kāi)源軟件。比如像現(xiàn)在大部分魔獸私服使用的Mangos服務(wù)端軟件,mangos項(xiàng)目是一個(gè)開(kāi)源的自由軟件(如同linux或者 firefox),并且遵守其中最為嚴(yán)格的GPL協(xié)議。
MaNGOS 是(Massive Network Game Object Server)的縮寫(xiě)。由于暴雪公司對(duì)類(lèi)似的開(kāi)發(fā)小組采取過(guò)一些法律行動(dòng)。為了避免麻煩,如同它的名字,mangos強(qiáng)調(diào)自己并非一個(gè)魔獸服務(wù)器模擬器,而是一個(gè)開(kāi)源的多人在線游戲服務(wù)器的軟件。說(shuō)到底是個(gè)網(wǎng)游的游戲引擎。Mangos開(kāi)發(fā)小組強(qiáng)調(diào)其軟件是用c++和C#編程語(yǔ)言,實(shí)現(xiàn)的一個(gè)支持大型多人在線角色扮演游戲服務(wù)器的程序框架,在這個(gè)框架下,它理論上應(yīng)該支持任何客戶(hù)端的網(wǎng)絡(luò)游戲,由于現(xiàn)在很多人使用魔獸世界來(lái)對(duì)它進(jìn)行測(cè)試,所以針對(duì)魔獸世界的腳本和數(shù)據(jù)庫(kù)文件比較完善,很多人就利用這個(gè)開(kāi)源項(xiàng)目來(lái)實(shí)現(xiàn)魔獸私服。而游戲的內(nèi)容,例如故事情節(jié),任務(wù)場(chǎng)景的腳本等都是由別的小組獨(dú)立開(kāi)發(fā)的。
開(kāi)發(fā)小組一再?gòu)?qiáng)調(diào),這是個(gè)研究,教育性質(zhì)的對(duì)怎樣開(kāi)發(fā)大型網(wǎng)游的服務(wù)器端有好處的項(xiàng)目,是一個(gè)技術(shù)細(xì)節(jié)毫無(wú)保留向公眾開(kāi)放的軟件,是一件很有意義的事情,如果你使用它作為盈利目的,那你本身就違反了軟件的協(xié)議。所以任何利用mangos項(xiàng)目進(jìn)行私服活動(dòng)的組織和個(gè)人都違反了mangos的宗旨,mangos項(xiàng)目也不會(huì)對(duì)它們負(fù)責(zé)。
mangos的技術(shù)細(xì)節(jié)上是這樣的,核心部分是個(gè)和特定游戲沒(méi)有關(guān)系的核心框架程序,主要是進(jìn)行進(jìn)程調(diào)度,創(chuàng)造世界,建立心跳機(jī)制,處理網(wǎng)絡(luò)接入等。數(shù)據(jù)庫(kù)可以使用的開(kāi)源數(shù)據(jù)庫(kù)軟件MySQL。至于游戲內(nèi)容數(shù)據(jù)庫(kù),游戲人物,時(shí)間,世界腳本,都是由這個(gè)核心程序所支持的擴(kuò)展腳本來(lái)實(shí)現(xiàn),所以有一些獨(dú)立出來(lái)的項(xiàng)目專(zhuān)門(mén)模擬魔獸世界來(lái)開(kāi)發(fā)支持mangos的核心程序。現(xiàn)在mangos的核心程序已經(jīng)放到著名的協(xié)同開(kāi)發(fā)網(wǎng)站 sourceforge上開(kāi)發(fā)了,使用的開(kāi)發(fā)工具是subversion。大家都可以從sourceforge的subversion數(shù)據(jù)庫(kù)中下載最新的源代碼程序。
ps:
MaNGOS是WoW的模擬服務(wù)器端工程,架設(shè)在sourceforge上,使用C++,開(kāi)放源碼,代碼寫(xiě)的很清楚,架構(gòu)清晰,質(zhì)量很高.個(gè)人看重的,是其對(duì)3D游戲服務(wù)端編程的通用流程和問(wèn)題的處理手法和經(jīng)驗(yàn).研究消息包結(jié)構(gòu),一般就能推斷WoW采取哪種邏輯方案來(lái)解決一些棘手的通用問(wèn)題,而服務(wù)端編程質(zhì)量在很大程度上取決于程序員的經(jīng)驗(yàn).由于采用大量?jī)?yōu)雅的模板技法,MaNGOS的編譯速度很成問(wèn)題,調(diào)試變得有點(diǎn)困難.