Многие игроделы используют в своих играх внешние файлы с данными. Например, описание объектов, конфиги и пр. Тут возникает вопрос: в каком формате хранить? И два варианта ответа - либо в бинарном, либо в текстовом (читаемом). И почему-то многие выбирают именно бинарники, мотивируя это тем, что "размер меньше, грузить удобнее".
Про размер вообще глупости. Во-первых, файлы больше 5кб уже редкость (речь о гм ессно), а во-вторых, при архивации разница станет еще меньше.
Грузить удобнее. Мб, на вкус и цвет, как известно. Но все же, я предпочитаю работать с обычным текстом, ведь в этом случае я могу открыть файл в блокноте и отредактировать/посмотреть, что не так сделал комп. С бинарниками это сложнее. + совместимость форматов. Как правило, при изменении порядка или количества считываемых байтов, игра/программа уже не может загружать предыдущие версии. Опять же, с текстовыми тут все проще.
Хм.. По-другому спрошу: какой "умный" человек будет использовать текстовики (XML сюда же) для описания сложных/больших объектов (больших уровней с тысячами объектов, 3д моделей (с тысячами вертексов, различных связей, потом ещё и несколько материалов со своими свойствами и т.д.), картинки и т.д.)?
Всё зависит от ситуации. Повторюсь, для несложных объектов - текстовик самое-то, а для сложных - бинарник в руки. И самое важное: надо иметь голову на плечах.
>> Покажи мне хоть одну игру, где ресурсов (именно бин файлов) так много, чтобы "очень сократилось время загрузки" по сравнению с конфигами.
Конфиги и описание некоторых несложных объектов удобнее в тексте.. но BSP-карты (да и другие), картинки и некоторые форматы 3Д моделей загружаются, как бинарники. Первое, что на ум взбрело!
Нет, нет и еще раз нет. Покажи мне хоть одну игру, где ресурсов (именно бин файлов) так много, чтобы "очень сократилось время загрузки" по сравнению с конфигами. Даже с сотней файлов разница будет незаметна. Конвертер нужно делать, потом им нужно конвертировать файлы, а там вообще ничего не нужно.
>> При изменении порядка или количества считываемых байтов, игра/программа уже не может загружать предыдущие версии. Во-первых, конвертер в таких случаях, дело нескольких минут. Во-вторых, надо было заранее делать удобную структуру с запасом, здесь уже главную роль играет фактор "прямость рук".
Веский аргумент бинарников - лёгкая загрузка. Когда ресурсов становится много, это о-очень необходимо и сокращает хорошенько время загрузки. Всё, больше нету весомых аргументов:)