Итак, я нахожусь в процессе создания игры на основе плитки 2D-песочницы, например Terraria . Я уже знаю, как создавать огромные миры, подобные этому, но я нахожусь в тупике, как хранить мир. Я знаю, что должен хранить необработанные байты, чтобы размер файла был небольшим. Я думал о том, чтобы каждая плитка имела свой собственный байт, но я не знаю, как это сделать. Я знаю, что один символ ASCII - это один байт, так почему бы не сделать каждый тайл отдельным символом ASCII? Как трава должна быть «G», грязь - «D», а камень - «S». Тогда я мог бы сохранить каждого из персонажей в файл и назвать его день. Я не хочу знать, будет ли этот метод в порядке или есть лучший?
Затем, предполагая, что предыдущий метод в порядке, мне также нужно знать, хорошо ли сочетаются символы и байты .NET. Под этим я подразумеваю, что если я преобразую простой символ ASCII, такой как «G» для фрагмента травы, в байт, это будет один байт или больше? Возможно .NET хранит символ как нечто большее, чем байт, которого я не знаю.
Итог, как лучше всего хранить каждый тип плитки в файле? Имейте в виду, что эти миры будут гигантскими, поэтому обязательно, чтобы файл был маленьким.
Спасибо!