Сохранение данных в MMO - PullRequest
2 голосов
/ 28 января 2011

Что вы думаете о сохранении данных (таких как статистика персонажей, достижения, предметы) в MMO-игре? Ясно, что вам нужно как можно меньше данных, если (когда) сервер по какой-то причине отключается.

  • Сохранение персонажа, когда что-то важное произошло? Кажется взволнованным, производительность?
  • Сохранение всего раз очень X часов? Вызывает остановку на несколько секунд, но может сопровождаться приятным сообщением "Мир спасает".
  • Возможно, имеется таймер сохранения для каждого символа, когда вы помещаете в очередь символ для сохранения время от времени, и сервер работает в этой очереди, когда он не занят?

Из этих трех я думаю, что последнее является довольно хорошим решением, но я мог что-то упустить. Но что вы думаете, как это делают "большие мальчики"?

Ответы [ 4 ]

1 голос
/ 29 января 2011

возможно сделать своего рода сервер кеша. игровой сервер будет отправлять запросы на чтение / запись на кеш-сервер, кеш-сервер будет записывать / читать данные из базы данных и отправлять обратно на игровой сервер. таким образом, если определенный запрос затягивается, он не остановит поток в игровом сервере, если сервер выйдет из строя - сервер будет по-прежнему кэшировать данные и сохранит их, если еще не сохранял.

1 голос
/ 29 января 2011

Сохранение персонажа всякий раз, когда случилось что-то важное? Кажется прыгучий, производительность?

Ни в коем случае. По сравнению со всем, что нужно сделать для такой игры, это совершенно тривиально. Любой приличный движок базы данных справится с этим. Вот для чего они созданы.

1 голос
/ 28 января 2011

Я бы использовал сквозной кэш для своей базы данных.Большинство аспектов характера меняются не очень часто.Те, кто, как и положение, уже требуют некоторой довольно сложной разработки, чтобы поддерживать согласованность между серверами и клиентами.

0 голосов
/ 02 марта 2012

Я написал это http://onemanmmo.com/?doubleentry, решая, как записывать микротранзакции и гарантировать, что они выживут после сбоя сервера для моей игры.Статья посвящена использованию схемы базы данных учета с двумя записями поверх MySQL с некоторой информацией о хранимых процедурах и безопасности.

...