Показать сообщение отдельно
Старый 26.03.2009, 15:35   #22
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Как лучше хранить карты для игр

Если по теме то самые практичные файлы бинарные но для них нужен редактор.
XML рулит только тем что редактировать можно любым текстовым редактором (правда сомнительное преимущество, т.к. гемор это ещё тот).

Минусы XML:
-любой может легко модифицировать изменяя тем самым игру.
-довольно ненаглядная правка в текстовых редакторах
-большой размер
-большое время загрузки
-проблемы с хранением двоичной информации

Плюсы XML:
+есть множество парсеров, выдающих в ответ на запрос данные.
+ненужен редактор, подойдёт даже "блокнот".
+легко читаем человеком

Минусы Бинарного формата:
-абсолютно не читаем человеком
-нужен спец. редактор
-нужен контроль версий формата файла
-загрузку нужно писать самому

Плюсы:
+компактный размер
+защита данных от правки (нужен опр. скилл для правки)
+быстрая загрузка
+возможно хранение любой информации вплоть до ресурсных файлов


Я продпочитаю гибридный формат, по сути это бинарный файл с оглавлением и делением на секции.

Т.е. вначале файла идёт заголовок со списком идущих ниже секций и их смещений от начала и размерами.

Секция представляет собой блок бинарных данных с именем.

Чтение такого формата происходит примерно так:
*загружаем заголовок со списком секций.
*перебирая список секций загружаем их в соответствии с именем/типом секции, если алгоритму секция неизвесна он её просто пропускает.

Достоинство такого формата очевидно, при изменении структуры сохряняемых данных, мы сохраняем обратную совместимость с незатронутыми секциями. Плюс добавления в формат можно делать в виде нового типа секции.

например b3d формат примерно так и устроен.
__________________
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
ffinder (26.03.2009), h1dd3n (28.03.2009), tormoz (26.03.2009)