通过C++虚幻引擎改进加载数据

Improve load data with C++ into Unreal Engine

本文关键字:加载 数据 引擎 C++ 通过      更新时间:2023-10-16

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

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

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

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

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

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

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

你对我有什么建议?

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

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

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

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

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

MongoDB将有问题,因为c ++ API没有稳定的版本,需要很多细节。