所以我正在制作一个基于 2D 沙盒瓷砖的游戏,比如Terraria。我已经知道如何生成像它这样的巨大世界,但是我对如何存储世界感到困惑。我知道我应该存储原始字节以保持文件较小。我正在考虑让每个图块都有自己的字节,但是我不知道该怎么做。我确实知道一个 ASCII 字符是一个字节,所以为什么不让每个图块都变成一个不同的 ASCII 字符呢?就像草是'G',泥土是'D',石头是'S'。然后我可以将每个字符存储到一个文件中并收工。我想知道这种方法是否可以,或者是否有更好的方法?
然后假设前面的方法没问题,我还需要知道 .NET 字符和字节是否可以很好地配合使用。我的意思是,如果我将一个简单的 ASCII 字符(例如草砖的“G”)转换为一个字节,那将是一个字节还是更多?也许 .NET 将 char 存储为比我不知道的字节大的东西。
底线将每种瓷砖类型存储到文件中的最佳方法是什么?请记住,这些世界将是巨大的,因此文件必须很小。
谢谢!