В процессе разработки плагина для Unity 3D понадобилось сделать хранение относительно большого количества данных. В моем случае это хранение данных нодов для визуального программирования (так же применим и к реализации сохранения игры). Способ хранения должен отвечать заданным требованиям:
В результате я остановился на двоичной сериализации. Данный способ отвечает всем заданным требованиям, но лишает возможности просмотра и редактирования уже сериализованных данных в текстовом редакторе. Но это не проблема, так как для этого предназначена программа для редактирования.
- Высокая скорость обработки;
- Высокий уровень сжатия данных;
- Возможность хранения своих классов и структур;
- Чтение\запись в Unity, а так же в отдельной программе (Visual Studio Application, C#);
- Работать со старыми версиями сохраненных данных (при изменении структуры);
- Не должен требовать наличие дополнительно установленных пакетов и др. ПО у пользователей;
- Работать на мобильных устройствах;
- Язык: C#.
В результате я остановился на двоичной сериализации. Данный способ отвечает всем заданным требованиям, но лишает возможности просмотра и редактирования уже сериализованных данных в текстовом редакторе. Но это не проблема, так как для этого предназначена программа для редактирования.