序列化与文件加载

时间:2013-08-17 10:44:51

标签: c++ performance serialization loading ogre

所以现在我在食人魔工作,试图制作游戏。 但我的问题很简单。

Ogre加载文件时,它会将其放入所谓的Entity对象中。 我有一个想法,我将在Ogre加载我的所有资源,然后序列化它们, 并将它存储在一个文件中,所以我以后可以将它们作为二进制代码加载到 实际的比赛。

我的问题是这种方法是否比总是加载更快 实际的文件。 我确实提到我在场景中工作,所以不是所有的资源都是 一次性加载。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

游戏通常拥有自己的资源系统。它们不是加载单个文件(jpg纹理,png图像,mp3文件,ogg文件,网格),而是将所有这些数据打包成一些“智能”文件。这是一个中间层。

1. orginal files (models, textures, entities) -> pack into "game_resource_file"
2. load "game_resource_file" in game

回答问题:是的,它应该加快加载速度。

存在一些缺陷:您认为至少需要两个步骤才能在游戏中拥有资源。当您更改一个纹理(100个)时,可能需要很长时间才能在屏幕上看到它。您必须采用该纹理,重建资源文件,然后加载游戏。如果没有它,你只需直接在游戏中加载一个改变的纹理。

此资源管道问题非常重要,可以节省(或添加)大量的开发时间。