在程序或文档文件中存储数据有区别吗?

时间:2018-09-10 18:25:50

标签: c# performance unity3d

我正在开发一个基于文本的游戏,并且想知道如果仅将所有文本写入代码中而不是制作诸如csv文件之类的内容来读取数据,是否会有任何问题。它的组织方式不尽如人意,但是我想知道如果我将游戏放置在代码中而不是文本文档或csv文件中,那么该游戏是否会占用更多内存或性能会下降。

1 个答案:

答案 0 :(得分:5)

一些优点和缺点:

文件内

  • 易于修改,易于本地化
  • 不是很安全,任何人都可以查看并对其进行破解
  • 必须在运行时进行解析,如果格式不正确怎么办?
  • 微小的性能影响了负载(可能不值得担心)

在嵌入式资源中

  • 没有单独的文件位于硬盘驱动器上,您的用户可以轻松地对其进行检查和修改
  • 可以相当轻松地本地化

代码内

  • 无需解析输入文件,在编译时检查语法和结构
  • 可以使用强类型的值来定义游戏资源,例如Room cave = new Room("Cave", "Long description ...")
  • 可以在对象之间定义更复杂的关系,而无需使用它们之间的string-id引用。 cave.ConnectsTo(passageway)cave.Contains(sword),...

就内存消耗而言,这是一种洗礼-两种情况下字符串都将存储在内存中-除非您正在编写大型游戏,否则在这种情况下,数据库将更合适,并且能够轻松加载地图的各个区域,从内存中弹出不再需要的文件。