遊戲引擎為何不使用資料庫來管理資源檔案?

時間 2021-05-31 01:19:26

1樓:胖胖小

知乎傳統不是先說是不是,再問為什麼嗎?

unity的editor內建了乙個類似sqlite的資料庫,叫做LMDB

所以,問題不成立

2樓:Jether

資料庫有兩類,第一類是sql server需要安裝乙個程式一直執行,你讓玩家電腦裝個這個肯定不行。

第二種access的只用乙個檔案就行。

最主要是資料庫是儲存大量資料的,而乙個玩家的資訊,沒必要用資料庫。

3樓:Tracy Liang

遊戲資源通常是二進位制的,不適用於關係型資料庫。關係查詢基本沒用。nosql可能更加適用。

資源的記憶體引用,場景引用,打包。依賴關係比較複雜,資源的關係只有引擎開發者了解,管理資源依賴關係的複雜度,用資料庫工具並沒有減輕多少開發工作量。自己做資源管理可能更加高效。

4樓:

最適合遊戲的是key value

遊戲天然親近物件導向的

如果要用資料庫

只能伺服器用,客戶端接受伺服器的json就好了伺服器方面呢

資料庫的本質是通過正規化提高資料質量

策劃製造資料則是反之

其實好的公司策劃和產品都是科班出身的,算半個程式但是一般公司不行

一般公司的策劃站在反智的邊緣,認為遊戲設計是一種創意活動,可以脫離智力存在

所以吧,遊戲設計本身是乙個放飛自我的過程

追求規範的資料結構對「創意」型人才來說,太難了

5樓:Grfxlf

其實有類資料庫的資料管理軟體,比如SG。

為什麼不用常規關聯式資料庫來做?遊戲資源都是很鬆散的組織,選nosql也不可能選sql呀,簡表會多到難以維護。還有版本管理,總不能頻繁複製庫然後自己去做增刪改吧?

其他還有對於blob二進位制儲存效能問題。

6樓:

這個問題很好。事實上現在已經有一些使用資料庫管理資源檔案的引擎了。如《地平線》的引擎。(也是《死亡擱淺》的引擎)

以前之所以不用,乙個是記憶體沒那麼大,乙個是線性關卡遊戲對資源的管理要求沒有那麼複雜。

7樓:chenqi.app

不專業的看法如下:

0. 資料庫並不一定等於高效能。

1. 關係型資料庫的優勢在於關係型關聯資料的碎片小資料,高頻,併發,讀寫場景。

2. 遊戲資源檔案一般是唯讀的,不需要寫操作。

3. 遊戲資源檔案一般不涉及像資料庫多表索引join的儲存和查詢結構。

4. 遊戲引擎以前還需要支援光碟儲存。這個只有順序塊讀取才能高效。

所以用自定義檔案格式實現沒毛病。

知乎為什麼不使用 NoSQL 資料庫?

Gary Feng 傳統關係式資料庫技術最成熟,關注於ACID 而非關係式資料庫技術從一開始出發點就五花八門,象cassandra,hbase等NoSQL關注於海量資料 象mongodb,couchdb,neo4j等NoSQL技術關注於靈活地應用模式 象memcached,redis這樣的key v...

遊戲伺服器使用MongoDB作為資料庫,還有必要使用Redis快取嗎?

圓胖腫 用啥資料庫啊,直接放verticle裡面,速度比用redis快兩個數量級 你想用persistence的話,做乙個非同步的io就是了 說白了還是你的應用太小了。另,MongoDB不是記憶體資料庫,和mysql的NDB儲存引擎一樣,只是把索引檔案放到記憶體中。 徐波 把MongoDB當成MyS...

caffe為什麼要使用lmdb資料庫

我也很想知道,大概說一下我認為的原因。1.為了資料更一致。原始資料可能是影象資料,文字資料,語音資料,但是使用lmdb之後都成了lmdb資料。2.大量小檔案的IO太花時間,使用lmdb能夠一次取乙個batch。3.貌似現在不用lmdb,只用imagedata也行。因為新的caffe加入了prefet...