3 资产管理,数据库或版本控制系统? 在开发游戏资产时,(网格,纹理,声音,视频)如何管理它们? 将它们与源代码保持在版本控制系统中?(perforce,git等) 还是拥有专门用于资产的中央备份数据库,让编辑者总是喜欢它?(PostgreSQL,MySQL等…) 其他? 每种方案的优缺点是什么,为什么一个人应该选择另一个? 29 assets version-control asset-management
1 我应该如何构建可扩展的资产加载系统? 对于Java的业余游戏引擎,我想编写一个简单但灵活的资产/资源管理器。资产是声音,图像,动画,模型,纹理等。经过几个小时的浏览和一些代码实验,我仍然不确定如何设计这个东西。 具体来说,我正在寻找如何设计管理器的方式,以便它抽象出如何加载特定资产类型以及从何处加载资产。我希望能够同时支持文件系统和RDBMS存储,而程序的其余部分不需要了解它。同样,我想添加一个XML动画描述资产(FPS,要渲染的帧,对Sprite图像的引用等)。我应该能够为此编写一个类,该类具有查找和读取XML文件以及创建和返回AnimationAsset带有该信息的类的功能。我正在寻找数据驱动的设计。 我可以找到大量的信息是什么资产管理者应该做的,而不是如何去做。涉及的泛型似乎导致某种形式的类级联,或某种形式的助手类。但是,我还没有看到一个清晰的例子,看起来不像是个人黑客,也不是共识。 19 architecture asset-management resource-management data-driven
3 识别游戏引擎中的资产? 我想识别我已加载的资产,但是我不知道应该选择哪一个。有2个选项: 名称(字符串) 对于unordered_map(O(1)),这是最简单也最快的方法,但是比使用整数慢。 在代码中容易理解。 整数 最快的。 用代码无法理解。 我知道字符串不是那么安全或快速,但是那样不好,还是仅在AAA标题中算作不好?我可以使用整数来枚举枚举,但是如果我在运行时从文件加载场景,资产等,则不能使用枚举。如果这些整数是在运行时生成的,是否可以使这些整数可读? 我知道这个问题在互联网上有很多线索,但是我无法确定在什么情况下这很重要。 12 c++ architecture assets asset-management