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

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

游戲人生

游戲人生 != ( 人生 == 游戲 )
站點(diǎn)遷移至:http://www.yulefox.com。請(qǐng)訂閱本博的朋友將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) 評(píng)論(5)  編輯 收藏 引用 所屬分類: G游戲編程

Author: Fox

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

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

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

服務(wù)器一般都保存有一個(gè)腳本變量的配置文件,在這個(gè)文件中列出了所有的腳本變量及其默認(rèn)值。當(dāng)玩家登錄時(shí),服務(wù)器將為其依據(jù)這個(gè)文件為其建立一份拷貝,并從數(shù)據(jù)庫讀取這些變量的真實(shí)值填充之。因?yàn)榇罅康淖兞恐刀际悄J(rèn)值,所以在往數(shù)據(jù)庫保存的時(shí)候,是沒有必要全部保存的,而只需保存那些不同于默認(rèn)值的變量名和變量值以及該變量對(duì)應(yīng)的下標(biāo)即可。下一次從數(shù)據(jù)庫讀入的時(shí)候根據(jù)下標(biāo)確定哪些變量值需要從數(shù)據(jù)庫中讀取就可以了。

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

幾點(diǎn)改進(jìn)的方向,目前只是有個(gè)想法:

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

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

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

2、對(duì)玩家腳本變量實(shí)現(xiàn)壓縮存儲(chǔ)

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

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

Feedback

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

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

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

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

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

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

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

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

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

2007-12-21 17:52 by Xerxes
將玩家與其腳本變量解耦 確實(shí)是個(gè)好想法,有時(shí)間研究下...
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久国产福利国产秒拍| 午夜精品一区二区三区在线| 亚洲欧美日韩国产综合在线| 国产精品久久久久影院色老大 | 亚洲视频欧洲视频| 欧美成人一区二区三区片免费| 免播放器亚洲| 日韩视频一区| 亚洲一区二区在线视频 | 免费一级欧美片在线播放| 亚洲九九爱视频| 亚洲视频在线观看免费| 国产啪精品视频| 亚洲国产成人av| 欧美国产乱视频| 亚洲欧美日韩久久精品| 久久久伊人欧美| 亚洲中字在线| 久久伊人一区二区| 亚洲午夜国产成人av电影男同| 亚洲欧美日韩一区在线| 亚洲片区在线| 欧美在线观看你懂的| 亚洲免费久久| 久久都是精品| 亚洲欧美日韩综合国产aⅴ| 久久久久久999| 亚洲欧美成人精品| 欧美韩日一区| 久久综合久久久久88| 国产精品成人一区二区三区吃奶| 免费亚洲婷婷| 国产三级精品三级| 日韩视频中文| 亚洲精品久久久久久一区二区| 新67194成人永久网站| 日韩亚洲精品电影| 久久蜜桃香蕉精品一区二区三区| 亚洲免费在线精品一区| 欧美大片专区| 欧美国产在线视频| 黑人巨大精品欧美一区二区小视频 | 亚洲欧美日韩在线播放| 免费日韩视频| 久久野战av| 国产一区二区中文| 亚洲女性裸体视频| 亚洲欧洲99久久| 欧美午夜视频在线| 999亚洲国产精| 99国产精品久久久久老师| 老司机久久99久久精品播放免费| 久久久久久久999精品视频| 国产精品色一区二区三区| 日韩视频在线免费| 亚洲午夜精品视频| 99香蕉国产精品偷在线观看| 欧美视频在线一区二区三区| 亚洲精品一区二区网址| 久久蜜臀精品av| 狂野欧美激情性xxxx欧美| 国产一区二区三区奇米久涩| 亚洲天堂av在线免费| 亚洲欧美在线看| 国产精品美女久久久久av超清 | 欧美专区在线观看一区| 久久黄色影院| 一区二区三区在线免费观看| 久久精品国产成人| 女女同性精品视频| 亚洲三级毛片| 欧美三级中文字幕在线观看| 制服丝袜激情欧洲亚洲| 欧美一区二区免费观在线| 国产欧美日韩视频| 久久免费一区| 亚洲青色在线| 午夜精品久久久久久久白皮肤 | 欧美精品一区二区三区视频| 亚洲精品久久久久久久久久久| 亚洲校园激情| 国产三级精品三级| 另类av一区二区| 日韩西西人体444www| 欧美在线视频全部完| 亚洲成人自拍视频| 欧美日韩午夜| 欧美在线免费观看视频| 亚洲黄网站在线观看| 亚洲欧美中文在线视频| 伊人激情综合| 欧美视频中文一区二区三区在线观看| 亚洲婷婷综合久久一本伊一区| 久久久蜜桃一区二区人| 99在线观看免费视频精品观看| 国产精品国产a级| 老司机精品视频网站| 亚洲香蕉网站| 欧美激情一区二区三区蜜桃视频 | 久久久91精品国产一区二区三区| 亚洲国产一成人久久精品| 国产精品v欧美精品∨日韩| 久久精品国产久精国产一老狼| 亚洲国产婷婷香蕉久久久久久99| 亚洲欧美自拍偷拍| 亚洲人成网站777色婷婷| 国产女主播一区二区| 欧美电影在线观看完整版| 亚洲欧美激情精品一区二区| 亚洲国产欧美在线 | 亚洲精品欧美极品| 国产毛片精品视频| 欧美黄色视屏| 久久免费偷拍视频| 欧美一区二区三区四区在线观看| 亚洲精品黄色| 欧美激情一区二区三区全黄| 久久精品国产一区二区三| 亚洲一区二区网站| 99国产精品视频免费观看一公开| 久久综合色8888| 黄色精品一区| 在线成人性视频| 国产精品久久久久aaaa九色| 欧美成人综合网站| 久久久亚洲国产美女国产盗摄| 亚洲与欧洲av电影| 制服丝袜亚洲播放| 一本到12不卡视频在线dvd| 欧美韩国日本一区| 欧美jizz19性欧美| 蜜桃av噜噜一区| 蜜臀av国产精品久久久久| 久久先锋资源| 久久色中文字幕| 久久午夜精品| 能在线观看的日韩av| 久久综合给合久久狠狠色| 久久久精品一区| 久久久久久九九九九| 久热这里只精品99re8久| 久久全球大尺度高清视频| 久久天堂成人| 欧美福利专区| 亚洲人成亚洲人成在线观看| 亚洲片在线观看| 国产精品99久久久久久久女警| 亚洲午夜国产一区99re久久| 亚洲自拍都市欧美小说| 欧美一区成人| 老司机一区二区| 欧美福利一区| 国产精品v亚洲精品v日韩精品| 欧美四级剧情无删版影片| 国产精品免费观看在线| 国产真实精品久久二三区| 1024国产精品| 一区二区三区精密机械公司 | 亚洲欧美日韩精品久久| 欧美一二区视频| 麻豆91精品| 亚洲麻豆av| 久久av最新网址| 欧美不卡一卡二卡免费版| 欧美午夜一区二区| 精品av久久707| 99这里只有久久精品视频| 欧美一级欧美一级在线播放| 久久久综合视频| 美女免费视频一区| 久久爱www.| 亚洲成人在线视频播放| 亚洲人人精品| 亚洲美女免费精品视频在线观看| 亚洲欧美成人精品| 美女脱光内衣内裤视频久久网站| 欧美日韩国产在线看| 国产亚洲视频在线| 99精品热视频只有精品10| 久久国产欧美精品| 亚洲激情综合| 久久精品国产免费| 欧美小视频在线| 亚洲激情网址| 久久精品麻豆| 中文在线不卡| 欧美成人精品h版在线观看| 国产日韩欧美综合| 中国成人亚色综合网站| 久久人体大胆视频| 亚洲午夜精品久久| 欧美黄色日本| 亚洲福利视频网| 久久精品91久久久久久再现| 亚洲美女福利视频网站| 美女视频一区免费观看| 国内精品视频666| 欧美在线91| 亚洲一区黄色| 欧美三级视频|