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

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

游戲人生

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

游戲腳本變量存取優化

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

Author: Fox

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

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

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

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

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

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

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

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

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

2、對玩家腳本變量實現壓縮存儲

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

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

Feedback

# re: 游戲腳本變量存取優化  回復  更多評論   

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

# re: 游戲腳本變量存取優化  回復  更多評論   

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

# re: 游戲腳本變量存取優化  回復  更多評論   

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

# re: 游戲腳本變量存取優化  回復  更多評論   

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

# re: 游戲腳本變量存取優化  回復  更多評論   

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>
            亚洲人成网站精品片在线观看| 久久九九精品99国产精品| 樱桃国产成人精品视频| 欧美第十八页| 欧美一区在线视频| 久久综合伊人77777蜜臀| 国产一区二区久久| 欧美日韩在线亚洲一区蜜芽| 欧美与欧洲交xxxx免费观看 | 亚洲专区欧美专区| 欧美日在线观看| 欧美日韩在线三级| 免费的成人av| 久久久久高清| 久久亚洲免费| 午夜精品一区二区三区在线播放| 亚洲国产毛片完整版| 亚洲先锋成人| 久久国产精品一区二区三区四区| 午夜在线视频观看日韩17c| 欧美成人久久| 亚洲乱亚洲高清| 99国产精品99久久久久久| 一区二区三区高清视频在线观看| 洋洋av久久久久久久一区| 午夜精品影院在线观看| 猛干欧美女孩| 在线亚洲观看| 久久综合色播五月| 欧美成人一区二免费视频软件| 欧美日韩国产精品一区| 欧美系列精品| 亚洲国产高清在线观看视频| 夜夜嗨av一区二区三区四季av| 亚洲香蕉成视频在线观看| 久久久精品五月天| 欧美日韩 国产精品| 一本色道久久精品| 久久久久国产精品午夜一区| 欧美美女bb生活片| 亚洲日本无吗高清不卡| 小黄鸭视频精品导航| 亚洲精品美女在线观看| 久久精品亚洲精品| 国产精品一区视频| 亚洲欧美一区二区激情| 麻豆精品国产91久久久久久| 亚洲国产裸拍裸体视频在线观看乱了| av成人手机在线| 亚洲高清视频的网址| 久久激情视频| 国产欧美日韩在线视频| 亚洲在线播放| 亚洲一区视频在线| 亚洲男人第一网站| 一区二区欧美在线| 亚洲欧美激情视频| 亚洲精品一区二| 日韩网站在线观看| 国产精品久久久久久久久搜平片| 亚洲午夜女主播在线直播| 欧美一区1区三区3区公司| 国产自产2019最新不卡| 亚洲国产黄色| 国产色婷婷国产综合在线理论片a| 欧美怡红院视频一区二区三区| 久久精品卡一| 小嫩嫩精品导航| 欧美激情一二三区| 久久一区二区三区av| 欧美日韩国产在线| 老司机精品福利视频| 久久av一区二区三区| 欧美在线视屏| 欧美日韩一区二区在线观看| 久久午夜精品一区二区| 欧美日韩一二三区| 欧美国产一区二区| 国模精品娜娜一二三区| 亚洲一二三区在线| 亚洲午夜精品久久久久久app| 久久久久久久久久久成人| 99视频一区| 久久久免费观看视频| 久久精品亚洲精品| 欧美**人妖| 久久这里只精品最新地址| 欧美性淫爽ww久久久久无| 最新国产精品拍自在线播放| 99re66热这里只有精品3直播 | 99精品国产高清一区二区| 欧美激情1区2区3区| 国产精品免费观看视频| 亚洲欧美日韩精品久久奇米色影视 | 99精品国产在热久久婷婷| 亚洲国产日韩欧美在线图片| 在线亚洲免费| 久久国产精品久久精品国产| 国外视频精品毛片| 欧美激情a∨在线视频播放| 亚洲精品欧美日韩| 久久久久久亚洲精品中文字幕| 亚洲成色www久久网站| 欧美极品在线观看| 午夜国产精品影院在线观看| 久久综合五月| 亚洲午夜在线| 亚洲国产精品毛片| 久久久蜜臀国产一区二区| 国产精品一区二区三区乱码| 亚洲国产欧美在线| 久久激情综合网| 亚洲主播在线观看| 99视频有精品| 狠狠色噜噜狠狠色综合久| 欧美日韩亚洲一区二区| 欧美一区二区三区四区在线观看| 亚洲国产精品一区二区久| 欧美一进一出视频| 一本一道久久综合狠狠老精东影业 | 欧美精品午夜| 麻豆91精品91久久久的内涵| 日韩视频精品在线观看| 久久精品国产久精国产思思| 在线国产亚洲欧美| 欧美高清免费| 欧美一区二区三区四区视频| 亚洲黄色免费电影| 日韩写真视频在线观看| 日韩亚洲国产欧美| 一区二区三区四区精品| 亚洲另类自拍| 亚洲欧美日韩中文视频| 久久er99精品| 久久综合久久久久88| 久久久久久亚洲综合影院红桃 | 狼狼综合久久久久综合网| 久久久免费av| 久久综合一区二区| 欧美四级电影网站| 欧美色图天堂网| 亚洲第一狼人社区| 一本一本久久| 麻豆久久婷婷| 免费观看在线综合色| 久久久噜久噜久久综合| 欧美成人午夜视频| 亚洲午夜精品久久久久久浪潮| 亚洲视频精品| 蜜桃av综合| 久久男人av资源网站| 欧美r片在线| 欧美午夜精品久久久久久孕妇 | 欧美成人首页| 香蕉久久夜色精品国产使用方法| 久久免费国产| 国产综合色一区二区三区| 日韩视频在线观看| 欧美99久久| 久久综合久色欧美综合狠狠| 国产精品www.| 欧美伊久线香蕉线新在线| 日韩亚洲国产精品| 欧美超级免费视 在线| 欧美日韩精品在线观看| 亚洲黄色影片| 亚洲国产高清aⅴ视频| 亚洲乱码国产乱码精品精天堂| 一区二区不卡在线视频 午夜欧美不卡在| 性欧美激情精品| 欧美一区二区三区在线视频 | 亚洲日本va午夜在线影院| 久久人体大胆视频| 美国十次成人| 一区二区av| 在线午夜精品自拍| 国产乱码精品1区2区3区| 久久精品国产精品| 欧美大片va欧美在线播放| 一本色道久久综合狠狠躁篇的优点 | 一本久久青青| 国产精品99免费看| 久久久国产91| 欧美精品午夜视频| 亚洲欧美国产另类| 久久夜色精品国产| 亚洲一区免费观看| 久久激情五月丁香伊人| 亚洲精品一区二区三区樱花| 亚洲午夜成aⅴ人片| 亚洲人成77777在线观看网| 亚洲精品欧美极品| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲成色777777女色窝| 亚洲无吗在线| 亚洲综合另类| 国产精品va在线| 一本色道久久综合亚洲91| 日韩视频久久| 久久久久国产免费免费|