| [РЕШЕНО] YAML или XML ? Конфиги, сохранения | 
|  | 
| 
| robertono | Дата: Четверг, 15 Августа 2013, 01:20 | Сообщение # 1 |  |   Чокнутый Кот Сейчас нет на сайте | Что лучше использовать для сохранения огромного количества переменных ? XML или YAML ? Чем легче пользоваться? И чем они отличаются ? Мне кажется, визуально - абсолютно ничем! Я прав? 
 
 Сообщение отредактировал robertono - Суббота, 17 Августа 2013, 23:11 |  |  |  |  | 
| 
| PoqXert | Дата: Четверг, 15 Августа 2013, 03:43 | Сообщение # 2 |  |   постоянный участник Сейчас нет на сайте | Преимущества XML: 
 1. Для XML уже существуют готовые парсеры;
 
 2. Можно применять стандартные действия, например, XSLT-преобразования;
 
 Недостатки XML:
 
 1. Документы на XML неудобны для восприятия человеком. (И не надо, чтобы игрок конфиги читал)
 
 2. Документы на XML занимают больше места.
 
 Преимущества YAML:
 
 1. Удобны для чтения и редактирования человеком;
 
 2. Занимают мало места;
 
 Недостатки YAML:
 
 1. Приходится писать собственный парсер.
 
 2. Для каждого нового типа элемента приходится придумывать собственную синтаксическую конструкцию и реализовывать её в парсере.
 
 3. Нельзя применять стандартные преобразования.
 
 4. Нельзя создавать составные документы.
 
 Расширения для Unity3D
 Блог программиста - PoqXert.ru
 
 
 Сообщение отредактировал PoqXert - Четверг, 15 Августа 2013, 03:44 |  |  |  |  | 
| 
| Dash_Ravo | Дата: Четверг, 15 Августа 2013, 09:12 | Сообщение # 3 |  | частый гость Сейчас нет на сайте | Самый быстрый путь - знакомый путь. Просто бери, что лучше знаешь. Кое-где потанцуешь с бубном, в любом случае это сделать придется, так что тут выбирать из "делать и кое-где помучиться" и "делать и кое-где помучиться" |  |  |  |  | 
| 
| Vinchensoo | Дата: Четверг, 15 Августа 2013, 09:17 | Сообщение # 4 |  |   Злобный социопат с комплексом Бога Сейчас нет на сайте | Цитата (PoqXert) 1. Приходится писать собственный парсер. 
Да есть уже все, даж на википедии лежит.
 
 Бери xml. Зачем что-то придумывать?
 
 Если количество данных сильно большое и нужно, чтобы они обрабатывались сильно быстро, то лучше использовать какой-нить бинарный формат хранения, а не текстовый.
 
 
   |  |  |  |  | 
| 
| Alastar | Дата: Четверг, 15 Августа 2013, 10:18 | Сообщение # 5 |  |   постоянный участник Сейчас нет на сайте | Создай класс Save, запихни в него все, что тебе нужно сохранить, и сериализуй в бинарник! Профит! 
 Big Boobs (+18 only!)
 |  |  |  |  | 
| 
| afrokick | Дата: Четверг, 15 Августа 2013, 11:44 | Сообщение # 6 |  |   участник Сейчас нет на сайте | Цитата (robertono) Что лучше использовать для сохранения огромного количества переменных ?
 Цитата (Alastar) Создай класс Save, запихни в него все, что тебе нужно сохранить, и сериализуй в бинарник! Профит! 
 Это первый вариант, второй - json. XMl для большого количества данных очень "тяжелый". Для json есть готовые парсеры.
 |  |  |  |  | 
| 
| robertono | Дата: Четверг, 15 Августа 2013, 12:02 | Сообщение # 7 |  |   Чокнутый Кот Сейчас нет на сайте | Ну тогда буду использовать xml , так как он мне хорошо знаком и мне просто с ним работать   |  |  |  |  | 
| 
| Vinchensoo | Дата: Четверг, 15 Августа 2013, 12:05 | Сообщение # 8 |  |   Злобный социопат с комплексом Бога Сейчас нет на сайте | Цитата (afrokick) Это первый вариант, второй - json. XMl для большого количества данных очень "тяжелый". Для json есть готовые парсеры. 
Он тоже текстовый. Все зависит от ситуации, что и когда использовать.
 
 
   |  |  |  |  | 
| 
| robertono | Дата: Четверг, 15 Августа 2013, 12:14 | Сообщение # 9 |  |   Чокнутый Кот Сейчас нет на сайте | Я забыл, в C# да и вообще в .net была какая то штука которая позволяла работать легко с xml. Состояла из 3 - 4 букв. Может кто помнит ?   |  |  |  |  | 
| 
| Archido | Дата: Четверг, 15 Августа 2013, 12:32 | Сообщение # 10 |  |   Сэнсэй Сейчас нет на сайте | Текстовые удобны и полезны в случаях, когда нужно либо видеть хранящуюся там информацию (для дебага), либо когда (или вместе с первым "либо") нужно иметь возможность быстро править тамошние данные безо всяких доп. тулзов. В большинстве остальных случаев - это оверхед как по памяти, так и по скорости доступа. 
 При разработке, конечно, их удобно использовать для "настройки игровых параметров" таки в небольших количествах, но перед продакшеном их, как правило, пересохраняют в бинарник. И почти всегда это xml.
 
 C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
 |  |  |  |  | 
| 
| Vinchensoo | Дата: Четверг, 15 Августа 2013, 12:48 | Сообщение # 11 |  |   Злобный социопат с комплексом Бога Сейчас нет на сайте | Цитата (robertono) Я забыл, в C# да и вообще в .net была какая то штука которая позволяла работать легко с xml. Состояла из 3 - 4 букв. Может кто помнит ? 
LINQ. Xml- лишь часть возможностей.
 
 Цитата (Archido) Текстовые удобны и полезны в случаях, когда нужно либо видеть хранящуюся там информацию (для дебага), либо когда (или вместе с первым "либо") нужно иметь возможность быстро править тамошние данные безо всяких доп. тулзов. В большинстве остальных случаев - это оверхед как по памяти, так и по скорости доступа. 
Иногда геймдизайнеры просят xml, чтобы конфигурировать игровую логику без знаний программирования, кстати.
 Но чаще всего это именно конфиги. Т.е. вещи, которые вычитываются 1 раз при старте сервера, а дальше уже хранятся в виде объектов в памяти.
 Тогда на накладные расходы можно забить, нет разницы, 9 секунд запускается сервер или 10.
   
 
   |  |  |  |  | 
| 
| smoke_water | Дата: Среда, 11 Сентября 2013, 15:31 | Сообщение # 12 |  |   был не раз Сейчас нет на сайте | лучше всего xml 
 Час це вода.:)
 |  |  |  |  |