青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Creative Commons License
本Blog采用 知識共享署名-非商業(yè)性使用-禁止演繹 3.0 Unported許可協(xié)議 進行許可。 —— Fox <游戲人生>

游戲人生

游戲人生 != ( 人生 == 游戲 )
站點遷移至:http://www.yulefox.com。請訂閱本博的朋友將RSS修改為http://feeds.feedburner.com/yulefox
posts - 62, comments - 508, trackbacks - 0, articles - 7

游戲腳本變量存取優(yōu)化

Posted on 2007-12-17 19:55 Fox 閱讀(1569) 評論(5)  編輯 收藏 引用 所屬分類: G游戲編程

Author: Fox

在MMORPG中,存在大量的數(shù)據(jù)文件和腳本文件,這些文件涉及很多變量,當玩家信息需要存取時(上線、下線、保存、服務器交互),即伴隨著大量的讀寫操作。隨著游戲中游戲任務的增加,每一個玩家對應的需要數(shù)據(jù)庫存取的腳本變量的數(shù)據(jù)量也隨之線性增長,隨著玩家數(shù)量的增加,在服務器保存玩家角色信息的時候,通信量的大小是相當可觀的,使用多線程讀寫,可以使服務器的處理能力大幅增強,但網(wǎng)絡和數(shù)據(jù)庫承受的壓力也會大幅增加。

當然現(xiàn)在有很多的腳本語言為我們設計任務系統(tǒng)提供了便利,像Lua、Python、Ruby這些動態(tài)語言的功能越來越強,而且可以肯定的是,會有越來越多的產品采用這些優(yōu)秀的語言。但我今天要談的不是如何使用動態(tài)語言,也不是討論動態(tài)語言孰優(yōu)孰劣的問題,而是對于大量的腳本變量的存取優(yōu)化。說白了,這對于使用自定義腳本語言的游戲開發(fā)人員才更有參考價值。而且我要說的問題很小,小到我只是講一點點內容,只是我今天下午的一點活,總結下來更多只是為了讓自己記住,并不是教育別人。

假設在整個腳本系統(tǒng)中,存在500個與玩家相關而且需要數(shù)據(jù)庫存取的腳本變量,如果一個游戲世界中擁有3000個在線玩家,平均每個玩家的腳本變量大小為10KB,如果服務器同時保存這3000個玩家的數(shù)據(jù)(那可不僅僅是腳本變量,當然腳本變量所占的分量比較大就是了),3000×10KB,哦……與此同時,服務器還要進行其實正常的網(wǎng)絡通信和邏輯處理(雖然不可能是同一個線程),但服務器承受的壓力已經不小了吧,為了減少這種壓力,腳本變量成為了一種稀缺資源。
為了對腳本變量的存取進行優(yōu)化,我想到了一個最容易實現(xiàn)的方法。通過對數(shù)據(jù)庫的觀察(其實想也想也想得到:)),我發(fā)現(xiàn)玩家數(shù)據(jù)中大量的腳本變量的值都是0或者空字符串,這就為優(yōu)化提供了很大的一個空間。

服務器一般都保存有一個腳本變量的配置文件,在這個文件中列出了所有的腳本變量及其默認值。當玩家登錄時,服務器將為其依據(jù)這個文件為其建立一份拷貝,并從數(shù)據(jù)庫讀取這些變量的真實值填充之。因為大量的變量值都是默認值,所以在往數(shù)據(jù)庫保存的時候,是沒有必要全部保存的,而只需保存那些不同于默認值的變量名和變量值以及該變量對應的下標即可。下一次從數(shù)據(jù)庫讀入的時候根據(jù)下標確定哪些變量值需要從數(shù)據(jù)庫中讀取就可以了。

很簡單的一個操作,雖然做到了這一點優(yōu)化,但是對于500個變量的線性讀取和其他操作,依然不是一個好的處理方法。

幾點改進的方向,目前只是有個想法:

1、將玩家與其腳本變量解耦

并不是所有的玩家都需要500個腳本變量的,不同等級的玩家可以參與的任務和活動是完全不同的,我們顯然沒有必要為每一個玩家從生到死都保持這500個變量。這樣考慮下來,估計一個玩家的腳本變量數(shù)可以減少300-400個,從而實現(xiàn)了“垃圾”回收再利用。OMG!

想法是非常具有誘惑力的,但這一優(yōu)化同時涉及到腳本策劃和程序,而且稍有不慎(對某一變量重復使用),全盤皆輸,在“穩(wěn)定壓倒一切”的大方針下,這樣的優(yōu)化需要給出一個系統(tǒng)的策略,玩家等級、職業(yè)因素的影響都要考慮進去。

2、對玩家腳本變量實現(xiàn)壓縮存儲

未經壓縮的腳本變量,每個大概有幾十Bytes,如果采用一個好的壓縮算法,能不能減少到10Bytes呢?什么又是一個好的壓縮算法呢?壓縮解壓縮的成本和直接存取成本比起來哪個更高呢?想想這些的確也都是問題呢。

/*****************************************************************************
? 這只是我工作中的一個總結,問題很簡單,也很瑣碎,正如我前面所提的,僅僅是提供一個參考。
*****************************************************************************/

Feedback

# re: 游戲腳本變量存取優(yōu)化  回復  更多評論   

2007-12-18 09:38 by 金慶
最多總共也只有30M,有必要優(yōu)化嗎?數(shù)據(jù)庫性能應該不至于那么低吧?干脆不要存數(shù)據(jù)庫了,每個用戶一個保存文件就行了,別說30M,30G都沒問題。

# re: 游戲腳本變量存取優(yōu)化  回復  更多評論   

2007-12-18 09:46 by Fox
把30M放到網(wǎng)絡上跑呢?以現(xiàn)在的網(wǎng)絡質量只怕還做不到,而且邏輯服務器和數(shù)據(jù)庫服務器往往不在一臺主機上,你所說的方法還是不太可行……

# re: 游戲腳本變量存取優(yōu)化  回復  更多評論   

2007-12-20 13:50 by 秦歌
能壓縮嗎

# re: 游戲腳本變量存取優(yōu)化  回復  更多評論   

2007-12-20 14:14 by Fox
其實,網(wǎng)絡消息在傳輸過程中,大多都是經過壓縮的,因此基本沒有再次壓縮的必要和空間里:)

# re: 游戲腳本變量存取優(yōu)化  回復  更多評論   

2007-12-21 17:52 by Xerxes
將玩家與其腳本變量解耦 確實是個好想法,有時間研究下...
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人免费一级人片100| 亚洲成人在线| 亚洲欧美综合v| 中国亚洲黄色| 国产无一区二区| 久久人人97超碰国产公开结果| 欧美亚洲在线播放| 伊人久久综合| 91久久一区二区| 欧美精品一区二区视频 | 国产精品久久久久久模特| 一区二区三区 在线观看视频 | 亚洲大胆视频| 欧美日韩在线观看一区二区| 亚洲欧美中文另类| 久久综合久久88| 亚洲一区二区免费在线| 午夜精品一区二区三区电影天堂| 尤物网精品视频| 999亚洲国产精| 精品成人一区二区| 一本一本久久| 在线播放日韩| 亚洲一区二区三区在线观看视频| 国产在线精品自拍| 日韩视频第一页| 极品尤物一区二区三区| 亚洲精品乱码久久久久久黑人| 国产精品伦子伦免费视频| 美女在线一区二区| 国产精品免费看| 91久久精品国产| 狠狠色综合网站久久久久久久| 亚洲另类一区二区| 国产精品日韩在线播放| av不卡在线| 欧美三区免费完整视频在线观看| 久久免费高清| 欧美涩涩网站| 亚洲精品一区二区三区四区高清 | 亚洲尤物视频网| 日韩香蕉视频| 麻豆成人综合网| 久久精品国产77777蜜臀| 欧美绝品在线观看成人午夜影视| 久久久久国产一区二区三区| 欧美午夜精品久久久久久浪潮| 欧美国产欧美综合 | 国产欧美精品日韩精品| 99精品国产在热久久下载| 亚洲国产成人在线播放| 羞羞答答国产精品www一本| 亚洲午夜视频在线观看| 欧美精品在线观看91| 男同欧美伦乱| 在线观看日韩专区| 久久精品一区蜜桃臀影院| 欧美一区二区三区在| 国产精品区一区| 亚洲亚洲精品三区日韩精品在线视频| 日韩亚洲欧美一区二区三区| 女人天堂亚洲aⅴ在线观看| 蜜月aⅴ免费一区二区三区| 国产综合色在线| 久久精品国产99国产精品澳门| 欧美尤物巨大精品爽| 国产精品入口日韩视频大尺度| 亚洲性图久久| 欧美在线亚洲| 狠狠色狠色综合曰曰| 久久激情视频免费观看| 可以免费看不卡的av网站| 亚洲第一精品夜夜躁人人爽 | 午夜在线一区二区| 久久久人成影片一区二区三区观看| 国产精品日韩在线| 久久九九久精品国产免费直播| 免费久久精品视频| 亚洲另类春色国产| 国产精品久久久一区麻豆最新章节| 国产精品99久久久久久人| 欧美中文在线字幕| 亚洲福利国产精品| 欧美日韩少妇| 亚洲欧美在线高清| 男人插女人欧美| 99国产精品久久久| 国产精品午夜视频| 葵司免费一区二区三区四区五区| 亚洲黄色小视频| 羞羞色国产精品| 伊人久久成人| 欧美破处大片在线视频| 亚洲无线一线二线三线区别av| 久久久久一本一区二区青青蜜月| 亚洲高清不卡在线观看| 欧美日韩国产美| 欧美一区二区在线视频| 亚洲国产精品久久91精品| 欧美电影在线播放| 久久99在线观看| 91久久精品国产91久久性色tv| 欧美日韩精品免费看| 亚洲欧美一级二级三级| 欧美福利一区二区| 欧美在线观看视频一区二区| 亚洲第一在线| 国产精品无码永久免费888| 开心色5月久久精品| 亚洲制服丝袜在线| 日韩视频中午一区| 免费人成网站在线观看欧美高清| 亚洲一级片在线看| 亚洲欧洲视频在线| 国内精品视频666| 欧美午夜影院| 欧美激情综合色综合啪啪| 欧美一区二区三区的| 一区二区欧美视频| 亚洲人线精品午夜| 欧美国产高潮xxxx1819| 欧美一区三区三区高中清蜜桃| 日韩视频在线观看免费| 一区视频在线播放| 国内外成人免费激情在线视频网站| 欧美午夜女人视频在线| 蜜臀av在线播放一区二区三区| 久久av一区二区| 午夜精品久久一牛影视| 亚洲一级二级在线| 国产精品99久久久久久久vr | 亚洲黄色成人网| 免费在线看一区| 久久人91精品久久久久久不卡| 性欧美video另类hd性玩具| 亚洲四色影视在线观看| 99视频+国产日韩欧美| 亚洲人成人77777线观看| 亚洲国产精品毛片| 亚洲经典视频在线观看| 在线观看三级视频欧美| 尤物yw午夜国产精品视频| 红杏aⅴ成人免费视频| 国产一区观看| 国产在线观看91精品一区| 国内精品视频久久| 91久久精品久久国产性色也91 | 国产精品多人| 国产精品美女主播在线观看纯欲| 欧美日韩一区二区三区在线看| 欧美精品九九99久久| 欧美日韩国产综合网| 欧美视频四区| 国产视频欧美视频| 激情欧美一区| 亚洲精品视频啊美女在线直播| 99re6这里只有精品视频在线观看| 99re6热在线精品视频播放速度| 亚洲视频图片小说| 亚洲欧美日韩在线观看a三区| 性色av一区二区三区红粉影视| 欧美一级淫片aaaaaaa视频| 久久成人综合视频| 欧美顶级少妇做爰| 一本一本a久久| 欧美在线亚洲| 男人的天堂成人在线| 欧美精品97| 国产精品视频免费观看| 激情久久久久| 国产精品99久久久久久人| 欧美一区亚洲| 欧美激情欧美激情在线五月| 香蕉久久国产| 久久se精品一区精品二区| 亚洲欧美一区二区三区久久 | 亚洲精品一区久久久久久| 亚洲视频福利| 免费久久精品视频| 欧美高清视频一二三区| 一区二区欧美亚洲| 久久久久www| 国产精品久久久久999| 136国产福利精品导航网址| 一区二区三区四区国产| 久久影院午夜片一区| 亚洲色无码播放| 免费永久网站黄欧美| 国产精品一国产精品k频道56| 亚洲欧洲日本国产| 久久久国产成人精品| 亚洲免费高清| 欧美大片网址| 欧美日韩国产色站一区二区三区 | 欧美风情在线观看| 国产一区在线免费观看| 亚洲婷婷综合色高清在线| 欧美mv日韩mv亚洲| 欧美一区二区三区在线观看| 欧美视频中文字幕在线|