首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在必须删除一些数据之前,一款游戏可以存储多少个“屏幕”数据?

在必须删除一些数据之前,一款游戏可以存储多少个“屏幕”数据?
EN

Stack Overflow用户
提问于 2009-09-27 21:13:44
回答 4查看 105关注 0票数 0

假设我正在制作一个时间风格的时间旅行游戏,并想要保存屏幕的当前状态(玩家和敌人的位置,无论可破坏的物体是否被销毁,等等)每秒到一个数组,在游戏开始变得相当滞后之前,我可以在这个数组上存储多少数据,我将不得不删除该数组或将其保存到游戏之外的文件(即:.bin)。

在类似的注释中,是不断地将每个屏幕保存到.bin更快,还是只在必要时才这样做(例如,当数组已满一半时开始保存)。

我知道运行它的计算机很重要,但假设它是在一台相当现代的计算机上运行的(不是旧的,但也不是nasa的超级计算器),特别是因为我无法确切地告诉玩这个游戏的人将使用什么。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-27 21:29:37

根据之后如何使用数据,您可以考虑存储状态之间的更改,而不是实际状态。

您应该使用缓冲区来减少I/O操作的数量。将数据放入主内存,并在需要时将大量数据写入磁盘。

票数 1
EN

Stack Overflow用户

发布于 2009-09-27 21:21:29

这将取决于您需要保存的对象数量以及每个对象占用的内存量。

假设,我们举一个过于简单和幼稚的例子,假设您的游戏平均包含40个对象,每个对象都有20个属性,这些属性占用了两个字节的存储空间。这就是每秒1600字节,如果你每一秒都在存钱的话。

票数 1
EN

Stack Overflow用户

发布于 2009-09-27 21:22:26

嗯,不可能给你一个肯定适用于你的场景的答案。您需要尝试一些方法。

假设您正在从磁盘加载较大的图像、声音或图形,由于争用而频繁地写入磁盘可能并不好。我之所以说“可能”,是因为它真的取决于这台电脑和正在发生的一切。那么你如何处理这个问题呢?一种方法是运行后台线程,该线程监视队列中需要写入磁盘的项。在写入磁盘之前,线程可以监视队列中一定数量的项。另一种方法是等待发生I/O的游戏中发生的某些其他事件,然后保存它。您可能需要分析要保存的事件的大小,并尝试不同的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1484497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档