JSON Object судя по документации для работы с JSON object model т.е. с деревом. Без маппинга на классы.
Вон рядом же JSON .NET лежит бесплатный. И документация неплохая: https://www.dustinhorne.com/post/2013/09/25/Json-N...
var serializedObject = JsonConvert.SerializeObject(player);
var player = JsonConvert.DeserializeObject<DBPlayer>(serializedObject);
Int16.Parse(value, CultureInfo.CurrentCulture)
Стоит заметить что вот это CultureInfo.CurrentCulture может оказаться настоящей рулеткой т.к. в русской/немецкой локале для разделения целой и дробной части используется запятая, в английской точка. Так что лучше всего использовать CultureInfo.InvariantCulture, который имеет "нейтральные" правила относительно оформления чисел. Либо явно указывавать конкретную локаль, зная с какой формой записи придётся работать.
Семён Семёнов, выше EVGENY T. уже ответил. Добавлю еще то что в большом XML файле довольно легко сделать ошибку. Он ОЧЕНЬ избыточен по синтаксису.
По SQL это система управления данными. добавление/изменение/удаление/поиск и моделирование. Из всего этого набора функционала при запуске игры нужна только загрузка всех данных. Но ради этого придётся поднять инстанс БД в своем процессе или в чужом, подключиться к нему, сделать запросы на эти данные. Это очень затратно + дополнительные зависимости (тащить клиент или embedded версию СУБД). Неопытные разработчики тянут знакомые решения туда, где они ограничено применимы.
Управлять данными в помощью SQL СУБД можно, и потом выгружать в какой либо простой формат, идеально если в бинарный. Вопрос только найдете ли вы удобные и доступные по цене инструменты взаимодействия с этой СУБД. Такие чтобы все гейм-дизайнеры/программисты могли их установить на свои Маки/Линуксы и достучаться до общего сервера. И придётся самому писать экспорт/импорт этих данных и генерацию кода для них.
Сейвы на клиенте лучше всего делать сериализацией в scheme-less формат (BSON, JSON, MessagePack, YAML) на файловую систему. С сейвами проблема в постоянном изменении схемы и миграции между этими изменениями. С самоописываемыми форматами проще мигрировать: можно попробовать загрузить "как-есть", что замапилось то и замапилось. Можно загрузить как динамические данные и попытаться по известным процедурам "сконвертировать" в новую схему, а потом уже замапить на классы. С форматами имеющими схему не так просто, надо знать все предыдущие схемы (иногда набор старых классов для этих схем). Ведь апдейт игры может быть с любой версии, хоть с самой первой.
Гарантию исполнения колбека дает тот кто реализует этот асинхронный паттерн. Т.е. можете считать что классы из базовой библиотеки всегда вызывают колбек, остальные должны, но не факт.
Вон рядом же JSON .NET лежит бесплатный. И документация неплохая:
https://www.dustinhorne.com/post/2013/09/25/Json-N...