虚拟文件系统的资源惰性编译

💡 原文中文,约2100字,阅读约需5分钟。
📝

内容提要

该文介绍了游戏引擎中的虚拟文件系统(VFS)的设计,采用带版本管理的设计,类似于git。VFS可以把本地文件系统的任意目录嫁接在一个虚拟目录树中,目录结构是一颗Merkle tree。VFS采用了惰性编译资源的方案,静态文件和资源文件分在两个平级的子树上,通过软连接关联起来。

🎯

关键要点

  • 游戏引擎为手机游戏开发设计,开发机与运行机分离。
  • VFS系统提高开发效率,通过网络同步资源仓库。
  • VFS设计动机是方便将开发机数据同步到运行设备。
  • VFS采用版本管理,借鉴git的做法,以文件内容的hash值为索引。
  • VFS可以将本地文件系统的任意目录嫁接到虚拟目录树中。
  • VFS的目录结构为Merkle tree,根目录的hash作为版本号。
  • VFS支持差异同步,方便在开发期将数据同步到手机。
  • VFS面临静态数据与资源数据的管理难题。
  • VFS选择惰性编译资源方案,运行时触发编译过程。
  • 资源源文件与运行时数据为n:m关系,支持外部依赖。
  • VFS将静态文件和资源文件分为两个平级子树,通过软连接关联。
  • 静态文件子树不变,资源子树可动态变化,支持版本管理。
➡️

继续阅读