2016-04-24 48 views
0

我正在用C++和虚幻引擎开发游戏。使用C++将负载数据改进为虚幻引擎

每当我开始游戏时,我都必须从文本文件中读取数据。这个文本文件在这一刻有117,955行被分成24个寄存器。每行上的第一个字符是一个标识它们的索引。

我将加载12或13个寄存器,所以我需要先找到它们。所有的寄存器将是连续的:从0到12或从5到17.

我不知道这是否是将数据加载到程序中的最佳方法。现在,我打开文件,逐行读取它,直到找到第一个寄存器。

我以为我可以将文件分成24个文本文件,每个寄存器一个。但是,打开和关闭13个文件可能会更慢。

另一种选择是使用像mySQL这样的小型数据库引擎或者mongoDB。

您是更有经验的程序员,因为我刚刚开始学习C++,而且我总是使用C#编程并使用SQL Server进行编程。

你推荐我什么?

+0

打开文件很快。最有可能比通过查找合适的行的大文件快得多。 –

回答

2

我不相信mysql或mongo是一个正确的选择(后台服务器进程是一个游戏的矫枉过正),我建议你看看sqlite。

如果你与数据库比较好,使用数据库可以提高巨大的发展速度(而不是想着您的自定义文件格式,你只需要使用旧的SQL)

还有一点就是你的数据将被很好地组织,你会有统计在你身边,用几个简单的脚本,你可以为你的游戏设计者创建分布式环境/网页界面,以添加内容/项目/脚本到你的游戏

至于设计:无论如何封装数据库访问。它会在稍后帮助你。即如果你发现即使sqlite对你来说太慢,也可以将你的数据烧录到二进制文件中

2

SQLite是很好的解决方案。您可以使用此插件SQLiteUE4与数据库交互或至少查看C++代码。这里链接到guide

由于C++ API没有稳定的版本并且需要大量的依赖关系,因此MongoDB将会出现问题。