RPGViewer - 檔案文件格式概述

或許你經常見到某些遊戲安裝的時候會拷貝無數小文件到你的硬盤,而某些遊戲只有若干個大塊頭的數據文件。
我們姑且稱這些大塊頭爲“檔案文件”(Archive或者Package)。它裏面包含了成千上萬個小文件。

把小文件打包成一個單一的檔案文件有若干優點。
首先,類似於我們常用的zip和rar格式,壓縮打包之後,可以大大降低佔用的磁盤空間。即使不進行壓縮,打包之後也便於管理。
其次,打包之後可以簡化遊戲程序訪問資源文件的步驟。我們可以直接通過ID,而不是文件名來標示文件
最後,打包在一定程度上可以提高用戶提取遊戲資源的成本。
比如加密文件頭、使用自己設計的加密或者壓縮算法處理數據等等。當然,類似的保護都是脆弱的。

一個好的遊戲,應該通過提供開放的接口,使得用戶能夠定製遊戲,甚至製作出不遜於原作的MOD,進而提高遊戲本身的耐玩度,擴大收益。而不是侷限在把自己的東西包裹的嚴嚴實實。
在這一點上,很多日韓的遊戲與歐美遊戲比較起來,實在相差甚遠。

從這十幾年來,不同遊戲檔案文件的格式來看,大致經歷了以下三個階段:
1、DOS時代
簡單的把若干個小文件按順序組合在一起。在檔案文件的文件頭只紀錄每個文件在檔案中的偏移地址等信息。
一般不會紀錄文件名信息,程序中直接通過序號訪問文件
2、Windows單機時代
隨着硬盤容量的擴展,檔案文件格式也有了多樣化的發展。
有的在檔案中加入了文件名,程序中也利用文件名(或者文件名的Hash)進行訪問。
有的開始模擬文件系統,提供層次目錄結構。
檔案文件中也開始包含越來越多的內容。
不過此時的遊戲數據大多是靜態的,並不需要增刪或者更新檔案中的數據。如果確實需要更新(比如出補丁包或者資料片),那麼通常的做法是提供另外一個文件,然後優先從該文件讀取即可。
3、網遊時代
因爲網遊必要提供對文件更新的良好支持,此時的檔案文件的內容不再是固定不變。因此設計一個靈活的,便於替換、新增文件的格式顯得更爲重要。
於是我們看到,廣泛使用的zip格式成爲不少網遊的選擇。其它的檔案格式通常會將存放檔案中每個文件信息的內容從原來的文件頭移動到文件末尾,以降低新增文件時需要改動的數據量
發佈了40 篇原創文章 · 獲贊 5 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章