【问题标题】:Improve load data with C++ into Unreal Engine使用 C++ 改进将数据加载到虚幻引擎中
【发布时间】:2016-08-17 20:51:33
【问题描述】:

我正在使用 C++ 和虚幻引擎开发游戏。

每次我开始游戏时,我都必须从文本文件中读取数据。目前,该文本文件有 117,955 行,分为 24 个寄存器。每行的第一个字符是标识它们的索引。

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

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

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

另一种选择是使用小型数据库引擎,例如 mySQL 或 mongoDB。

你们是更有经验的程序员,因为我刚刚开始学习 C++,而且我一直使用 C# 和 SQL Server 进行编程。

你有什么推荐给我的?

【问题讨论】:

  • 打开文件很快。很可能比通过一个巨大的文件寻找正确的行要快得多。

标签: c++ mysql mongodb sqlite unreal-engine4


【解决方案1】:

我不相信mysql或mongo是一个正确的选择(后台服务器进程对于游戏来说是一种过度杀伤),我建议你看看sqlite。

如果你比较擅长数据库,使用数据库可以极大地提高你的开发速度(而不是考虑你的自定义文件格式你只使用旧的 sql)

另一点是您的数据将井井有条,您将拥有统计数据,通过一些简单的脚本,您可以创建分布式环境/网络界面,供游戏设计师向游戏添加内容/项目/脚本

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

【讨论】:

    【解决方案2】:

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

    由于c++ API没有稳定版本,需要很多依赖,MongoDB会出现问题。

    【讨论】:

      猜你喜欢
      • 2019-07-20
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 2015-10-12
      • 2020-03-26
      • 2019-09-09
      • 2018-09-01
      相关资源
      最近更新 更多