MMORPG游戲服務(wù)器框架的可行性報(bào)告 (提高生產(chǎn)效率)
縱觀游戲服務(wù)器技術(shù)框架, 以運(yùn)行在Linux操作系統(tǒng)上的居多, 為什么要運(yùn)行在Linux上呢? 相信很多人會(huì)給出肯定的答案, Linux操作系統(tǒng)是開(kāi)源的,而且是免費(fèi)的,那叫做專業(yè)!是的,不錯(cuò),是專業(yè)。但有一個(gè)問(wèn)題讓我們值得思考的是,雖然是免費(fèi)的,但Linux工具比較貧乏,在某種程度上大大加在了開(kāi)發(fā)成本及后期調(diào)試時(shí)間,所以我們不得不研究出一種代碼可以運(yùn)行在Linux,但又要節(jié)省開(kāi)發(fā)成本,提高生產(chǎn)效率的可行性方案。在Linux上,古老的Linux C程序員一般會(huì)采用一個(gè)文本編輯工具,比如:VI等,由于我以前是在windows下生活的,對(duì)VS.net這一類的工具頗為喜愛(ài),它的開(kāi)發(fā)方便快捷,又有開(kāi)發(fā)輔助插件的支持,使你可以盡情使用智能提示,快捷鍵,代碼模板等高效生產(chǎn)代碼。可以說(shuō)編碼更多的是依靠可視化工具查錯(cuò),快速跳轉(zhuǎn)代碼等。反正我的意思就是開(kāi)發(fā)相當(dāng)愉悅。但Linux下的C程序員則不然,我也曾經(jīng)問(wèn)過(guò)他們?yōu)槭裁匆捎肰I等編輯工具來(lái)編代碼,首先,他們給到我的第一答案是"專業(yè)", 其實(shí)我也不太懂他們說(shuō)的專業(yè)是什么,是傳統(tǒng)意義上的,還是習(xí)慣性必須的;然后他們說(shuō):“使用makefile文件來(lái)編譯代碼很爽,速度很快”,這一點(diǎn)我是贊同的,但有個(gè)問(wèn)題是程序員的入門(mén)門(mén)檻比較高,要求大家都要會(huì)這東西,還是麻煩,從HR招聘處可以看到,本來(lái)投C++程序員的人就比較少了,因?yàn)镃++應(yīng)用的領(lǐng)域基礎(chǔ)是應(yīng)用軟件,游戲啊,電信啊,還是一些MFC界面性的東西,而且要求功底比較好,確實(shí)有時(shí)候招人還是挺難的,更不用說(shuō)還要有Linux開(kāi)發(fā)經(jīng)驗(yàn)的人了。最后,我問(wèn)了linux開(kāi)發(fā)不員說(shuō)那你們的調(diào)試用什么工具,他們說(shuō):“gdb”, 又是一個(gè)"手打牛肉丸",自我感覺(jué)很痛苦,心里想“為什么有那么先進(jìn)的工具,比方說(shuō):Eclipse CDT, 你們不用呢?”,其實(shí)他們心中也是有答案的,“編碼要養(yǎng)成一種好習(xí)慣,而不是依靠于某種工具”,顯然Linux程序員在編碼上大體要比windows上的程序員來(lái)得嚴(yán)格,也感覺(jué)到他們的代碼比較有質(zhì)量。但很顯然的,由于開(kāi)發(fā)環(huán)境的布署比較麻煩,對(duì)于大規(guī)模生產(chǎn)是否能夠每個(gè)人都有那么高素質(zhì)的編程能力,那就是個(gè)"謎"!------ “猜不準(zhǔn)!”
針對(duì)上面的情況,我也自己分析了一下,軟件開(kāi)發(fā)的三大要素是什么,成本,質(zhì)量,進(jìn)度, 只有這三項(xiàng)東西控制得好,那才能控制好項(xiàng)目。
那軟件編程的基礎(chǔ)是什么? 當(dāng)然是調(diào)用操作系統(tǒng)的API了,很顯然的, 不同操作系統(tǒng)有不同的API,除非你有一個(gè)跨平臺(tái)的開(kāi)發(fā)框架,或者叫類庫(kù)也行。
接下來(lái)軟件架構(gòu)在不同領(lǐng)域是否通用?比方說(shuō):通信框架,很顯然的,還是有區(qū)別的,比方說(shuō)電信系統(tǒng)與游戲系統(tǒng),那顯然還是不一樣的。
最后,軟件編碼與接口(API)是不是應(yīng)該更多人常用的,而且容易上手的(友好第一!),這樣才可以減少開(kāi)發(fā)成本及協(xié)調(diào)工作。
總結(jié)一下,我心中已有答案了,必須采用一種大多數(shù)程序員可以接受的,而且是他們熟悉的(不要DIY的),而且開(kāi)發(fā)速度快速的開(kāi)發(fā)方式那才是真道理。
以下是我的基本方案:
一、 跨平臺(tái)框架的基礎(chǔ)設(shè)施 (組件圖)
1. MySQL數(shù)據(jù)庫(kù)操作組件
2. 線程池 及 讀寫(xiě)鎖
3. 基礎(chǔ)數(shù)據(jù)類型,容器,內(nèi)存池,環(huán)形緩沖區(qū)
4. IOCP及Epoll跨平臺(tái)的面向?qū)ο笸ㄐ趴蚣?/span>
5. 集成LuaTinker腳本交互模塊等
二、 開(kāi)發(fā)方式與調(diào)試環(huán)境
本框架的初步設(shè)想是前期在Windows下使用VS.net 2008進(jìn)行開(kāi)發(fā)調(diào)試,爭(zhēng)取在Windows下解決80%左右的邏輯錯(cuò)誤。之后由主程序員把代碼移植到Linux,并使用Eclipse CDT可視化開(kāi)發(fā)環(huán)境進(jìn)行后期的調(diào)試工作。這樣也大大降低招聘人員的知識(shí)要求(不用懂Linux),在某一程度降低了人員成本和加快了開(kāi)發(fā)效率。
posted on 2010-07-09 02:45 RedLight 閱讀(1624) 評(píng)論(2) 編輯 收藏 引用 所屬分類: 系統(tǒng)架構(gòu)設(shè)計(jì)