Система сохранения данных в современных MMORPG работает следующим образом: 1
- Для частной информации о персонаже (инвентарь, оборудование) используется база данных No-SQL на основе документов. 1
- Для общедоступной информации о персонаже, которая обновляется редко (имя, достижения и т. д.), и статистики — традиционная реляционная база данных. 1
- Данные персонажа существуют как на клиенте, так и на сервере. 1 Система предназначена для их синхронизации, выполняя одни и те же операции с обеих сторон. 1
- Когда игрок совершает транзакцию с системой (например, обменивает предмет на другой через NPC), это происходит в несколько этапов: 1
- Клиент проверяет, является ли операция допустимой. 1
- Клиент отправляет операцию на сервер (асинхронная операция). 1
- Клиент обновляет свою модель в оперативной памяти. 1
- Сервер проверяет, является ли операция допустимой. 1
- Сервер обновляет свою модель в оперативной памяти. 1
- Сервер обновляет базу данных (асинхронная операция). 1
- Сервер сообщает клиенту, что произошло изменение. 1
Также сервер MMORPG может кэшировать данные пользовательских игр в своём собственном банке памяти, а затем происходит пакетная запись данных на сервер базы данных. 2