當前位置:首頁 » 操作系統 » 網路游戲的資料庫

網路游戲的資料庫

發布時間: 2023-06-07 07:20:19

㈠ 做網路游戲必須要用到資料庫么什麼樣的更合適

首先需要明確的是:你要做的是網路游戲,也就是說,玩家通過訪問游戲運營商的游戲伺服器來進行游戲,所以對於玩家的帳號,密碼以及游戲中角色的一些信息都要進行存儲,所以要有資料庫來存放這些信息。不光是游戲,其他凡是涉及到客戶信息或者數據存儲的商業行為,理論上都要具備相應的資料庫作為載體。但是隨著科學技術的發展,不知道將來人們還會想出什麼樣的辦法來解決數據存儲的問題,那將是計算機發展的一個嶄新的課題。目前來說,我個人認為網路游戲是需要資料庫支持的,不知道對不對,大家發表意見來討論哈!
補充:看游戲的規模來選擇資料庫:mysql是小型資料庫,便於管理,操作備份簡單。sql server是中型資料庫,應該適用於中等規模的數據存儲。oracle是大型資料庫,適合於大規模數據的存儲和管理,但是操作和管理起來比較復雜,專業性較強。

㈡ 魔獸世界用的什麼資料庫

引用自cnblogs@Zealic:
最近幾天重溫了一下WOW,結合最近學習的資料庫知識和自己的了解,對WOW的大概體系做了分析。當然,我僅僅只是窺豹見斑而已,希望對WOW有所了解的大俠能給我和向了解WOW的人指點;讓世人更加了解WOW,讓中國的游戲能夠學習(不是抄襲)並超越WOW。

不知道哪來的想法,就想到了WOW的資料庫的結構以及程序實現,那麼,就來了解一下吧。
首先想到:Game Server 使用的是什麼OS和Database
起初猜測為 : Unix/BSD ,資料庫為 Oracle
這樣比較適合WOW這樣的大型網路游戲,因為其存儲和數據量極大
網上查到的一些關鍵資料,可以證明我的猜想和實際相差不大
1.9C在一次伺服器故障中的說明,下面只列出關鍵部分
08:29 收到EVA存儲報警郵件,聯系數據中心工程師,聯系惠普工程師.
08:35 故障應急流程啟動,相關人員包括THE9/HP/Blizzard US .
15:33 Oracle專家加入故障應急流程
15:50 暴雪資料庫工程師開始與Oracle專家繼續分析故障情況.
17:15 暴雪表示暫時還未從他們的admin以及DBA處獲得任何有新的消息,他們仍然在研究此故障。
2.Blizzard的資料庫管理員招聘要求
Oracle Database Administrator
The World of Warcraft development team is looking for a self-motivated and knowledgeable IT professional to help administer the WoW databases. As the person responsible for handling the database-side of WoW pushes and patches, our Live Team Oracle DBA's job ties would include designing, configuring, maintaining, monitoring, benchmarking and troubleshooting Oracle databases.
Blizzard offers a fun, creative, and technically challenging environment with excellent compensation and a full range of benefits.
Responsibilities:
Provide proction on-call support.
Maintain and enhance existing databases.
Perform routine database maintenance.
Work with end users to ensure smooth proction rollouts and pushes.
Assist in training other employees.
Requirements:
3+ years professional Oracle DBA experience, including Oracle 9i.
Extensive experience with database performance tuning.
Experience working with large databases (>1TB).
Experience with Oracle RAC and Partitioning features.
Proficiency in Linux/Unix environments including shell scripting.
Plusses:
Strong knowledge of SQL & PL/SQL.
Familiarity with UNIX tools and shell scripting
Familiarity with HP EVA's and Data Protector.
Passion for video games, including MMORPG's

因此WOW的伺服器應該為 : HPUNIX + ORACLE
那麼我就對WOW的資料庫做一些猜想,至於正確與否或者符合程度集合,就無從而知了
主要分為以下幾塊
-游戲伺服器:
這里說的是游戲中的伺服器,而非上面提到的物理意義上的伺服器,比如,七區的惡魔之魂、黑鐵、加基森就是游戲伺服器。
-游戲區:
游戲大區,一個大區是由許多個游戲伺服器構成的。之所以分大區,我認為完全是因為物理原因,每個區都其物理構成應應該是一個伺服器群集,而在這群集上,有許多的資料庫實例,每一個資料庫實例都對應一個游戲伺服器。
-驗證系統:
游戲中的登錄、排隊、驗證身份應該都是又這一部分完成的。
-聊天頻道:
聊天頻道是一個獨立的伺服器,這一點可以從游戲中人物、地圖都很卡而聊天卻完全不受影響的情況分析出來,聊天不可以離線發送消息,因此我可以武斷的認為,聊天伺服器基本不操作資料庫,至多在當前無法處理或者玩家暫時接收不到的情況下,使用一些臨時的表來保存消息;或者伺服器將聊天數據全部保存到資料庫中,以方便對玩家的行為查詢。
另外,聊天伺服器是獨立於所有伺服器的,每個區的所有游戲伺服器都是使用對應於該區的聊天伺服器。這樣,可以專門針對聊天伺服器的特性,對伺服器的系統和資料庫進行專門的優化
-副本&戰場:
副本&戰場(以下簡稱副本)我覺得也應該和聊天伺服器相同,是個獨立的伺服器,不過他與普通游戲伺服器不同,並沒有保存其他的地圖數據,僅僅保存了副本地圖的數據。
至於如何實現跨服戰場,我以為,應該是將需要的角色數據做拷貝到副本伺服器中,並且鎖定原本伺服器中的數據(表或行),在退出戰場時,用副本伺服器的數據更新原來的數據。我們可以把戰場看做資料庫中的臨時表,做了處理以後更新到需要保存的地方。
通過上述解釋,也可以理解為什麼在進入戰場時需要載入畫面了,載入畫面並不僅僅是作為一個過渡畫面,它還承載了載入客戶端資源,與服務端通信進行處理;顯示載入畫面時,副本伺服器應該是如上所說游戲伺服器交換了角色數據。
大型副本與普通副本不同的地方,我覺得僅僅是重置時間和副本策略做了改變而已。
-地圖
地圖的定義是在客戶端的資源中的,為防止用戶篡改,BLZ對定義地圖的資源文件和DBC進行使用了混淆命名以及檢查校驗;之所以這么認為,是因為中國WOW公測的時候,出現一些加速外掛,可以讓角色直接穿越牆壁、地表等看起來不可能穿越的物體,這便驗證了BLZ為了減輕伺服器負擔,直接在客戶端進行了大部分的碰撞檢測。
WOW的的實際地圖結構和游戲中我們所見到的不一樣,他是把一塊大陸分成N個小塊的地圖數據,客戶端僅僅需要載入玩家角色所在位置附近的所有地圖塊就可以了。其技術細節就不做詳細分析了。
-東西大陸:
每個大陸都應該是一個獨立的資料庫,之所以出現載入畫面,我認為是因為兩個大陸的地形材質大不相同,客戶端需要先釋放出發大陸的所有資源,載入目的大陸的必要資源,同時轉移角色的數據到目的大陸。
-角色:
游戲中的角色應該是被分離成數個表,包括玩家的屬性,任務,包裹,郵箱,銀行等。一些重要的,比如物品包裹、郵箱、銀行,伺服器會在很短(相對其他數據而言)的時間內將內存中的緩存數據寫入提交到資料庫中;而一些相較以上數據不是很重要的數據,則需要很長時間才會提交到資料庫。這也解釋了為什麼伺服器回檔時,角色的位置和任務等都回檔了,而物品卻沒有回檔,這也造成了傳說中的雙手痛擊。
-怪物:
世界中的怪物生成應該是使用了Prototype模式,那麼保存怪物的數據其實之需要保存其會變化的值就即可。
-其他:
游戲中總是有一些事件發生,比如:暗月馬戲團的來訪,萬聖節的活動,情人節的活動等等,這些東西應該都是具有伸縮性的,可以想像,為了方便BLZ自WOW的管理和擴展,在伺服器或伺服器群集管理中心中,應該有BLZ為自己和代理商提供的工具或者說腳本使用指南。至於WOW採用的腳本是什麼,這個我就猜不到了,可能是Perl\Python\SH吧,反正不會是LUA。
-行為與技能:
為什麼WOW玩起來感覺這么流暢,沒有其他網路游戲看起來或感覺起來反應遲鈍,WOW並沒有每時每刻都與客戶端進行通信;其主要工作原理是,客戶端首先處理用戶的輸入,並執行相應的開始動畫或處理,而實際顯示結果要等待服務端處理並返回後才會顯現出來,這就是為什麼在掉線後,玩家還做操作角色,但是卻無法獲得操作結果。
技能和行為差不多,其實很多游戲中的限制都是在客戶端進行的,這都是BLZ為了減輕服務端的負擔、減少通信量而造成的。那麼,我在這里大膽的猜測,只要分析出內存地址或相應代碼,WOW是有很多地方可以被篡改的;因為據我所知,目前WOW的所有外掛都是通過暴力修改客戶端的內存實現的,而非常見的修改網路封包,BLZ加密還是做的很不錯的 :)。

基本上就分析了這么多了,我試圖從自己的腦子里挖出更多的東西,可惜所了解的東西仍然太少,沒辦法,現這樣吧。
----------------------------------------------

PS:大芒果單機版WOW採用的MySQL

㈢ 網路游戲為什麼要用資料庫

內存再大,關機就沒了,資料庫的作用是關機以後都還能保留,所以必須得用資料庫。因為游戲伺服器不可能不關機,我們的用戶注冊資料不可能關機一次就全部清空。

你可能覺得用了資料庫就慢了,特別是當內存有那麼大的時候,其實好的軟體不存在這個問題,可以充分使用系統內存進行數據存取,只有在機器空閑的時候才把內存裡面做過修改的數據保存到資料庫中去。

補充:
你說的有道理,你可以編寫一個這樣的網路游戲。但是專業程序員都不會你那樣做的,程序自己管理數據是個非常麻煩的事情,而且非常的不安全。

㈣ 網路游戲資料庫是什麼樣的

每個游戲的資料庫都不相同的!
比如傳奇吧
它資料庫原文件名稱是DB
打開工具dbc2000
就能看到技能啊!怪物啊
裝備啊!
修改這個需要掌握什麼知識啊?
首先不不可缺少的就是懂英語了
比如你找到了游戲的技能文件想要修改技能等級和技能攻擊以及范圍!就拿我修改過冒險島來說
首先找到WZ文件用deMSwZ工具打開用來提取和解析後綴WZ文件後是GM代碼工具,也就是用來尋找物品的代碼(每個游戲的GM工具都不同)
16進制也不可缺少的!利用widows自帶的計算器來進行十進制和十六進制的轉換並切換成科學型
比如15我們輸入15,然後點擊十六進制,就可以看到15自動轉換成了十六進制的形式,即F
然後我們回到ihex中
找帶的代碼改為改為0F保存再重新打開一次wz文件
查看是否修改好了!
這樣在重啟一下你架設的游戲工具
在運行游戲技能就有所更改了!
現在的游戲一般來說都有裝備管理工具和商城管理工具!
比如拿我自己做過的MU來說
就配了工具了!
可能樓主不能看明白
我也說的不是太詳細
樓主喜歡修改這些東西建議多交一些懂電腦編程
的高手這些對他們來說小菜一碟
讓你看一次也
許就能看懂了!
呵呵我就
能提供這么多了!

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:626
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:356
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:71
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:296
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:787
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:337
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:202
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:798
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:355
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:582