您的游戏预期会加载某种资产,但找不到。情况应如何处理?例如:
Texture* grassTexture = LoadTexture("Grass.png"); // returns NULL; texture not found
Mesh* car = LoadMesh("Car.obj"); // returns NULL; 3D mesh not found
在开发过程中,它可能已被用户意外删除,损坏或拼写错误。
一些潜在的回应:
- 断言(理想情况下仅在开发期间)
- 优雅退出游戏
- 引发异常并尝试处理它。
哪种方法最好?
一种方法是验证游戏数据是否仍然完整。如果没有自动重新下载丢失的数据。错误>要求用户验证数据>下载。您显然需要为此创建一个小工具。
—
2013年
@Sidar我最喜欢您说的内容,而不是投票最多的答案,也许您可以更好地解释您要说的是什么
—
concept3d 2013年
错误的丑陋之处在于,有时它只会破坏游戏,而人们无法玩游戏/无法启动游戏。例如,在Steam中,如果您的游戏无法正常运行,则可以验证游戏数据。当某些东西似乎损坏/丢失/更改时,Steam会自动重新下载这些文件。我不知道他们是怎么做到的。但是他们显然会对照一些数据进行检查。也许是哈希码?我真的不知道 但是您应该始终拥有标准的替换资产(只是在其上标有“错误”之类的纹理)
—
Sidar
@Sidar为什么不很好地格式化答案?
—
concept3d
因为我不知道它是如何工作的,也不想误导它。所以我不能给你一个正确的答案。
—
2013年