虚拟文件系统的资源惰性编译
💡
原文中文,约2100字,阅读约需5分钟。
📝
内容提要
该文介绍了游戏引擎中的虚拟文件系统(VFS)的设计,采用带版本管理的设计,类似于git。VFS可以把本地文件系统的任意目录嫁接在一个虚拟目录树中,目录结构是一颗Merkle tree。VFS采用了惰性编译资源的方案,静态文件和资源文件分在两个平级的子树上,通过软连接关联起来。
🎯
关键要点
- 游戏引擎为手机游戏开发设计,开发机与运行机分离。
- VFS系统提高开发效率,通过网络同步资源仓库。
- VFS设计动机是方便将开发机数据同步到运行设备。
- VFS采用版本管理,借鉴git的做法,以文件内容的hash值为索引。
- VFS可以将本地文件系统的任意目录嫁接到虚拟目录树中。
- VFS的目录结构为Merkle tree,根目录的hash作为版本号。
- VFS支持差异同步,方便在开发期将数据同步到手机。
- VFS面临静态数据与资源数据的管理难题。
- VFS选择惰性编译资源方案,运行时触发编译过程。
- 资源源文件与运行时数据为n:m关系,支持外部依赖。
- VFS将静态文件和资源文件分为两个平级子树,通过软连接关联。
- 静态文件子树不变,资源子树可动态变化,支持版本管理。
➡️