和一般应用软件有点不同,大部份游戏软件都需要使用大量的游戏数据(game data)──或称为资源(resource)、资产(game asset, 但通常asset包括数据的原始格式, 不是最终运行游戏所需的数据)。在制作游戏时,如何管理这些数据是一个非常重要的问题。曾经看过和使用过不同的方案,现在归回原点,分析基本的需求,随笔记录笔者所选的方案思路。
游戏数据管理的重要性
如果从游戏软件的产出(deliverables) 来分析,一个游戏软件可以分为三部份:
- 游戏引擎: 比较固定的、和游戏性无直接关系的程式
- 游戏唯读数据: 脚本、图像、音效、关卡、影像
- 游戏读写数据: 游戏存档、游戏设定、玩家自制内容
从现今的游戏实际容量来看,游戏引擎可能占1~10MiB,游戏读写数据10KiB~10MiB,其余以GiB为单位的全是唯读数据。以开发人员来计算,开发引擎可能是数人,但制作那些唯读数据的队伍是以百计的,主要是游戏性程式设计师、人物美工、场境美工、关卡设计师等等。 本文主要谈游戏唯读数据,以下「数据」或「游戏数据」皆指「游戏唯读数据」。
游戏数据可以有几多笔?