使用 C++ 改进加载数据到 Unreal Engine
Improve load data with C++ into Unreal Engine
我正在使用 C++ 和 Unreal Engine 开发游戏。
每次我开始游戏时,我都必须从文本文件中读取数据。此时,该文本文件有 117,955 行,分为 24 个寄存器。每行的第一个字符是标识它们的索引。
我要加载12或13个寄存器,所以我需要先找到它们。所有寄存器将是连续的:从 0 到 12,或从 5 到 17。
我不知道这是否是将数据加载到程序中的最佳方法。现在,我打开文件,逐行读取,直到找到第一个寄存器。
我认为我可以将文件拆分为 24 个文本文件,每个寄存器一个。但打开和关闭 13 个文件可能会更慢。
另一种选择是使用像 mySQL 或 mongoDB 这样的小型数据库引擎。
你们是更有经验的程序员,因为我刚开始学习 C++,而且我一直用 C# 编程并使用 SQL 服务器。
你有什么推荐给我的?
我不相信 mysql 或 mongo 是一个正确的选择(后台服务器进程对游戏来说太过分了),我建议你看看 sqlite。
如果你比较擅长数据库,使用数据库可以极大地提高你的开发速度(而不是考虑你的自定义文件格式,你只需要使用旧的 sql)
另一点是你的数据会组织得很好,你会有统计数据,用一些简单的脚本你可以创建分布式 environment/web 界面供你的游戏设计者添加 content/items/scripts到你的游戏
至于设计:无论如何封装数据库访问。以后对你有帮助。 IE。如果你发现即使 sqlite 对你来说也太慢了,可以将你的数据烧入二进制文件
SQLite 是很好的解决方案。你可以使用这个插件 SQLiteUE4 to interact with DB or at least to look at C++ code. Here link to guide.
MongoDB 会出问题,因为 c++ API 没有稳定的版本,需要很多依赖项。
我正在使用 C++ 和 Unreal Engine 开发游戏。
每次我开始游戏时,我都必须从文本文件中读取数据。此时,该文本文件有 117,955 行,分为 24 个寄存器。每行的第一个字符是标识它们的索引。
我要加载12或13个寄存器,所以我需要先找到它们。所有寄存器将是连续的:从 0 到 12,或从 5 到 17。
我不知道这是否是将数据加载到程序中的最佳方法。现在,我打开文件,逐行读取,直到找到第一个寄存器。
我认为我可以将文件拆分为 24 个文本文件,每个寄存器一个。但打开和关闭 13 个文件可能会更慢。
另一种选择是使用像 mySQL 或 mongoDB 这样的小型数据库引擎。
你们是更有经验的程序员,因为我刚开始学习 C++,而且我一直用 C# 编程并使用 SQL 服务器。
你有什么推荐给我的?
我不相信 mysql 或 mongo 是一个正确的选择(后台服务器进程对游戏来说太过分了),我建议你看看 sqlite。
如果你比较擅长数据库,使用数据库可以极大地提高你的开发速度(而不是考虑你的自定义文件格式,你只需要使用旧的 sql)
另一点是你的数据会组织得很好,你会有统计数据,用一些简单的脚本你可以创建分布式 environment/web 界面供你的游戏设计者添加 content/items/scripts到你的游戏
至于设计:无论如何封装数据库访问。以后对你有帮助。 IE。如果你发现即使 sqlite 对你来说也太慢了,可以将你的数据烧入二进制文件
SQLite 是很好的解决方案。你可以使用这个插件 SQLiteUE4 to interact with DB or at least to look at C++ code. Here link to guide.
MongoDB 会出问题,因为 c++ API 没有稳定的版本,需要很多依赖项。